public async Task ShareAsync(ShareOperation shareOperation) { _shareOperation = shareOperation; shareOperation.ReportStarted(); var dataPackageView = shareOperation.Data; RequestTitle = shareOperation.Data.Properties.Title; RequestDescription = shareOperation.Data.Properties.Description; try { if ( dataPackageView.IsTextMessage() ) { IsTextRequest = true; TextShareValue = await dataPackageView.GetTextAsync(); } else if (dataPackageView.IsUrlMessage()) { IsUrlRequest = true; var foundUri = await dataPackageView.GetUriAsync(); UrlShareValue = foundUri.AbsoluteUri; } else if (dataPackageView.IsStorageItemsMessage()) { IsStorageRequest = true; var storageItems = await dataPackageView.GetStorageItemsAsync(); if ( storageItems.Any()) { var storageItem = storageItems.First(); if ( storageItem.IsOfType(StorageItemTypes.File)) { StorageFileName = storageItem.Name; var thumbNail = dataPackageView.Properties.Thumbnail; var thumbnailStream = await thumbNail.OpenReadAsync(); ImageShareValue = new BitmapImage(); ImageShareValue.SetSource(thumbnailStream); } } } else if (dataPackageView.IsImageMessage()) { IsImageRequest = true; var imageRecieved = await dataPackageView.GetBitmapAsync(); var imageStream = await imageRecieved.OpenReadAsync(); ImageShareValue = new BitmapImage(); ImageShareValue.SetSource(imageStream); } } catch (Exception e) { shareOperation.ReportError(e.Message); RequestDescription = e.Message; } shareOperation.ReportDataRetrieved(); }
/// <summary> /// Invoked when this page is about to be displayed in a Frame. /// </summary> /// <param name="e">Event data that describes how this page was reached. The Parameter /// property is typically used to configure the page.</param> protected override async void OnNavigatedTo(NavigationEventArgs e) { BottomControls.Visibility = Visibility.Collapsed; // To avoid control flashes as we transit this page quickly base.OnNavigatedTo(e); // Glenn adds. This will set the _pagekey variable, which otherwise would be null and later throw an exception in OnNavigatedFrom. var args = e.Parameter as ShareTargetActivatedEventArgs; if (args == null) { await CaptureButton_ClickImpl();// was before Release 7, but need await to not show bottom controls flashing: CaptureButton_Click(this, null); // Glenn adds BottomControls.Visibility = Visibility.Visible; return; } BottomControls.Visibility = Visibility.Visible; Caption.Text = App.CurrentPatient.ImageCaption; // TO DO: Make this actually useful for "Original filename: <whatever>" when image picked from file. // TO DO... distinguish NewReport & ViewEdit handling of this _shareOperation = args.ShareOperation; if (_shareOperation.Data.Contains( StandardDataFormats.Bitmap)) { _bitmap = await _shareOperation.Data.GetBitmapAsync(); await ProcessBitmap(); } else if (_shareOperation.Data.Contains( StandardDataFormats.StorageItems)) { _items = await _shareOperation.Data.GetStorageItemsAsync(); await ProcessStorageItems(); } else _shareOperation.ReportError( "TriagePic was unable to find a valid bitmap."); }
private void OnClipboardContentChanged(object sender, object e) { if (_share != null) { try { _share.ReportCompleted(); _share = null; } catch(Exception ex) { Debug.WriteLine(ex); _share.ReportError(ex.ToString()); } } }
public void Activate(ShareOperation shareOperation) { string title = null; string description = null; try { _shareOperation = shareOperation; title = _shareOperation.Data.Properties.Title; description = _shareOperation.Data.Properties.Description; foreach (var format in _shareOperation.Data.AvailableFormats) { _shareFormats.Add(format); } Title = title; Description = description; } catch (Exception ex) { _shareOperation.ReportError(ex.Message); } }
protected override void WireMessages() { Messenger.Default.Register<NotificationMessage>(this, m => { if (m.Notification.Equals(Constants.Messages.ReaderViewLeftMsg)) { ShowFinishedScreen = false; if (_readerTimer != null && _readerTimer.IsEnabled) { _readerTimer.Stop(); } var wordsRead = SelectedIndex * _settingsService.WordsAtATime; var articleNotFinished = wordsRead < SelectedItem.WordCount; if (articleNotFinished) { _roamingSettings.Set(SelectedItem.InternalId, wordsRead); } else { _roamingSettings.Remove(SelectedItem.InternalId); } SaveInProgressItems(wordsRead, !articleNotFinished); } }); Messenger.Default.Register<ShareMessage>(this, async m => { _shareOperation = (ShareOperation)m.Sender; if (_shareOperation.Data.Contains(StandardDataFormats.WebLink)) { var url = await _shareOperation.Data.GetWebLinkAsync(); var message = new UriSchemeMessage(url.ToString(), true, SchemeType.Read); await SaveItemFromExternal(message, async () => { var title = _loader.GetString("ShareErrorTitle"); await _messageBox.ShowAsync(_loader.GetString("ShareErrorText"), title, new List<string> { _loader.GetString("MessageBoxOk") }); _shareOperation.ReportError(title); }); } else { _shareOperation.ReportCompleted(); } }); Messenger.Default.Register<UriSchemeMessage>(this, async m => { if (m.SchemeType != SchemeType.Read) { return; } await SaveItemFromExternal(m); }); }
public async Task ActivateAsync(ShareTargetActivatedEventArgs args) { try { shareOperation = args.ShareOperation; LoadTargets(); await ExtractShareData(args); } catch { shareOperation.ReportError("Could not determine the type of data to share"); } }