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(); }
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; } }
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; } }