private async void SendPhoto(IReadOnlyCollection <StorageFile> files) { //threadpool if (files == null || files.Count == 0) { return; } if (MultiImageEditor != null && MultiImageEditor.IsOpen) { BeginOnUIThread(async() => await MultiImageEditor.AddFiles(new List <StorageFile>(files))); return; } //var message = await GetPhotoMessage(files.First()); if (MultiImageEditor == null) { MultiImageEditor = new MultiImageEditorViewModel(SendPhoto, GetUsernameHintsExternal, With) { CurrentItem = new PhotoFile { File = files.First() }, Files = files, ContinueAction = ContinueSendPhoto, GetPhotoMessage = file => { var m = GetPhotoMessage(file).Result; return(m); } }; NotifyOfPropertyChange(() => MultiImageEditor); } else { MultiImageEditor.CurrentItem = new PhotoFile { File = files.First() }; MultiImageEditor.Files = files; BeginOnUIThread(() => MultiImageEditor.OpenEditor()); } // fast preview for first item Execute.BeginOnThreadPool(async() => { var message = await GetPhotoMessage(files.First()); Execute.BeginOnUIThread(() => { MultiImageEditor.CurrentItem.Message = message; MultiImageEditor.NotifyOfPropertyChange(() => MultiImageEditor.CurrentItem); MultiImageEditor.CurrentItem.NotifyOfPropertyChange(() => MultiImageEditor.CurrentItem.Self); if (files.Count == 1) { MultiImageEditor.IsDoneEnabled = true; } }); }); }
private async void SendPhoto(IReadOnlyCollection <StorageFile> files) { //threadpool if (files == null || files.Count == 0) { return; } if (MultiImageEditor != null && MultiImageEditor.IsOpen) { BeginOnUIThread(async() => await MultiImageEditor.AddFiles(new List <StorageFile>(files))); return; } var message = await GetPhotoMessage(files.First()); if (MultiImageEditor == null) { MultiImageEditor = new MultiImageEditorViewModel { CurrentItem = new PhotoFile { Message = message, File = files.First() }, Files = files, ContinueAction = ContinueSendPhoto, GetPhotoMessage = file => { var m = GetPhotoMessage(file).Result; return(m); } }; NotifyOfPropertyChange(() => MultiImageEditor); } else { MultiImageEditor.CurrentItem = new PhotoFile { Message = message, File = files.First() }; MultiImageEditor.Files = files; BeginOnUIThread(() => MultiImageEditor.OpenEditor()); } }
private async void SendPhoto(IReadOnlyCollection <StorageFile> files) { var chat = Chat as TLEncryptedChat17; //threadpool if (files == null || files.Count == 0) { return; } if (MultiImageEditor != null && MultiImageEditor.IsOpen) { BeginOnUIThread(async() => await MultiImageEditor.AddFiles(new List <StorageFile>(files))); return; } //var decryptedTuple = await GetPhotoMessage(files.First()); if (MultiImageEditor == null) { MultiImageEditor = new MultiImageEditorViewModel(SendPhoto, null, Chat) { CurrentItem = new PhotoFile { File = files.First() }, Files = files, ContinueAction = ContinueSendPhoto, GetDecryptedPhotoMessage = file => { var m = GetPhotoMessage(file).Result; return(m); }, IsCaptionEnabled = chat != null && chat.Layer.Value >= Constants.MinSecretChatWithCaptionsLayer, IsSecretChat = true }; NotifyOfPropertyChange(() => MultiImageEditor); } else { MultiImageEditor.CurrentItem = new PhotoFile { File = files.First() }; MultiImageEditor.Files = files; BeginOnUIThread(() => MultiImageEditor.OpenEditor()); } // fast preview for first item Execute.BeginOnThreadPool(async() => { var message = await GetPhotoMessage(files.First()); Execute.BeginOnUIThread(() => { MultiImageEditor.CurrentItem.DecryptedTuple = message; MultiImageEditor.NotifyOfPropertyChange(() => MultiImageEditor.CurrentItem); MultiImageEditor.CurrentItem.NotifyOfPropertyChange(() => MultiImageEditor.CurrentItem.Self); if (files.Count == 1) { MultiImageEditor.IsDoneEnabled = true; } }); }); }