Exemple #1
0
        private async void ShowSharedContent()
        {
            // Let Windows know that this app is starting to fetch data
            _shareOperation.ReportStarted();
            DefaultViewModel["ProcessingSharedData"] = true;

            try
            {
                var formatOrdering = new AppSettings().OrderedFormats.ToList();
                var shareData      = _shareOperation.Data;

                var preferredFormat = formatOrdering.FirstOrDefault(x => shareData.Contains(x.DataFormat));

                if (preferredFormat.DataFormat == StandardDataFormats.Text)
                {
                    await ShowSharedText(shareData);
                }
                //else if(preferredFormat.DataFormat == StandardDataFormats.Rtf)
                //{
                //    // Not Implemented
                //    //ShowSharedRtf(shareData);
                //}
                else if (preferredFormat.DataFormat == StandardDataFormats.Html)
                {
                    await ShowSharedHtml(shareData);
                }
                else if (preferredFormat.DataFormat == StandardDataFormats.Bitmap)
                {
                    await ShowSharedBitmap(shareData);
                }
                // NOTE - StandardDataFormats.Uri is effectively Deprecated - see SetApplicationLink and/or SetWebLink instead
                else if (preferredFormat.DataFormat == StandardDataFormats.ApplicationLink)
                {
                    await ShowSharedAppLink(shareData);
                }
                else if (preferredFormat.DataFormat == StandardDataFormats.WebLink)
                {
                    await ShowSharedWebLink(shareData);
                }
                else if (preferredFormat.DataFormat == StandardDataFormats.StorageItems)
                {
                    await ShowSharedStorageItems(shareData);
                }
                else if (preferredFormat.DataFormat == AppSettings.CustomPersonSchemaName)
                {
                    await ShowSharedCustomPerson(shareData);
                }
            }
            catch (Exception e)
            {
                Debug.WriteLine("Share data retrieval error: " + e);
                _shareOperation.ReportError("An error occurred while retrieving the shared data.");
            }
        }
Exemple #2
0
        /// <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)
        {
            var args = e.Parameter as ShareTargetActivatedEventArgs;

            if (args == null)
            {
                return;
            }

            _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(
                    "Image Helper was unable to find a valid bitmap.");
            }
        }
Exemple #3
0
        public async void RetrieveData()
        {
            try
            {
                if (dataRetrieved)
                {
                    await new MessageDialog("data already retrieved").ShowAsync();
                }
                _shareOperation.ReportStarted();
                switch (SelectedFormat)
                {
                case "Text":
                    Text = await _shareOperation.Data.GetTextAsync();

                    break;

                case "HTML Format":
                    Html = await _shareOperation.Data.GetHtmlFormatAsync();

                    break;

                default:
                    break;
                }
                _shareOperation.ReportDataRetrieved();
                dataRetrieved = true;
            }
            catch (Exception ex)
            {
                _shareOperation.ReportError(ex.Message);
            }
        }
        public void Activate(ShareOperation shareOperation)
        {
            if (shareOperation == null)
            {
                throw new ArgumentNullException(nameof(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 void Copy()
        {
            try
            {
                if (_share.Data.Properties.ApplicationName != Constants.ApplicationName)
                {
                    _share.ReportSubmittedBackgroundTask();

                    var content = new DataPackage();
                    _values.CopyTo(content);

                    Windows.ApplicationModel.DataTransfer.Clipboard.SetContent(content);
                    Windows.ApplicationModel.DataTransfer.Clipboard.Flush();
                    Windows.ApplicationModel.DataTransfer.Clipboard.ContentChanged += OnClipboardContentChanged;

                    _share.DismissUI();
                }
                else
                {
                    _share.ReportCompleted();
                }
            }
            catch (Exception ex)
            {
                _share.ReportError(ex.Message);
            }
        }
        public async Task Share()
        {
            Sharing = true;
            ShareOperation.ReportStarted();
            var multa = new CriarMultaNova
            {
                Descricao = dadosDaMulta.Descricao,
                Placa     = dadosDaMulta.Placa,
                VideoUrl  = dadosDaMulta.VideoUrl
            };

            multa.SetaDataOcorrencia(dadosDaMulta.DataOcorrencia);
            try
            {
                MultadoComSucesso = await talao.MultarAsync(multa, fileInfo);

                if (MultadoComSucesso)
                {
                    Sharing = false;
                    ShareOperation.ReportCompleted();
                }
                else
                {
                    ShareOperation.ReportError("Não foi possível multar, favor tentar mais tarde.");
                }
            }
            catch (Exception ex)
            {
                ShareOperation.ReportError("Não foi possível multar, ocorreu um erro, favor tentar mais tarde.\nErro:" + ex.Message);
            }
        }
 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());
         }
     }
 }
Exemple #9
0
        private async void sendButton_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                if (channelsBox.SelectedItem is DiscordChannel channel)
                {
                    if (_file != null)
                    {
                        overlay.Visibility = Visibility.Visible;
                        ring.Value         = 0;
                        subtext.Opacity    = 1;

                        var progress = new Progress <double?>(p => ring.Value = p ?? 0d);
                        var stream   = await _file.OpenReadAsync();

                        var dictionary = new Dictionary <string, IInputStream>()
                        {
                            [_file.Name] = stream
                        };
                        await Tools.SendFilesWithProgressAsync(channel, captionText.Text, null, null, dictionary, progress);
                    }
                    else if (!string.IsNullOrWhiteSpace(captionText.Text))
                    {
                        await channel.SendMessageAsync(captionText.Text);
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.LogError(ex);
                await UIUtilities.ShowErrorDialogAsync("Sending failed!", ex.Message);

                _shareOperation.ReportError(ex.Message);
                return;
            }

            _shareOperation.ReportCompleted();
            //_shareOperation.DismissUI();
        }
Exemple #10
0
        protected override async void OnShareTargetActivated(ShareTargetActivatedEventArgs args)
        {
            ShareOperation = args.ShareOperation;
            string type = await ExternalContentHelper.SetData(ShareOperation.Data);

            if (type == "")
            {
                ShareOperation.ReportError("Unknown data type received.");
                return;
            }

            ShareOperation.ReportDataRetrieved();
            SendDataTemporaryStorage.IsSharingTarget = true;

            Frame rootFrame = null;

            LaunchRootFrameIfNecessary(ref rootFrame, false);
            rootFrame.Navigate(typeof(MainPage), new ShareTargetDetails
            {
                Type = type,
            });
        }
Exemple #11
0
        protected override void OnShareTargetActivated(ShareTargetActivatedEventArgs args)
        {
            if (args.PreviousExecutionState == ApplicationExecutionState.NotRunning)
            {
                ShareOperation shareOperation = args.ShareOperation;
                if (shareOperation.Data.Contains(StandardDataFormats.StorageItems))
                {
                    shareOperation.ReportDataRetrieved();

                    Frame frame = new Frame();
                    frame.Navigate(typeof(ShareTargetPage), shareOperation);

                    Window.Current.Content = frame;
                    Window.Current.Activate();
                }
                else
                {
                    shareOperation.ReportError("An error occured.");
                }
            }
            else
            {
                // App is running
                ShareOperation shareOperation = args.ShareOperation;
                if (shareOperation.Data.Contains(StandardDataFormats.StorageItems))
                {
                    shareOperation.ReportDataRetrieved();

                    var rootFrame = CreateRootFrame(args.PreviousExecutionState, "", typeof(ShareTargetPage));
                    rootFrame.Navigate(typeof(ShareTargetPage), shareOperation);
                    Window.Current.Activate();
                }
                else
                {
                    shareOperation.ReportError("An error occured.");
                }
            }
        }
Exemple #12
0
        public async Task OnShareTargetActivated(ShareOperation shareOperation)
        {
            this.shareOperation = shareOperation;
            if (shareOperation.Data.Contains(StandardDataFormats.WebLink))
            {
                // https://www.microsoft.com/store/productId/9NNDJTDMH874

                Uri webLink = await shareOperation.Data.GetWebLinkAsync();

                if (!webLink.ToString().Contains("www.microsoft.com/store"))
                {
                    Analytics.TrackEvent("Wrong share link");
                    shareOperation.ReportError("Data doesn't contain link to Microsoft Store.");
                    return;
                }

                string appId    = webLink.ToString().Split('/').LastOrDefault();
                var    database = new Database();
                var    list     = await database.GetAll();

                if (list.Any(e => e.AppId == appId))
                {
                    IsAppOnWishlist = true;
                    IsNewApp        = false;
                }
                await CoreApplication.GetCurrentView().Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
                {
                    AppName = shareOperation.Data.Properties.Title;
                    AppInfo = new ApplicationInfo()
                    {
                        AppId              = appId,
                        AppName            = AppName,
                        IsInstalledClicked = false,
                    };
                });
            }
        }
        private void ShowSharedContent()
        {
            // Let Windows know that this app is starting to fetch data
            _shareOperation.ReportStarted();
            DefaultViewModel["ProcessingSharedData"] = true;

            try
            {
                var shareData = _shareOperation.Data;

                var showContentTaskList = new List <Task>();
                if (shareData.Contains(StandardDataFormats.Text))
                {
                    var task = ShowSharedText(shareData);
                    showContentTaskList.Add(task);
                }

                if (shareData.Contains(StandardDataFormats.Rtf))
                {
                    // Not Implemented
                    //ShowSharedRtf(shareData);
                }

                if (shareData.Contains(StandardDataFormats.Html))
                {
                    var task = ShowSharedHtml(shareData);
                    showContentTaskList.Add(task);
                }

                if (shareData.Contains(StandardDataFormats.Bitmap))
                {
                    var task = ShowSharedBitmap(shareData);
                    showContentTaskList.Add(task);
                }

                // NOTE - SetUri is effectively Deprecated - see SetApplicationLink and/or SetWebLink instead
                if (shareData.Contains(StandardDataFormats.ApplicationLink))
                {
                    var task = ShowSharedAppLink(shareData);
                    showContentTaskList.Add(task);
                }
                if (shareData.Contains(StandardDataFormats.WebLink))
                {
                    var task = ShowSharedWebLink(shareData);
                    showContentTaskList.Add(task);
                }

                if (shareData.Contains(StandardDataFormats.StorageItems))
                {
                    var task = ShowSharedStorageItems(shareData);
                    showContentTaskList.Add(task);
                }

                if (shareData.Contains(AppSettings.CustomPersonSchemaName))
                {
                    var task = ShowSharedCustomPerson(shareData);
                    showContentTaskList.Add(task);
                }

                // Admittedly a bit unusual to be doing this "task stuff"; most apps will just bring in their "favorite" data format
                // and signal Retrieved/Complete right there...since this is more of a "sampler", the Task API is used to wait for
                // all of the retrives to finish and then signal that the data txfer is complete, and update the UI elements accordingly.
                Task.WhenAll(showContentTaskList).ContinueWith(task =>
                {
                    _shareOperation.ReportDataRetrieved();
                    DefaultViewModel["ProcessingSharedData"] = false;
                });
            }
            catch (Exception e)
            {
                Debug.WriteLine("Share data retrieval error: " + e);
                _shareOperation.ReportError("An error occurred while retrieving the shared data.");
            }
        }
Exemple #14
0
 private void ReportErrorButton_Click(object sender, RoutedEventArgs e)
 {
     m_shareOperation.ReportError(ReportError.Text);
 }
Exemple #15
0
        public async Task ActiveSync(ShareOperation shareOperation)
        {
            _shareOperation = shareOperation;
            shareOperation.ReportStarted();

            try
            {
                var dataPackageView = shareOperation.Data;

                RequestTitle       = _shareOperation.Data.Properties.Title;
                RequestDescription = _shareOperation.Data.Properties.Description;

                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.IsImageMessage())
                {
                    IsImageRequest = true;

                    RandomAccessStreamReference imageReceived = await dataPackageView.GetBitmapAsync();

                    var imageStream = await imageReceived.OpenReadAsync();

                    ImageShareValue = new BitmapImage();
                    ImageShareValue.SetSource(imageStream);

                    OnPropertyChanged("ImageShareValue");
                }
                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);
                        }
                    }
                }
            }
            catch (Exception e)
            {
                _shareOperation.ReportError(e.Message);
                RequestDescription = e.Message;
            }

            _shareOperation.ReportDataRetrieved();
        }