Esempio n. 1
0
        private void InitAdContainer()
        {
            ViewModelLocator.Settings.OnAdsMinutesPerDayChanged += SettingsOnOnAdsMinutesPerDayChanged;


            Bindings.Add(this.SetBinding(() => ViewModel.AdsContainerVisibility)
                         .WhenSourceChanges(() =>
            {
                if (ViewModel.AdsContainerVisibility)
                {
                    if (!_initializedAds)
                    {
                        MobileAds.Initialize(ApplicationContext, "ca-app-pub-8220174765620095~3319675764");
                        var adRequest = new AdRequest.Builder().Build();
                        MainPageAdView.LoadAd(adRequest);
                        _initializedAds = true;
                    }
                    MainPageAdView.Visibility = ViewStates.Visible;
                }
                else
                {
                    MainPageAdView.Visibility = ViewStates.Gone;
                }
            }));

            _videoAd = MobileAds.GetRewardedVideoAdInstance(this);
            _videoAd.RewardedVideoAdListener = this;

            StartAdsTimeMeasurements();
        }
Esempio n. 2
0
        private void AdTimerCallback(object state)
        {
            var passed = (int)(ResourceLocator.ApplicationDataService["AdsTimeToday"] ?? 0);

            passed += 10;
            RunOnUiThread(() => MainPageAdView.Resume());
            ResourceLocator.ApplicationDataService["AdsTimeToday"] = passed;
            if (!Settings.AdsEnable || (Settings.AdsSecondsPerDay != 0 && passed > Settings.AdsSecondsPerDay))
            {
                RunOnUiThread(() => ViewModelLocator.GeneralMain.AdsContainerVisibility = false);
                _timer?.Dispose();
                _timer = null;
            }
        }
Esempio n. 3
0
        private void StartAdsTimeMeasurements()
        {
            var day = ResourceLocator.ApplicationDataService["AdsCurrentDay"];

            if (day != null)
            {
                if ((int)day != DateTime.Today.DayOfYear)
                {
                    ResourceLocator.ApplicationDataService["AdsTimeToday"] = 0;
                }
            }
            ResourceLocator.ApplicationDataService["AdsCurrentDay"] = DateTime.Today.DayOfYear;
            if (Settings.AdsEnable)
            {
                _timer = new Timer(AdTimerCallback, null, 0, 10000);
                ViewModelLocator.GeneralMain.AdsContainerVisibility = true;
            }
            else
            {
                MainPageAdView.Pause();
                MainPageAdView.Visibility = ViewStates.Gone;
            }
        }