public void Handle(UpdateFavoriteStickers update) { ProtoService.Send(new GetFavoriteStickers(), result => { if (result is Stickers favorite) { BeginOnUIThread(() => _favoriteSet.Update(favorite, true)); } }); }
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); }); } }); }