private static List <StickerSpriteItem> CreateStickerSetSprites(TLStickerSet stickerSet) { if (stickerSet == null) { return(null); } const int stickersPerRow = 4; var sprites = new List <StickerSpriteItem>(); var stickers = new List <TLStickerItem>(); for (var i = 1; i <= stickerSet.Stickers.Count; i++) { stickers.Add((TLStickerItem)stickerSet.Stickers[i - 1]); if (i % stickersPerRow == 0 || i == stickerSet.Stickers.Count) { var item = new StickerSpriteItem(stickersPerRow, stickers, 96.0, 438.0, true); sprites.Add(item); stickers.Clear(); } } return(sprites); }
public TLStickerSet SelectStickerSet(long id) { Database database; Statement statement; OpenDatabase(out database); Execute(database, CREATE_TABLE_STICKERSET); Sqlite3.sqlite3_prepare_v2(database, SELECT_TABLE_STICKERSET + " WHERE `Id` = " + id, out statement); TLStickerSet result = null; while (Sqlite3.sqlite3_step(statement) == SQLiteResult.Row) { result = new TLStickerSet { Id = Sqlite3.sqlite3_column_int64(statement, 0), AccessHash = Sqlite3.sqlite3_column_int64(statement, 1), Title = Sqlite3.sqlite3_column_text(statement, 2), ShortName = Sqlite3.sqlite3_column_text(statement, 3), Count = Sqlite3.sqlite3_column_int(statement, 4), Hash = Sqlite3.sqlite3_column_int(statement, 5), Flags = (TLStickerSet.Flag)Sqlite3.sqlite3_column_int(statement, 6) }; } Sqlite3.sqlite3_finalize(statement); Sqlite3.sqlite3_close(database); return(result); }
public void Remove(TLStickerSet set) { if (set == null) { return; } var inputSet = new TLInputStickerSetId { Id = set.Id, AccessHash = set.AccessHash }; IsWorking = true; MTProtoService.UninstallStickerSetAsync(inputSet, result => Execute.BeginOnUIThread(() => { IsWorking = false; Items.Remove(set); var emojiControl = EmojiControl.GetInstance(); emojiControl.RemoveStickerSet(inputSet); }), error => Execute.BeginOnUIThread(() => { IsWorking = false; Execute.ShowDebugMessage("messages.uninstallStickerSet error " + error); })); }
public void Remove(TLStickerSet set) { if (set == null) { return; } var inputSet = new TLInputStickerSetId { Id = set.Id, AccessHash = set.AccessHash }; IsWorking = true; MTProtoService.UninstallStickerSetAsync(inputSet, result => Execute.BeginOnUIThread(() => { IsWorking = false; Items.Remove(set); var shellViewModel = IoC.Get <ShellViewModel>(); shellViewModel.RemoveStickerSet(set, inputSet); MTProtoService.SetMessageOnTime(2.0, AppResources.StickersRemoved); }), error => Execute.BeginOnUIThread(() => { IsWorking = false; Execute.ShowDebugMessage("messages.uninstallStickerSet error " + error); })); }
public void Archive(TLStickerSet set) { var set32 = set as TLStickerSet32; if (set32 == null) { return; } var inputStickerSet = new TLInputStickerSetId { Id = set32.Id, AccessHash = set32.AccessHash }; IsWorking = true; MTProtoService.InstallStickerSetAsync(inputStickerSet, TLBool.True, result => BeginOnUIThread(() => { IsWorking = false; set32.Archived = true; Items.Remove(set32); var allStickers43 = StateService.GetAllStickers() as TLAllStickers43; TLMessagesStickerSet messagesSet = null; if (allStickers43 != null) { messagesSet = TLUtils.RemoveStickerSet(allStickers43, set32); StateService.SaveAllStickersAsync(allStickers43); } if (messagesSet != null) { var archivedStickers = StateService.GetArchivedStickers(); if (archivedStickers != null) { TLUtils.AddStickerSetCovered(archivedStickers, messagesSet, archivedStickers.SetsCovered, new TLStickerSetCovered { Cover = messagesSet.Documents.FirstOrDefault() ?? new TLDocumentEmpty { Id = new TLLong(0) }, StickerSet = messagesSet.Set }); archivedStickers.Count.Value = archivedStickers.Sets.Count; UpdateArchivedSetsString(archivedStickers.Count.Value); StateService.SaveArchivedStickersAsync(archivedStickers); } } //EventAggregator.Publish(new UpdateStickerSetsEventArgs(allStickers43)); }), error => BeginOnUIThread(() => { IsWorking = false; Execute.ShowDebugMessage("messages.installStickerSet error " + error); })); }
public override async Task OnNavigatedToAsync(object parameter, NavigationMode mode, IDictionary <string, object> state) { if (parameter is TLInputStickerSetBase set) { IsLoading = true; var response = await ProtoService.GetStickerSetAsync(set); if (response.IsSucceeded) { IsLoading = false; if (_stickersService.IsStickerPackInstalled(response.Result.Set.Id)) { var existing = _stickersService.GetStickerSetById(response.Result.Set.Id); if (existing.Set.Hash != response.Result.Set.Hash) { StickerSet = response.Result.Set; Items.ReplaceWith(response.Result.Documents); _stickersService.LoadStickers(response.Result.Set.IsMasks ? StickerType.Mask : StickerType.Image, false, true); } else { StickerSet = existing.Set; Items.ReplaceWith(existing.Documents); } } else { StickerSet = response.Result.Set; Items.ReplaceWith(response.Result.Documents); } } else { StickerSet = new TLStickerSet { Title = "Sticker pack not found." }; Items.Clear(); //IsLoading = false; } } }
public void CopyLink(TLStickerSet set) { if (set == null) { return; } var shortName = set.ShortName.ToString(); if (string.IsNullOrEmpty(shortName)) { return; } var addStickersLink = string.Format(Constants.AddStickersLinkPlaceholder, shortName); Clipboard.SetText(addStickersLink); MTProtoService.SetMessageOnTime(2.0, AppResources.LinkCopiedToClipboard); }
public void Share(TLStickerSet set) { if (set == null) { return; } var shortName = set.ShortName.ToString(); if (string.IsNullOrEmpty(shortName)) { return; } var addStickersLink = string.Format(Constants.AddStickersLinkPlaceholder, shortName); StateService.ShareLink = addStickersLink; StateService.ShareMessage = addStickersLink; StateService.ShareCaption = AppResources.Share; NavigationService.UriFor <ShareViewModel>().Navigate(); }
public IAsyncOperation <ContentDialogBaseResult> ShowAsync(TLStickerSet parameter, ItemClickEventHandler callback) { return(ShowAsync(new TLInputStickerSetID { Id = parameter.Id, AccessHash = parameter.AccessHash }, callback)); }
public IAsyncOperation <ContentDialogBaseResult> ShowAsync(TLStickerSet parameter) { return(ShowAsync(parameter, null)); }