Exemple #1
0
        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;
                }
            }
        }
Exemple #2
0
        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);
                }
            });
        }
Exemple #3
0
        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);
                }
            });
        }