public FeaturesPopup(IProtoService protoService, PremiumState state, IList <PremiumFeature> features, IDictionary <Type, Animation> animations, Stickers stickers, PremiumFeature selectedFeature) { InitializeComponent(); _protoService = protoService; _animations = animations; _stickers = stickers; var items = features.Where(x => x is not PremiumFeatureIncreasedLimits).ToArray(); Pager.NumberOfPages = items.Length; ScrollingHost.ItemsSource = items; ScrollingHost.SelectedItem = selectedFeature; PurchaseCommand.Content = protoService.IsPremium ? Strings.Resources.OK : string.Format(Strings.Resources.SubscribeToPremium, Locale.FormatCurrency(state.MonthlyAmount, state.Currency)); }
internal void UpdateFeature(IProtoService protoService, PremiumFeature feature, Animation value) { var bottom = feature switch { PremiumFeatureIncreasedUploadFileSize => true, PremiumFeatureDisabledAds => true, _ => false }; if (bottom) { FrameOutside.Margin = new Thickness(0, -157, 0, 0); FrameInside.Margin = new Thickness(0, -157, 0, 0); Canvas.SetTop(FrameScreen, 0); Canvas.SetTop(Player, 0); FrameHole.Visibility = Visibility.Collapsed; } else { FrameOutside.Margin = new Thickness(0, 0, 0, 0); FrameInside.Margin = new Thickness(0, 0, 0, 0); Canvas.SetTop(FrameScreen, 28); Canvas.SetTop(Player, 28); FrameHole.Visibility = Visibility.Visible; } var titleValue = string.Empty; var subtitleValue = string.Empty; switch (feature) { case PremiumFeatureAdvancedChatManagement: titleValue = Strings.Resources.PremiumPreviewAdvancedChatManagement; subtitleValue = Strings.Resources.PremiumPreviewAdvancedChatManagementDescription; break; case PremiumFeatureAnimatedProfilePhoto: titleValue = Strings.Resources.PremiumPreviewAnimatedProfiles; subtitleValue = Strings.Resources.PremiumPreviewAnimatedProfilesDescription; break; case PremiumFeatureAppIcons: titleValue = Strings.Resources.PremiumPreviewAppIcon; subtitleValue = Strings.Resources.PremiumPreviewAppIconDescription; break; case PremiumFeatureCustomEmoji: titleValue = Strings.Resources.PremiumPreviewEmoji; subtitleValue = Strings.Resources.PremiumPreviewEmojiDescription; break; case PremiumFeatureDisabledAds: titleValue = Strings.Resources.PremiumPreviewNoAds; subtitleValue = Strings.Resources.PremiumPreviewNoAdsDescription; break; case PremiumFeatureImprovedDownloadSpeed: titleValue = Strings.Resources.PremiumPreviewDownloadSpeed; subtitleValue = Strings.Resources.PremiumPreviewDownloadSpeedDescription; break; case PremiumFeatureIncreasedUploadFileSize: titleValue = Strings.Resources.PremiumPreviewUploads; subtitleValue = Strings.Resources.PremiumPreviewUploadsDescription; break; case PremiumFeatureProfileBadge: titleValue = Strings.Resources.PremiumPreviewProfileBadge; subtitleValue = Strings.Resources.PremiumPreviewProfileBadgeDescription; break; case PremiumFeatureUniqueReactions: titleValue = Strings.Resources.PremiumPreviewReactions; subtitleValue = Strings.Resources.PremiumPreviewReactionsDescription; break; case PremiumFeatureUniqueStickers: titleValue = Strings.Resources.PremiumPreviewStickers; subtitleValue = Strings.Resources.PremiumPreviewStickersDescription; break; case PremiumFeatureVoiceRecognition: titleValue = Strings.Resources.PremiumPreviewVoiceToText; subtitleValue = Strings.Resources.PremiumPreviewVoiceToTextDescription; break; } Title.Text = titleValue; Subtitle.Text = subtitleValue; Player.Source = new RemoteVideoSource(protoService, value.AnimationValue, value.Duration); }