Пример #1
0
        private async void InitializeData()
        {
            ShowInAppPurchasesLoadingView();

            var queryResult = await InAppPurchases.GetAllAddons();

            if (queryResult.ExtendedError != null)
            {
                return;
            }

            var addonsList = new List <StoreProduct>();

            foreach (KeyValuePair <string, StoreProduct> item in queryResult.Products)
            {
                StoreProduct product = item.Value;
                addonsList.Add(product);
            }

            HideInAppPurchasesLoadingView();

            UnlocksListView.ItemsSource = addonsList;

            // TODO: move to check entitlement
            var res = await InAppPurchases.GetUserAddons();

            foreach (KeyValuePair <string, StoreProduct> item in res.Products)
            {
                StoreProduct product = item.Value;
            }
        }
Пример #2
0
        private async void Purchase(string id)
        {
            var result = await InAppPurchases.PurchaseAddon(id);

            string extendedError    = string.Empty;
            string descriptionError = string.Empty;

            if (result.ExtendedError != null)
            {
                extendedError = "ExtendedError: " + result.ExtendedError.Message;
            }

            //var res1 = await InAppPurchases.GetRemainingBalance(id);

            switch (result.Status)
            {
            case StorePurchaseStatus.AlreadyPurchased:
                descriptionError = App.ResourceLoader.GetString("PurchaseStatusAlreadyPurchased");
                //InAppPurchases.ConsumeAddon(id);
                break;

            case StorePurchaseStatus.Succeeded:
                descriptionError = App.ResourceLoader.GetString("PurchaseStatusSucceeded");
                //InAppPurchases.ConsumeAddon(id);
                //var res2 = await InAppPurchases.GetRemainingBalance(id);
                break;

            case StorePurchaseStatus.NotPurchased:
                descriptionError = string.Format("{0}. {1}",
                                                 App.ResourceLoader.GetString("PurchaseStatusNotPurchased"),
                                                 extendedError);
                break;

            case StorePurchaseStatus.NetworkError:
                descriptionError = string.Format("{0}. {1}",
                                                 App.ResourceLoader.GetString("PurchaseStatusNetworkError"),
                                                 extendedError);
                break;

            case StorePurchaseStatus.ServerError:
                descriptionError = string.Format("{0}. {1}",
                                                 App.ResourceLoader.GetString("PurchaseStatusServerError"),
                                                 extendedError);
                break;

            default:
                descriptionError = string.Format("{0}. {1}",
                                                 App.ResourceLoader.GetString("PurchaseStatusUknownError"),
                                                 extendedError);
                break;
            }

            DataTransfer.ShowLocalToast(descriptionError);
        }
Пример #3
0
        public HomePage()
        {
            InitializeComponent();
            InitializeTitleBar();
            InitializeVariables();
            InitialzeEvents();

            ApplyCommandBarBarFrostedGlass();
            ShowUpdateChangelogIfUpdated();

            BackgroundTasks.CheckAllTasks();
            InAppPurchases.CheckAndUpdatePremiumUser();
        }
Пример #4
0
        public static uint GetMaximumCacheSize(this ISettingsService @this)
        {
            if (@this == null)
            {
                throw new ArgumentNullException("this");
            }

            if (InAppPurchases.HasFeature(GoogleMusicFeatures.Offline))
            {
                return(@this.GetValue <uint>(MaximumCacheSizeKey, defaultValue: MaximumOfflineSongsCount));
            }

            return(MaximumOfflineSongsCount);
        }
Пример #5
0
        public void BuyPackage(object arg)
        {
            if (this.buying)
            {
                return;
            }

            var packageName = arg.ToString();

            this.buying = true;

            this.Logger.LogTask(InAppPurchases.RequestPurchase(packageName));
            this.applicationSettingViewsService.Close();
        }
Пример #6
0
        private void UpdateAdControl()
        {
            if (InAppPurchases.HasFeature(GoogleMusicFeatures.AdFree))
            {
                if (this.adControl != null)
                {
                    this.SnappedGrid.Children.Remove(this.adControl);
                    this.adControl.ErrorOccurred -= this.AdControlOnErrorOccurred;
                    this.adControl = null;

                    this.SnappedGrid.Children.Remove(this.adReplacementButton);
                    this.adReplacementButton = null;
                }
            }
            else
            {
                if (this.adControl == null)
                {
                    this.adReplacementButton = new HyperlinkButton
                    {
                        Style = (Style)Application.Current.Resources["SnappedViewAdReplacement"]
                    };

                    Grid.SetRow(this.adReplacementButton, 6);
                    Canvas.SetZIndex(this.adReplacementButton, 0);
                    this.SnappedGrid.Children.Add(this.adReplacementButton);

                    this.adControl = new AdControl
                    {
                        ApplicationId       = "8eb9e14b-2133-40db-9500-14eff7c05aab",
                        AdUnitId            = "156438",
                        Width               = 300,
                        Height              = 250,
                        HorizontalAlignment = HorizontalAlignment.Center,
                        UseStaticAnchor     = true
                    };

                    this.adControl.ErrorOccurred += this.AdControlOnErrorOccurred;
                    Grid.SetRow(this.adControl, 6);
                    Canvas.SetZIndex(this.adControl, 100);
                    this.SnappedGrid.Children.Add(this.adControl);
                }
            }
        }
Пример #7
0
        public static void Initialize(IApplicationSettingViewsService service, IApplicationResources resources)
        {
            service.RegisterSettings <AccountsView>("accounts", resources.GetString("SettingsAccountTitle"));
            service.RegisterSettings <AppSettingsView>("appsettings", resources.GetString("SettingsAppSettingsTitle"));
            service.RegisterSettings <OfflineCacheView>("offlinecache", resources.GetString("OfflineCacheAppSettingsTitle"), ApplicationSettingLayoutType.Large);

            bool upgradeViewRegistered = false;

            if (!InAppPurchases.HasFeature(GoogleMusicFeatures.All))
            {
                service.RegisterSettings <UpgradeView>("upgrade", resources.GetString("SettingsUpgradeTitle"));
                upgradeViewRegistered = true;
            }

            service.RegisterSettings <SupportView>("support", resources.GetString("SettingsSupportTitle"));
            service.RegisterSettings <PrivacyView>("privacy", resources.GetString("SettingsPrivacyPolicyTitle"));
            service.RegisterSettings <LegalView>("legal", resources.GetString("SettingsLegalTitle"));

            InAppPurchases.LicenseChanged += () =>
            {
                if (!InAppPurchases.HasFeature(GoogleMusicFeatures.All))
                {
                    if (!upgradeViewRegistered)
                    {
                        service.RegisterSettings <UpgradeView>("upgrade", "SettingsUpgradeTitle", ApplicationSettingLayoutType.Standard, "accounts");
                        upgradeViewRegistered = true;
                    }
                }
                else
                {
                    if (upgradeViewRegistered)
                    {
                        service.UnregisterSettings("upgrade");
                        upgradeViewRegistered = false;
                    }
                }
            };

#if DEBUG
            InAppPurchases.SimulatorInAppPurchasesInitialization();
#endif
        }
Пример #8
0
        private async Task LoadProducts(string[] keys)
        {
            try
            {
                MonoTouch.Utilities.PushNetworkActive();
                var data = await InAppPurchases.RequestProductData(keys);

                _items.Clear();
                _items.AddRange(data.Products.Select(x => new Item {
                    Id = x.ProductIdentifier, Name = x.LocalizedTitle, Description = x.LocalizedDescription, Price = x.LocalizedPrice()
                }));
                Render();
            }
            catch (Exception e)
            {
                MonoTouch.Utilities.ShowAlert("Error", e.Message);
            }
            finally
            {
                MonoTouch.Utilities.PopNetworkActive();
            }
        }
Пример #9
0
        private bool CanBuyPackage(object arg)
        {
            var packageName = arg.ToString();

            return(!InAppPurchases.IsActive(packageName));
        }