Exemple #1
0
 public void Handle(UpdateFavoriteStickers update)
 {
     ProtoService.Send(new GetFavoriteStickers(), result =>
     {
         if (result is Stickers favorite)
         {
             BeginOnUIThread(() => _favoriteSet.Update(favorite, true));
         }
     });
 }
Exemple #2
0
        public void Handle(UpdateRecentStickers update)
        {
            if (update.IsAttached)
            {
                return;
            }

            ProtoService.Send(new GetRecentStickers(), result =>
            {
                if (result is Stickers recent)
                {
                    BeginOnUIThread(() => _recentSet.Update(recent, true));
                }
            });
        }
        public async void Update(IProtoService protoService, StickerSetViewModel stickerSet)
        {
            if (_loadToken != null)
            {
                _loadToken.Cancel();
            }

            Title.Text       = stickerSet.Title;
            List.ItemsSource = stickerSet.Stickers;

            if (stickerSet.IsLoaded)
            {
                return;
            }

            _loadToken = new CancellationTokenSource();

            var token    = _loadToken.Token;
            var response = await protoService.SendAsync(new GetStickerSet(stickerSet.Id));

            if (response is StickerSet full)
            {
                stickerSet.Update(full);
            }

            if (token.IsCancellationRequested)
            {
                return;
            }

            //List.ItemsSource = null;
            //List.ItemsSource = stickerSet.Stickers;
        }
        public void Handle(UpdateRecentStickers update)
        {
            if (update.IsAttached)
            {
                return;
            }

            ProtoService.Send(new GetRecentStickers(), result =>
            {
                if (result is Stickers recent)
                {
                    BeginOnUIThread(() =>
                    {
                        for (int i = 0; i < _favoriteSet.Stickers.Count; i++)
                        {
                            var favSticker = _favoriteSet.Stickers[i];
                            for (int j = 0; j < recent.StickersValue.Count; j++)
                            {
                                var recSticker = recent.StickersValue[j];
                                if (recSticker.StickerValue.Id == favSticker.StickerValue.Id)
                                {
                                    recent.StickersValue.Remove(recSticker);
                                    break;
                                }
                            }
                        }

                        for (int i = 20; i < recent.StickersValue.Count; i++)
                        {
                            recent.StickersValue.RemoveAt(20);
                            i--;
                        }

                        _recentSet.Update(recent, true);
                    });
                }
            });
        }