Ejemplo n.º 1
0
        public IAsyncOperation <ContentDialogBaseResult> ShowAsync(TLInputStickeredMediaBase parameter)
        {
            ViewModel.IsLoading = true;
            ViewModel.Items.Clear();

            RoutedEventHandler handler = null;

            handler = new RoutedEventHandler(async(s, args) =>
            {
                Loaded -= handler;
                await ViewModel.OnNavigatedToAsync(parameter, NavigationMode.New, null);
            });

            Loaded += handler;
            return(ShowAsync());
        }
Ejemplo n.º 2
0
        private void AttachedStickers_OnTap(object sender, System.Windows.Input.GestureEventArgs e)
        {
            e.Handled   = true;
            _tapHandled = true;

            var message = ViewModel.CurrentItem as TLMessage;

            if (message == null)
            {
                return;
            }

            TLInputStickeredMediaBase media = null;
            var mediaPhoto = message.Media as TLMessageMediaPhoto28;

            if (mediaPhoto != null)
            {
                var photo = mediaPhoto.Photo as TLPhoto56;
                if (photo != null)
                {
                    media = new TLInputStickeredMediaPhoto
                    {
                        Id = new TLInputPhoto {
                            Id = photo.Id, AccessHash = photo.AccessHash
                        }
                    };
                }
            }

            var mediaDocument = message.Media as TLMessageMediaDocument45;

            if (mediaDocument != null)
            {
                var document = mediaDocument.Document as TLDocument54;
                if (document != null)
                {
                    media = new TLInputStickeredMediaDocument
                    {
                        Id = new TLInputDocument {
                            Id = document.Id, AccessHash = document.AccessHash
                        }
                    };
                }
            }

            if (media == null)
            {
                return;
            }
            ViewModel.IsWorking = true;
            var mtProtoService = IoC.Get <IMTProtoService>();

            mtProtoService.GetAttachedStickersAsync(true, media,
                                                    result => Execute.BeginOnUIThread(() =>
            {
                ViewModel.AttachedStickers = result;
                ViewModel.IsWorking        = false;
                var r = result;
                if (r != null)
                {
                    UpdateSets(r);

                    ShowAttachedStickersMessageBox(r, stickerSetBase =>
                    {
                        var stickerSet = stickerSetBase as TLStickerSet32;
                        if (stickerSet != null)
                        {
                            _panAndZoomBehavior.IsEnabled = false;
                            ShowStickerSetMessageBox(false, stickerSet.Installed && !stickerSet.Archived, stickerSet, prompt =>
                            {
                                Execute.BeginOnUIThread(() =>
                                {
                                    _panAndZoomBehavior.IsEnabled = true;
                                    if (prompt == PopUpResult.Ok)
                                    {
                                        ViewModel.AddRemoveStickerSet(stickerSet);
                                    }
                                });
                            });
                        }
                    });
                }
            }),
                                                    error => Execute.BeginOnUIThread(() =>
            {
                ViewModel.IsWorking = false;
                Telegram.Api.Helpers.Execute.ShowDebugMessage("messages.getAttachedStickers error " + error);
            }));
        }