Esempio n. 1
0
        /// <summary>
        /// Delete a watch item and send it to the Pebble (if connected)
        /// </summary>
        /// <param name="_deleteItem"></param>
        /// <returns></returns>
        public async Task <bool> DeleteWatchItemAsync(WatchItem _deleteItem)
        {
            try
            {
                //Remove from app
                await WatchItems.DeleteWatchItem(_deleteItem);

                //Remove from storage
                await LocalStorage.Delete(_deleteItem.File);

                await LocalStorage.Delete(_deleteItem.File.Replace(".zip", ".gif"));

                //Remove from watch
                if (IsConnected)
                {
                    await Pebble.DeleteWatchItemAsync(_deleteItem);
                }

                return(true);
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine("DeleteWatchItemAsync exception: " + e.Message);
            }

            return(false);
        }
        private async Task Initialize()
        {
            _vmBinder.vmNewMatch = await vmNewMatch.Load();

            _vmBinder.Tennis.vmMatch = new vmMatchState();
            _vmBinder.Tennis.vmMatch.IsExtendPossible = false;
            _vmBinder.Tennis.vmMatch.Paused           = false;
            _vmBinder.Tennis.vmMatch.InProgress       = false;
            _vmBinder.Tennis.vmMatch.Completed        = false;


            _vmBinder.Tennis.OnStop    += Tennis_OnStop;
            _vmBinder.Tennis.OnExtend  += Tennis_OnExtend;
            _vmBinder.Tennis.OnDelete  += Tennis_OnDelete;
            _vmBinder.Tennis.OnResume  += Tennis_OnResume;
            _vmBinder.Tennis.OnSuspend += Tennis_OnSuspend;
            _vmBinder.Tennis.OnShare   += Tennis_OnShare;

            String JSON = await Tennis_Statistics.Helpers.LocalStorage.Load("tennismatchstate.json");

            if (JSON.Length > 0 /*&& (_vmBinder.Tennis.TryInUse || _vmBinder.Tennis.Purchased)*/)
            {
                //_vmBinder.Tennis.TryCommand.Execute(null);
                ReinitiateMatch();
            }
            else
            {
                await LocalStorage.Delete("tennismatchstate.json");

                await LocalStorage.Delete("tennis_pebble.xml");

                ShowPage(NewMatchGrid);
            }

            RegisterShare();
        }
Esempio n. 3
0
        /// <summary>
        /// Backup the watch items to OneDrive
        /// </summary>
        /// <returns></returns>
        public async Task <bool> Backup()
        {
            try
            {
                string CompressedFile = "pebble_time_manager_backup.zip";

                // Retrieve files to compress
                IReadOnlyList <IStorageFile> filesToCompress = await LocalStorage.Files();

                // Created new file to store compressed files
                //This will create a file under the selected folder in the name   “Compressed.zip”

                Windows.Storage.StorageFolder LocalFolder = Windows.Storage.ApplicationData.Current.LocalFolder;
                StorageFile zipFile = await LocalFolder.CreateFileAsync(CompressedFile, CreationCollisionOption.ReplaceExisting);

                using (MemoryStream zipMemoryStream = new MemoryStream())
                {
                    // Create zip archive
                    using (ZipArchive zipArchive = new ZipArchive(zipMemoryStream, ZipArchiveMode.Create))
                    {
                        // For each file to compress...
                        foreach (StorageFile fileToCompress in filesToCompress)
                        {
                            if (fileToCompress.Name != CompressedFile)
                            {
                                //Read the contents of the file
                                byte[] buffer = WindowsRuntimeBufferExtensions.ToArray(await FileIO.ReadBufferAsync(fileToCompress));
                                // Create a zip archive entry
                                ZipArchiveEntry entry = zipArchive.CreateEntry(fileToCompress.Name);
                                // And write the contents to it
                                using (Stream entryStream = entry.Open())
                                {
                                    await entryStream.WriteAsync(buffer, 0, buffer.Length);
                                }
                            }
                        }
                    }

                    using (IRandomAccessStream zipStream = await zipFile.OpenAsync(FileAccessMode.ReadWrite))
                    {
                        // Write compressed data from memory to file
                        using (Stream outstream = zipStream.AsStreamForWrite())
                        {
                            byte[] buffer = zipMemoryStream.ToArray();
                            outstream.Write(buffer, 0, buffer.Length);
                            outstream.Flush();
                        }
                    }
                }

                //Backup to OneDrive
                await OneDrive.UploadFileAsync("Backup", CompressedFile);

                System.Diagnostics.Debug.WriteLine("Backup: " + CompressedFile);

                //Remove zip file
                await LocalStorage.Delete(CompressedFile);
            }
            catch (Exception exp)
            {
                System.Diagnostics.Debug.WriteLine("Backup exception: " + exp.Message);
                return(false);
            }

            return(true);
        }