Example #1
0
        public StickerSetViewModel(IProtoService protoService, StickerSetInfo info)
        {
            _protoService = protoService;
            _info         = info;

            var placeholders = new List <StickerViewModel>();

            if (info.Covers?.Count > 0 && !info.IsInstalled && info.StickerType is StickerTypeCustomEmoji)
            {
                IsLoaded = true;

                var limit = info.Size > info.Covers.Count;
                var count = limit ? 15 : info.Size;

                for (int i = 0; i < count; i++)
                {
                    placeholders.Add(new StickerViewModel(_protoService, info.Covers[i]));
                }

                if (limit)
                {
                    placeholders.Add(new MoreStickerViewModel(_protoService, info.Id, info.StickerFormat, info.Size - count));
                }
            }
            else
            {
                for (int i = 0; i < info.Size; i++)
                {
                    placeholders.Add(new StickerViewModel(_protoService, info.Id, info.StickerFormat));
                }
            }

            Stickers = new MvxObservableCollection <StickerViewModel>(placeholders);
            Covers   = info.Covers;
        }
Example #2
0
        public StickerSetViewModel(IProtoService protoService, StickerSetInfo info, IList <Sticker> stickers)
        {
            _protoService = protoService;

            _info = info;

            IsLoaded = true;
            Stickers = new MvxObservableCollection <StickerViewModel>(stickers.Select(x => new StickerViewModel(protoService, x)));
            Covers   = info.Covers;
        }
Example #3
0
        public StickerSetViewModel(StickerSetInfo info)
        {
            _info = info;

            var placeholders = new List <StickerViewModel>();

            for (int i = 0; i < info.Size; i++)
            {
                placeholders.Add(new StickerViewModel(info.Id));
            }

            Stickers = new MvxObservableCollection <StickerViewModel>(placeholders);
            Covers   = info.Covers;
        }
        public StickerSetViewModel(IProtoService protoService, IEventAggregator aggregator, StickerSetInfo info)
        {
            _protoService = protoService;
            _aggregator   = aggregator;

            _info = info;

            var placeholders = new List <StickerViewModel>();

            for (int i = 0; i < (info.IsInstalled ? info.Size : info.Covers?.Count ?? 0); i++)
            {
                placeholders.Add(new StickerViewModel(_protoService, _aggregator, info.Id));
            }

            Stickers = new MvxObservableCollection <StickerViewModel>(placeholders);
            Covers   = info.Covers;
        }
Example #5
0
        private async void UpdateSupergroupFullInfo(Chat chat, Supergroup group, SupergroupFullInfo fullInfo)
        {
            var already = Items.FirstOrDefault(x => x.Id == fullInfo.StickerSetId);

            if (already != null)
            {
                SelectedItem = already;
            }
            else
            {
                var response = await ProtoService.SendAsync(new GetStickerSet(fullInfo.StickerSetId));

                if (response is StickerSet set)
                {
                    SelectedItem = new StickerSetInfo(set.Id, set.Title, set.Name, set.IsInstalled, set.IsArchived, set.IsOfficial, set.IsMasks, set.IsViewed, set.Stickers.Count, set.Stickers);
                }
            }
        }
Example #6
0
        private async Task CheckAvailabilityAsync(string shortName)
        {
            IsLoading = true;

            var response = await ProtoService.SendAsync(new SearchStickerSet(shortName));

            if (response is StickerSet stickerSet)
            {
                IsLoading    = false;
                IsAvailable  = true;
                SelectedItem = new StickerSetInfo(stickerSet.Id, stickerSet.Title, stickerSet.Name, stickerSet.Thumbnail, stickerSet.IsInstalled, stickerSet.IsArchived, stickerSet.IsOfficial, stickerSet.IsAnimated, stickerSet.IsMasks, stickerSet.IsViewed, stickerSet.Stickers.Count, stickerSet.Stickers);
                ShortName    = stickerSet.Name;
            }
            else
            {
                IsLoading    = false;
                IsAvailable  = false;
                SelectedItem = null;
            }
        }
Example #7
0
 private void ReorderExecute(StickerSetInfo set)
 {
     _needReorder = true;
     _newOrder    = Items.Select(x => x.Id).ToList();
 }
Example #8
0
 public StickerSetViewModel(StickerSetInfo info, StickerSet set)
     : this(info)
 {
     IsLoaded = true;
     Update(set);
 }
 public StickerSetViewModel(IProtoService protoService, IEventAggregator aggregator, StickerSetInfo info, StickerSet set)
     : this(protoService, aggregator, info)
 {
     IsLoaded = true;
     Update(set);
 }
 public SupergroupStickerSetViewModel(IProtoService protoService, IEventAggregator aggregator, StickerSetInfo info, StickerSet set)
     : base(protoService, aggregator, info, set)
 {
 }
Example #11
0
 public StickerSetViewModel(IProtoService protoService, StickerSetInfo info, StickerSet set)
     : this(protoService, info)
 {
     IsLoaded = true;
     Update(set);
 }
Example #12
0
 public SupergroupStickerSetViewModel(IProtoService protoService, StickerSetInfo info)
     : base(protoService, info)
 {
 }