private void ProcessStickers() { _stickers = true; var stickers = _stickersService.GetStickerSets(StickerType.Image); Execute.BeginOnUIThread(() => { SavedStickers.ReplaceWith(stickers); if (_frequentlyUsed.Documents.Count > 0) { SavedStickers.Insert(0, _frequentlyUsed); } }); }
private void ProcessStickers() { _stickers = true; var stickers = _stickersService.GetStickerSets(StickerType.Image); Execute.BeginOnUIThread(() => { SavedStickers.ReplaceWith(stickers); //if (_groupSet.Documents != null && _groupSet.Documents.Count > 0) //{ // SavedStickers.Add(_groupSet); //} //else //{ // SavedStickers.Remove(_groupSet); //} //if (_recentSet.Documents != null && _recentSet.Documents.Count > 0) //{ // SavedStickers.Add(_recentSet); //} //else //{ // SavedStickers.Remove(_recentSet); //} //if (_favedSet.Documents != null && _favedSet.Documents.Count > 0) //{ // SavedStickers.Add(_favedSet); //} //else //{ // SavedStickers.Remove(_favedSet); //} }); }
//public void SyncGroup(TLChannelFull channelFull) //{ // SavedStickers.Remove(_groupSet); // var update = true; // var appData = ApplicationData.Current.LocalSettings.CreateContainer("Channels", ApplicationDataCreateDisposition.Always); // if (appData.Values.TryGetValue("Stickers" + channelFull.Id, out object stickersObj)) // { // var stickersId = (long)stickersObj; // if (stickersId == channelFull.StickerSet?.Id) // { // update = false; // } // } // if (channelFull.HasStickerSet && update) // { // _groupSet.With = CacheService.GetChat(channelFull.Id) as TLChannel; // _groupSet.Full = channelFull; // Execute.BeginOnThreadPool(() => // { // var result = _stickersService.GetGroupStickerSetById(channelFull.StickerSet); // if (result != null) // { // BeginOnUIThread(() => // { // _groupSet.Documents = new TLVector<TLDocumentBase>(result.Documents); // if (_groupSet.Documents != null && _groupSet.Documents.Count > 0) // { // SavedStickers.Add(_groupSet); // } // else // { // SavedStickers.Remove(_groupSet); // } // }); // } // }); // } //} //public void HideGroup(TLChannelFull channelFull) //{ // var appData = ApplicationData.Current.LocalSettings.CreateContainer("Channels", ApplicationDataCreateDisposition.Always); // appData.Values["Stickers" + channelFull.Id] = channelFull.StickerSet?.Id ?? 0; // SavedStickers.Remove(_groupSet); //} public void SyncStickers() { if (_stickers) { return; } _stickers = true; ProtoService.Send(new GetFavoriteStickers(), result1 => { ProtoService.Send(new GetRecentStickers(), result2 => { ProtoService.Send(new GetInstalledStickerSets(false), result3 => { if (result1 is Stickers favorite && result2 is Stickers recent && result3 is StickerSets sets) { _favoriteSet.Update(favorite); _recentSet.Update(recent); for (int i = 0; i < _favoriteSet.Stickers.Count; i++) { var favSticker = _favoriteSet.Stickers[i]; for (int j = 0; j < _recentSet.Stickers.Count; j++) { var recSticker = _recentSet.Stickers[j]; if (recSticker.StickerValue.Id == favSticker.StickerValue.Id) { _recentSet.Stickers.Remove(recSticker); break; } } } var stickers = new List <StickerSetViewModel>(); if (favorite.StickersValue.Count > 0) { stickers.Add(_favoriteSet); } if (recent.StickersValue.Count > 0) { stickers.Add(_recentSet); } if (sets.Sets.Count > 0) { ProtoService.Send(new GetStickerSet(sets.Sets[0].Id), result4 => { if (result4 is StickerSet set) { stickers.Add(new StickerSetViewModel(sets.Sets[0], set)); BeginOnUIThread(() => SavedStickers.ReplaceWith(stickers.Union(sets.Sets.Skip(1).Select(x => new StickerSetViewModel(x))))); } else { BeginOnUIThread(() => SavedStickers.ReplaceWith(stickers.Union(sets.Sets.Select(x => new StickerSetViewModel(x))))); } }); } else { BeginOnUIThread(() => SavedStickers.ReplaceWith(stickers.Union(sets.Sets.Select(x => new StickerSetViewModel(x))))); } } }); }); });
//public void HideGroup(TLChannelFull channelFull) //{ // var appData = ApplicationData.Current.LocalSettings.CreateContainer("Channels", ApplicationDataCreateDisposition.Always); // appData.Values["Stickers" + channelFull.Id] = channelFull.StickerSet?.Id ?? 0; // SavedStickers.Remove(_groupSet); //} public void SyncStickers(Chat chat) { if (_updated) { return; } _updated = true; ProtoService.Send(new GetFavoriteStickers(), result1 => { ProtoService.Send(new GetRecentStickers(), result2 => { ProtoService.Send(new GetInstalledStickerSets(false), result3 => { if (result1 is Stickers favorite && result2 is Stickers recent && result3 is StickerSets sets) { for (int i = 0; i < favorite.StickersValue.Count; i++) { var favSticker = favorite.StickersValue[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--; } _favoriteSet.Update(favorite); _recentSet.Update(recent); var stickers = new List <StickerSetViewModel>(); if (_favoriteSet.Stickers.Count > 0) { stickers.Add(_favoriteSet); } if (_recentSet.Stickers.Count > 0) { stickers.Add(_recentSet); } if (_groupSet.Stickers.Count > 0 && _groupSet.ChatId == chat?.Id) { stickers.Add(_groupSet); } if (sets.Sets.Count > 0) { ProtoService.Send(new GetStickerSet(sets.Sets[0].Id), result4 => { if (result4 is StickerSet set) { stickers.Add(new StickerSetViewModel(ProtoService, Aggregator, sets.Sets[0], set)); BeginOnUIThread(() => SavedStickers.ReplaceWith(stickers.Union(sets.Sets.Skip(1).Select(x => new StickerSetViewModel(ProtoService, Aggregator, x))))); } else { BeginOnUIThread(() => SavedStickers.ReplaceWith(stickers.Union(sets.Sets.Select(x => new StickerSetViewModel(ProtoService, Aggregator, x))))); } }); } else { BeginOnUIThread(() => SavedStickers.ReplaceWith(stickers.Union(sets.Sets.Select(x => new StickerSetViewModel(ProtoService, Aggregator, x))))); } } }); }); });