コード例 #1
0
        public void SetStickersAsync(TLInputChannelBase channel, TLInputStickerSetBase stickerset, Action <TLBool> callback, Action <TLRPCError> faultCallback = null)
        {
            var obj = new TLSetStickers {
                Channel = channel, StickerSet = stickerset
            };

            SendInformativeMessage <TLBool>("channels.setStickers", obj, callback.SafeInvoke, faultCallback);
        }
コード例 #2
0
        public void SetStickersAsync(TLInputChannelBase inputChannel, TLInputStickerSetBase stickerset, Action <bool> callback, Action <TLRPCError> faultCallback = null)
        {
            var obj = new TLChannelsSetStickers {
                Channel = inputChannel, StickerSet = stickerset
            };

            const string caption = "channels.setStickers";

            SendInformativeMessage(caption, obj, callback, faultCallback);
        }
コード例 #3
0
        public IAsyncOperation <ContentDialogBaseResult> ShowAsync(TLInputStickerSetBase parameter, ItemClickEventHandler callback)
        {
            ViewModel.IsLoading  = true;
            ViewModel.StickerSet = new TLStickerSet();
            ViewModel.Items.Clear();

            RoutedEventHandler handler = null;

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

            Loaded += handler;
            return(ShowAsync());
        }
コード例 #4
0
        public static void NavigateToStickers(IMTProtoService mtProtoService, IStateService stateService, TLInputStickerSetBase inputStickerSet)
        {
#if WP8
            if (mtProtoService != null)
            {
                Execute.BeginOnUIThread(() =>
                {
                    var frame = Application.Current.RootVisual as TelegramTransitionFrame;
                    if (frame != null)
                    {
                        frame.OpenBlockingProgress();
                    }

                    stateService.GetAllStickersAsync(cachedStickers =>
                    {
                        mtProtoService.GetStickerSetAsync(inputStickerSet,
                                                          stickerSet => Execute.BeginOnUIThread(() =>
                        {
                            if (frame != null)
                            {
                                frame.CloseBlockingProgress();
                            }

                            var emoticons = new Dictionary <long, string>();
                            for (var i = 0; i < stickerSet.Packs.Count; i++)
                            {
                                var emoticon = stickerSet.Packs[i].Emoticon.ToString();
                                foreach (var document in stickerSet.Packs[i].Documents)
                                {
                                    emoticons[document.Value] = emoticon;
                                }
                            }

                            stickerSet.Set.Stickers = new TLVector <TLObject>();
                            for (var i = 0; i < stickerSet.Documents.Count; i++)
                            {
                                var document22 = stickerSet.Documents[i] as TLDocument22;
                                if (document22 != null)
                                {
                                    string emoticon;
                                    if (emoticons.TryGetValue(document22.Id.Value, out emoticon))
                                    {
                                        document22.Emoticon = emoticon;
                                    }

                                    stickerSet.Set.Stickers.Add(new TLStickerItem {
                                        Document = document22
                                    });
                                }
                            }

                            var isCancelVisible = true;
                            var allStickers29   = cachedStickers as TLAllStickers29;
                            if (allStickers29 != null)
                            {
                                isCancelVisible = allStickers29.Sets.FirstOrDefault(x => x.Id.Value == stickerSet.Set.Id.Value) == null;
                            }

                            ShowMessagePrompt(isCancelVisible, stickerSet.Set, prompt =>
                            {
                                if (prompt == PopUpResult.Ok && isCancelVisible)
                                {
                                    mtProtoService.InstallStickerSetAsync(inputStickerSet,
                                                                          result => Execute.BeginOnUIThread(() =>
                                    {
                                        var instance = EmojiControl.GetInstance();
                                        instance.AddStickerSet(stickerSet);

                                        mtProtoService.SetMessageOnTime(2.0, AppResources.NewStickersAdded);
                                    }),
                                                                          error => Execute.BeginOnUIThread(() =>
                                    {
                                        if (error.CodeEquals(ErrorCode.BAD_REQUEST))
                                        {
                                            if (error.TypeEquals(ErrorType.STICKERSET_INVALID))
                                            {
                                                MessageBox.Show(AppResources.StickersNotFound, AppResources.Error, MessageBoxButton.OK);
                                            }
                                            else
                                            {
                                                Execute.ShowDebugMessage("messages.importChatInvite error " + error);
                                            }
                                        }
                                        else
                                        {
                                            Execute.ShowDebugMessage("messages.importChatInvite error " + error);
                                        }
                                    }));
                                }
                            });
                        }),
                                                          error => Execute.BeginOnUIThread(() =>
                        {
                            if (frame != null)
                            {
                                frame.CloseBlockingProgress();
                            }
                            if (error.CodeEquals(ErrorCode.BAD_REQUEST))
                            {
                                if (error.TypeEquals(ErrorType.STICKERSET_INVALID))
                                {
                                    MessageBox.Show(AppResources.StickersNotFound, AppResources.Error, MessageBoxButton.OK);
                                }
                                else
                                {
                                    Execute.ShowDebugMessage("messages.getStickerSet error " + error);
                                }
                            }
                            else
                            {
                                Execute.ShowDebugMessage("messages.getStickerSet error " + error);
                            }
                        }));
                    });
                });
            }
#endif
        }
コード例 #5
0
 public IAsyncOperation <ContentDialogBaseResult> ShowAsync(TLInputStickerSetBase parameter)
 {
     return(ShowAsync(parameter, null));
 }