private void UpdateSets(IStickers iStickers) { _stickers = iStickers; _emoticons.Clear(); _stickerSets.Clear(); for (var i = 0; i < iStickers.Documents.Count; i++) { var document22 = iStickers.Documents[i] as TLDocument22; if (document22 != null) { if (document22.StickerSet != null) { var setId = document22.StickerSet.Name; TLVector <TLStickerItem> stickers; if (_stickerSets.TryGetValue(setId, out stickers)) { stickers.Add(new TLStickerItem { Document = document22 }); } else { _stickerSets[setId] = new TLVector <TLStickerItem> { new TLStickerItem { Document = document22 } }; } } } } var firstChunkSize = 10; var count = 0; var delayedItems = new List <TLStickerSetBase>(); for (var i = 0; i < iStickers.Sets.Count; i++) { var set = iStickers.Sets[i]; var setName = set.Id.ToString(); TLVector <TLStickerItem> stickers; if (_stickerSets.TryGetValue(setName, out stickers)) { var objects = new TLVector <TLObject>(); foreach (var sticker in stickers) { objects.Add(sticker); } set.Stickers = objects; } } }
private void UpdateSets(IStickers iStickers) { _stickers = iStickers; _emoticons.Clear(); _stickerSets.Clear(); //for (var i = 0; i < iStickers.Packs.Count; i++) //{ // var emoticon = iStickers.Packs[i].Emoticon.ToString(); // foreach (var document in iStickers.Packs[i].Documents) // { // _emoticons[document.Value] = emoticon; // } //} for (var i = 0; i < iStickers.Documents.Count; i++) { var document22 = iStickers.Documents[i] as TLDocument22; if (document22 != null) { //string emoticon; //if (_emoticons.TryGetValue(document22.Id.Value, out emoticon)) //{ // document22.Emoticon = emoticon; //} if (document22.StickerSet != null) { var setId = document22.StickerSet.Name; TLVector <TLStickerItem> stickers; if (_stickerSets.TryGetValue(setId, out stickers)) { stickers.Add(new TLStickerItem { Document = document22 }); } else { _stickerSets[setId] = new TLVector <TLStickerItem> { new TLStickerItem { Document = document22 } }; } } } } Items.Clear(); var firstChunkSize = 10; var count = 0; var delayedItems = new List <TLStickerSetBase>(); for (var i = 0; i < iStickers.Sets.Count; i++) { var set = iStickers.Sets[i]; var setName = set.Id.ToString(); TLVector <TLStickerItem> stickers; if (_stickerSets.TryGetValue(setName, out stickers)) { var objects = new TLVector <TLObject>(); foreach (var sticker in stickers) { objects.Add(sticker); } set.Stickers = objects; if (set.Stickers.Count > 0) { if (count < firstChunkSize) { Items.Add(set); count++; } else { delayedItems.Add(set); } } } } BeginOnUIThread(() => { foreach (var set in delayedItems) { Items.Add(set); } }); }
private void UpdateSets(IStickers featuredStickers, IList <TLLong> unread) { _stickers = featuredStickers; _emoticons.Clear(); _stickerSets.Clear(); var unreadDict = new Dictionary <long, long>(); foreach (var unreadId in unread) { unreadDict[unreadId.Value] = unreadId.Value; } for (var i = 0; i < featuredStickers.Documents.Count; i++) { var document22 = featuredStickers.Documents[i] as TLDocument22; if (document22 != null) { if (document22.StickerSet != null) { var setId = document22.StickerSet.Name; TLVector <TLStickerItem> stickers; if (_stickerSets.TryGetValue(setId, out stickers)) { stickers.Add(new TLStickerItem { Document = document22 }); } else { _stickerSets[setId] = new TLVector <TLStickerItem> { new TLStickerItem { Document = document22 } }; } } } } Items.Clear(); var firstChunkSize = 10; var count = 0; var delayedItems = new List <TLStickerSetBase>(); for (var i = 0; i < featuredStickers.Sets.Count; i++) { var set = featuredStickers.Sets[i]; if (unreadDict.ContainsKey(set.Id.Value)) { set.Unread = true; } var setName = set.Id.ToString(); TLVector <TLStickerItem> stickers; if (_stickerSets.TryGetValue(setName, out stickers)) { var objects = new TLVector <TLObject>(); foreach (var sticker in stickers) { objects.Add(sticker); } set.Stickers = objects; if (set.Stickers.Count > 0) { if (count < firstChunkSize) { Items.Add(set); count++; } else { delayedItems.Add(set); } } } } BeginOnUIThread(() => { foreach (var set in delayedItems) { Items.Add(set); } }); }