From 59f1fb6b35df4bd9f5886500a2929d869e4d3e9a Mon Sep 17 00:00:00 2001 From: AdityaGaikwad Date: Fri, 20 Sep 2024 21:15:40 +0530 Subject: [PATCH] Added ads in: MoreActivity, SplashFragment InterstitialAds logic change to show ad only after 30 mins has passed in GameActivity. Changed flow to skip onboard process, integrated continue guest api on LanguageFragment Bugs solved. --- app/src/main/java/com/woka/WokaApp.kt | 11 ++- .../main/java/com/woka/googleads/AdUnitIds.kt | 3 + .../com/woka/googleads/InterstitialAds.kt | 55 +++++++------ .../com/woka/home/fragments/Home1Fragment.kt | 4 +- .../com/woka/home/fragments/Home2Fragment.kt | 13 +--- .../java/com/woka/home/views/HomeActivity.kt | 13 +++- .../com/woka/home/views/MoreHomeActivity.kt | 24 +++++- .../onboard/fragments/LanguageFragment.kt | 78 +++++++++++++++++-- .../woka/onboard/fragments/SplashFragment.kt | 42 +++++++++- .../woka/onboard/mvvm/OnboardRepository.kt | 5 +- .../com/woka/onboard/mvvm/OnboardViewModel.kt | 3 +- .../com/woka/players/views/PlayerActivity.kt | 12 ++- .../com/woka/utils/SessionExpiredActivity.kt | 2 + .../com/woka/wokagames/views/GamesActivity.kt | 34 ++++---- .../main/res/layout/activity_more_home.xml | 14 +++- app/src/main/res/layout/fragment_sign_in.xml | 3 +- app/src/main/res/layout/fragment_splash.xml | 22 ++++++ app/src/main/res/values/strings.xml | 1 + 18 files changed, 250 insertions(+), 89 deletions(-) diff --git a/app/src/main/java/com/woka/WokaApp.kt b/app/src/main/java/com/woka/WokaApp.kt index e2a7f93..8306c51 100644 --- a/app/src/main/java/com/woka/WokaApp.kt +++ b/app/src/main/java/com/woka/WokaApp.kt @@ -13,6 +13,7 @@ import com.onesignal.OneSignal import com.woka.advertisements.AdsRepository import com.woka.database.AppDatabase import com.woka.database.helpers.SyncWorker +import com.woka.googleads.InterstitialAds import com.woka.streamingurls.StreamingUrlRepository import com.woka.userPreference.UserPreference import com.woka.utils.JW_PLAYER_LICENSE @@ -24,10 +25,12 @@ import java.util.concurrent.TimeUnit class WokaApp : Application() { + + @SuppressLint("StaticFieldLeak") companion object { - @SuppressLint("StaticFieldLeak") var userPrefs: UserPreference? = null var appDatabase: AppDatabase? = null + var interstitialAds: InterstitialAds? = null private const val LOCAL_DATA_SYNC_WORK = "com.woka.LOCAL_DATA_SYNC" private const val LOCAL_DATA_SYNC_PERIODIC_TIME_INTERVAL = 1L @@ -52,6 +55,12 @@ class WokaApp : Application() { initAdmob() dataSyncWorkRequest() + + loadInterstitialAds() + } + + private fun loadInterstitialAds() { + interstitialAds = InterstitialAds(applicationContext) } private fun initOneSignal() { diff --git a/app/src/main/java/com/woka/googleads/AdUnitIds.kt b/app/src/main/java/com/woka/googleads/AdUnitIds.kt index c8a2ec1..4e04e3e 100644 --- a/app/src/main/java/com/woka/googleads/AdUnitIds.kt +++ b/app/src/main/java/com/woka/googleads/AdUnitIds.kt @@ -1,5 +1,8 @@ package com.woka.googleads +// Home2Fragment +const val HOME_THEME_2_BANNER_AD = "ca-app-pub-5699008063638916/6110095586" + // WEB SERIES const val WEB_SERIES_TRAILER_AD = "ca-app-pub-5699008063638916/6110095586" const val WEB_SERIES_BANNER_AD = "ca-app-pub-5699008063638916/6110095586" diff --git a/app/src/main/java/com/woka/googleads/InterstitialAds.kt b/app/src/main/java/com/woka/googleads/InterstitialAds.kt index aab7c29..aa7af40 100644 --- a/app/src/main/java/com/woka/googleads/InterstitialAds.kt +++ b/app/src/main/java/com/woka/googleads/InterstitialAds.kt @@ -1,6 +1,7 @@ package com.woka.googleads import android.app.Activity +import android.content.Context import android.util.Log import androidx.core.view.WindowCompat import androidx.core.view.WindowInsetsCompat @@ -13,60 +14,58 @@ import com.google.android.gms.ads.interstitial.InterstitialAdLoadCallback private const val TAG = "aditya_loading_interstitial" -class InterstitialAds(private val activity: Activity, private val unitId: String) { +class InterstitialAds(private val context: Context) { + + companion object{ + private const val AD_TIME_INTERVAL_MILLIS = 30_60_000L // 30 mins + } private var interstitialAd: InterstitialAd? = null - private var isLoading = false - private var shallDirectlyLoad = false - private var errorLoadingAd = false + private var lastTimeAdShown = 0L init { loadNewAd() } - private fun loadNewAd(callBack: (() -> Unit)? = null){ - if (isLoading || interstitialAd != null){ - // already ad is present - return - } + private fun shallShowAd(): Boolean{ + if (lastTimeAdShown == 0L) return true + return (System.currentTimeMillis() - lastTimeAdShown) >= AD_TIME_INTERVAL_MILLIS + } + + private fun loadNewAd(){ + if (interstitialAd != null) return Log.d(TAG, "loadNewAd: LOADING NEW AD") - isLoading = true - // loading new interstitial ad - InterstitialAd.load(activity, unitId, + InterstitialAd.load(context, GAME_INTERSTITIAL_AD, AdRequest.Builder().build(), object : InterstitialAdLoadCallback() { override fun onAdFailedToLoad(adError: LoadAdError) { interstitialAd = null - isLoading = false - errorLoadingAd = true - Log.d(TAG, "onAdFailedToLoad: NEW AD LOAD FAILED $adError") } override fun onAdLoaded(interstitialAd: InterstitialAd) { this@InterstitialAds.interstitialAd = interstitialAd - this@InterstitialAds.isLoading = false - this@InterstitialAds.errorLoadingAd = false - - if (shallDirectlyLoad){ - shallDirectlyLoad = false - showNewAd { callBack?.invoke() } - } - Log.d(TAG, "onAdLoaded: NEW AD LOADED SUCCESSFULLY") } }) } - fun showNewAd(callBack: (() -> Unit)){ - if (errorLoadingAd){ + fun showNewAd(activity: Activity, callBack: (() -> Unit)){ + if (shallShowAd().not()){ + Log.d(TAG, "showNewAd: ${60 - ((System.currentTimeMillis() - lastTimeAdShown)/1000)} seconds left for next ad") + callBack() + return } - else if (interstitialAd != null){ + + if (interstitialAd != null){ interstitialAd?.fullScreenContentCallback = object : FullScreenContentCallback(){ override fun onAdShowedFullScreenContent() { super.onAdShowedFullScreenContent() + + lastTimeAdShown = System.currentTimeMillis() + val windowInsetsController = WindowCompat.getInsetsController(activity.window, activity.window.decorView) windowInsetsController.hide(WindowInsetsCompat.Type.statusBars()) @@ -95,8 +94,8 @@ class InterstitialAds(private val activity: Activity, private val unitId: Strin interstitialAd?.show(activity) }else{ - shallDirectlyLoad = true - loadNewAd(callBack) + loadNewAd() + callBack() } } } \ No newline at end of file diff --git a/app/src/main/java/com/woka/home/fragments/Home1Fragment.kt b/app/src/main/java/com/woka/home/fragments/Home1Fragment.kt index 5547fc6..fce56f6 100644 --- a/app/src/main/java/com/woka/home/fragments/Home1Fragment.kt +++ b/app/src/main/java/com/woka/home/fragments/Home1Fragment.kt @@ -2,7 +2,6 @@ package com.woka.home.fragments import android.animation.ObjectAnimator import android.animation.ValueAnimator -import android.app.ActivityOptions import android.content.BroadcastReceiver import android.content.Context import android.content.Intent @@ -309,8 +308,7 @@ class Home1Fragment : Fragment() { more.setOnClickListener { activity?.let { startActivity( - Intent(it, MoreHomeActivity::class.java), - ActivityOptions.makeSceneTransitionAnimation(it).toBundle() + Intent(it, MoreHomeActivity::class.java) ) clickHelper.upsertClickEvent(ContentType.OTHERS) diff --git a/app/src/main/java/com/woka/home/fragments/Home2Fragment.kt b/app/src/main/java/com/woka/home/fragments/Home2Fragment.kt index 0f4c311..5c0201f 100644 --- a/app/src/main/java/com/woka/home/fragments/Home2Fragment.kt +++ b/app/src/main/java/com/woka/home/fragments/Home2Fragment.kt @@ -3,24 +3,15 @@ package com.woka.home.fragments import android.content.Context import android.content.Intent import android.os.Bundle -import android.util.DisplayMetrics -import android.util.Log -import android.view.Display import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import android.widget.LinearLayout -import androidx.core.view.updateMargins import androidx.fragment.app.Fragment import androidx.lifecycle.ViewModelProvider import com.bumptech.glide.Glide -import com.google.android.gms.ads.AdListener import com.google.android.gms.ads.AdRequest import com.google.android.gms.ads.AdSize import com.google.android.gms.ads.AdView -import com.google.android.gms.ads.LoadAdError -import com.google.android.gms.ads.interstitial.InterstitialAd -import com.google.android.gms.ads.interstitial.InterstitialAdLoadCallback import com.jwplayer.pub.api.media.playlists.PlaylistItem import com.woka.R import com.woka.WokaApp @@ -28,7 +19,7 @@ import com.woka.audiobooks.views.AudioBooksActivity import com.woka.database.helpers.ClicksHelper import com.woka.database.models.ContentType import com.woka.databinding.FragmentHome2Binding -import com.woka.googleads.GAME_BANNER_AD +import com.woka.googleads.HOME_THEME_2_BANNER_AD import com.woka.home.viewmodels.HomeViewModel import com.woka.home.views.FMActivity import com.woka.karaoke.views.KaraokeActivity @@ -89,7 +80,7 @@ class Home2Fragment : Fragment() { val adView = AdView(requireContext()) - adView.adUnitId = GAME_BANNER_AD + adView.adUnitId = HOME_THEME_2_BANNER_AD adView.setAdSize(AdSize(AdSize.FULL_WIDTH, AdSize.AUTO_HEIGHT)) binding.adsContainer.removeAllViews() diff --git a/app/src/main/java/com/woka/home/views/HomeActivity.kt b/app/src/main/java/com/woka/home/views/HomeActivity.kt index a50e85d..4783d02 100644 --- a/app/src/main/java/com/woka/home/views/HomeActivity.kt +++ b/app/src/main/java/com/woka/home/views/HomeActivity.kt @@ -188,8 +188,8 @@ class HomeActivity : WokaBaseActivity(), (getSystemService(CONNECTIVITY_SERVICE) as ConnectivityManager).unregisterNetworkCallback(networkCallback) CoroutineScope(Dispatchers.IO).launch { -// RemoteSync.syncClickEvents() -// RemoteSync.syncAdClickEvents() + RemoteSync.syncClickEvents() + RemoteSync.syncAdClickEvents() } } @@ -208,6 +208,8 @@ class HomeActivity : WokaBaseActivity(), is ApiResult.Success -> { startActivity(Intent(this, OnboardActivity::class.java).apply { addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK) + }.apply { + putExtra(ONBOARD_ACTIVITY_INTENT, LOG_IN_INTENT) }) finish() @@ -223,10 +225,15 @@ class HomeActivity : WokaBaseActivity(), progressView.hide() toast(it.errorMessage) } - is ApiResult.Loading -> progressView.show() + is ApiResult.Loading -> { + progressView.show(getString(R.string.please_wait)) + } is ApiResult.Success -> { + progressView.hide() startActivity(Intent(this, OnboardActivity::class.java).apply { addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK) + }.apply { + putExtra(ONBOARD_ACTIVITY_INTENT, LOG_IN_INTENT) }) finish() diff --git a/app/src/main/java/com/woka/home/views/MoreHomeActivity.kt b/app/src/main/java/com/woka/home/views/MoreHomeActivity.kt index 0befde0..06250b4 100644 --- a/app/src/main/java/com/woka/home/views/MoreHomeActivity.kt +++ b/app/src/main/java/com/woka/home/views/MoreHomeActivity.kt @@ -14,6 +14,9 @@ import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import androidx.media3.common.MediaItem import androidx.recyclerview.widget.SimpleItemAnimator +import com.google.android.gms.ads.AdRequest +import com.google.android.gms.ads.AdSize +import com.google.android.gms.ads.AdView import com.jwplayer.pub.api.media.playlists.PlaylistItem import com.woka.R import com.woka.WokaApp.Companion.userPrefs @@ -21,6 +24,7 @@ import com.woka.database.helpers.ClicksHelper import com.woka.database.models.ContentType import com.woka.databinding.ActivityMoreHomeBinding import com.woka.databinding.DialogBlogsBinding +import com.woka.googleads.HOME_THEME_2_BANNER_AD import com.woka.modules.blogs.BlogsAdapter import com.woka.modules.blogs.BlogsRepository import com.woka.modules.blogs.models.Blog @@ -51,9 +55,6 @@ class MoreHomeActivity : WokaBaseActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - with(window) { - enterTransition = Fade() - } enableEdgeToEdge() binding = ActivityMoreHomeBinding.inflate(layoutInflater) setContentView(binding.root) @@ -80,6 +81,8 @@ class MoreHomeActivity : WokaBaseActivity() { clickEvents() setObservers() + + loadGoogleAds() } override fun onDestroy() { @@ -89,6 +92,21 @@ class MoreHomeActivity : WokaBaseActivity() { clickHelper.upsertClickEvent(ContentType.OTHERS) } + private fun loadGoogleAds() { + // ad container 1 + val adView1 = AdView(this) + adView1.adUnitId = HOME_THEME_2_BANNER_AD + adView1.setAdSize(AdSize(AdSize.FULL_WIDTH, 200)) + + binding.adsContainer.removeAllViews() + binding.adsContainer.addView(adView1) + + adView1.loadAd( + AdRequest.Builder() + .build() + ) + } + private fun initBlogDialog(){ blogBinding = DialogBlogsBinding.inflate(layoutInflater) blogDialog = Dialog(this) diff --git a/app/src/main/java/com/woka/onboard/fragments/LanguageFragment.kt b/app/src/main/java/com/woka/onboard/fragments/LanguageFragment.kt index a9f1033..918a20d 100644 --- a/app/src/main/java/com/woka/onboard/fragments/LanguageFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/LanguageFragment.kt @@ -8,21 +8,36 @@ import android.view.View import android.view.ViewGroup import androidx.core.app.ActivityOptionsCompat import androidx.fragment.app.Fragment +import androidx.lifecycle.lifecycleScope +import com.google.firebase.analytics.ktx.analytics +import com.google.firebase.ktx.Firebase import com.woka.R +import com.woka.WokaApp.Companion.userPrefs import com.woka.database.helpers.ClicksHelper import com.woka.database.models.ContentType import com.woka.databinding.FragmentLanguageBinding +import com.woka.home.views.HomeActivity +import com.woka.networking.ApiResult +import com.woka.onboard.models.Guest +import com.woka.onboard.mvvm.OnboardRepository import com.woka.onboard.views.OnboardActivity +import com.woka.userPreference.UserType +import com.woka.utils.ANALYTICS_GUEST_LOGIN +import com.woka.utils.ANALYTICS_NEW_USER import com.woka.utils.LOCALE_ENGLISH import com.woka.utils.LOCALE_HINDI import com.woka.utils.ProgressView import com.woka.utils.changeLocale +import com.woka.utils.toast +import kotlinx.coroutines.launch class LanguageFragment : Fragment() { private lateinit var binding: FragmentLanguageBinding private lateinit var progressView: ProgressView + private val onboardRepository = OnboardRepository + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) sharedElementEnterTransition = TransitionInflater.from(context).inflateTransition(android.R.transition.move) @@ -44,15 +59,66 @@ class LanguageFragment : Fragment() { private fun clickEvents() { binding.english.setOnClickListener { - requireActivity().changeLocale(LOCALE_ENGLISH) - gotoOnboardActivity() - ClicksHelper.upsertClickEvent(ContentType.OTHERS) + lifecycleScope.launch { + ClicksHelper.upsertClickEvent(ContentType.OTHERS) + progressView.show() + when (val response = onboardRepository.guestLogin()){ + is ApiResult.Error -> { + progressView.hide() + toast(response.errorMessage) + } + is ApiResult.Loading -> {} + is ApiResult.Success -> { + progressView.hide() + toast(response.message) + requireActivity().changeLocale(LOCALE_ENGLISH) + + response.data?.let { + completeGuestLogin(response.data) + } + } + } + } } binding.hindi.setOnClickListener { - requireActivity().changeLocale(LOCALE_HINDI) - gotoOnboardActivity() - ClicksHelper.upsertClickEvent(ContentType.OTHERS) + lifecycleScope.launch { + ClicksHelper.upsertClickEvent(ContentType.OTHERS) + progressView.show() + when (val response = onboardRepository.guestLogin()){ + is ApiResult.Error -> { + progressView.hide() + toast(response.errorMessage) + } + is ApiResult.Loading -> {} + is ApiResult.Success -> { + progressView.hide() + toast(response.message) + requireActivity().changeLocale(LOCALE_HINDI) + + response.data?.let { + completeGuestLogin(response.data) + } + } + } + } + } + } + + private fun completeGuestLogin(data: Guest) { + userPrefs?.userType = UserType.GUEST + userPrefs?.guestUserName = data.fullname + + if (data.new_guest == true){ + Firebase.analytics.logEvent(ANALYTICS_GUEST_LOGIN, null) + Firebase.analytics.logEvent(ANALYTICS_NEW_USER, null) + } + + activity?.let { activity-> + startActivity(Intent(activity, HomeActivity::class.java).apply { + addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK) + }) + activity.finish() } } diff --git a/app/src/main/java/com/woka/onboard/fragments/SplashFragment.kt b/app/src/main/java/com/woka/onboard/fragments/SplashFragment.kt index ae2e950..aea2613 100644 --- a/app/src/main/java/com/woka/onboard/fragments/SplashFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/SplashFragment.kt @@ -3,6 +3,7 @@ package com.woka.onboard.fragments import android.content.Intent import android.media.MediaPlayer import android.os.Bundle +import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -13,15 +14,19 @@ import androidx.lifecycle.Observer import androidx.lifecycle.lifecycleScope import androidx.navigation.fragment.FragmentNavigatorExtras import androidx.navigation.fragment.findNavController +import com.google.android.gms.ads.AdListener +import com.google.android.gms.ads.AdRequest +import com.google.android.gms.ads.AdSize +import com.google.android.gms.ads.AdView +import com.google.android.gms.ads.LoadAdError import com.woka.BuildConfig import com.woka.R import com.woka.WokaApp.Companion.userPrefs import com.woka.databinding.FragmentSplashBinding +import com.woka.googleads.HOME_THEME_2_BANNER_AD import com.woka.home.views.HomeActivity import com.woka.networking.ApiResult -import com.woka.networking.RetrofitHelper import com.woka.onboard.models.appupdate.VersionHistoryResponseData -import com.woka.onboard.mvvm.OnboardApiService import com.woka.onboard.mvvm.OnboardRepository import com.woka.streamingurls.StreamingUrlRepository import com.woka.userPreference.UserType @@ -37,8 +42,7 @@ import kotlinx.coroutines.launch */ class SplashFragment : Fragment(), Observer?> { - private val onboardRepository = - OnboardRepository(RetrofitHelper.getRetrofit().create(OnboardApiService::class.java)) + private val onboardRepository = OnboardRepository private lateinit var binding: FragmentSplashBinding private var player: MediaPlayer? = null @@ -81,6 +85,36 @@ class SplashFragment : Fragment(), Observer?> { } clickEvents() + + loadGoogleAds() + } + + private fun loadGoogleAds() { + // ad container 1 + val adView1 = AdView(requireContext()) + adView1.adUnitId = HOME_THEME_2_BANNER_AD + adView1.setAdSize(AdSize(AdSize.FULL_WIDTH, 100)) + + binding.adsContainer1.removeAllViews() + binding.adsContainer1.addView(adView1) + + adView1.loadAd( + AdRequest.Builder() + .build() + ) + + // ad container 2 + val adView2 = AdView(requireContext()) + adView2.adUnitId = HOME_THEME_2_BANNER_AD + adView2.setAdSize(AdSize(AdSize.FULL_WIDTH, 100)) + + binding.adsContainer2.removeAllViews() + binding.adsContainer2.addView(adView2) + + adView2.loadAd( + AdRequest.Builder() + .build() + ) } private fun clickEvents() { diff --git a/app/src/main/java/com/woka/onboard/mvvm/OnboardRepository.kt b/app/src/main/java/com/woka/onboard/mvvm/OnboardRepository.kt index cb5bd75..8fb2b9a 100644 --- a/app/src/main/java/com/woka/onboard/mvvm/OnboardRepository.kt +++ b/app/src/main/java/com/woka/onboard/mvvm/OnboardRepository.kt @@ -3,6 +3,7 @@ package com.woka.onboard.mvvm import com.onesignal.OneSignal import com.woka.WokaApp import com.woka.networking.ApiResult +import com.woka.networking.RetrofitHelper import com.woka.networking.RetrofitHelper.handleApiCall import com.woka.onboard.models.AvatarList import com.woka.onboard.models.Child @@ -17,7 +18,9 @@ import com.woka.onboard.models.VerifyEmail import com.woka.onboard.models.appupdate.VersionHistoryResponseData import okhttp3.FormBody -class OnboardRepository(private val apiService: OnboardApiService) { +object OnboardRepository { + + private val apiService = RetrofitHelper.getRetrofit().create(OnboardApiService::class.java) suspend fun login(userName: String, password: String): ApiResult { return handleApiCall { diff --git a/app/src/main/java/com/woka/onboard/mvvm/OnboardViewModel.kt b/app/src/main/java/com/woka/onboard/mvvm/OnboardViewModel.kt index 7ffc9fd..df04a4e 100644 --- a/app/src/main/java/com/woka/onboard/mvvm/OnboardViewModel.kt +++ b/app/src/main/java/com/woka/onboard/mvvm/OnboardViewModel.kt @@ -6,7 +6,6 @@ import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.woka.networking.ApiResult -import com.woka.networking.RetrofitHelper import com.woka.onboard.models.AvatarList import com.woka.onboard.models.Child import com.woka.onboard.models.ChildListResponse @@ -24,7 +23,7 @@ import java.util.Calendar class OnboardViewModel: ViewModel(){ - private val repository: OnboardRepository = OnboardRepository(RetrofitHelper.getRetrofit().create(OnboardApiService::class.java)) + private val repository = OnboardRepository // user registration data var email: String? = null diff --git a/app/src/main/java/com/woka/players/views/PlayerActivity.kt b/app/src/main/java/com/woka/players/views/PlayerActivity.kt index 5189466..d786ad2 100644 --- a/app/src/main/java/com/woka/players/views/PlayerActivity.kt +++ b/app/src/main/java/com/woka/players/views/PlayerActivity.kt @@ -175,12 +175,18 @@ class PlayerActivity : WokaBaseActivity(), FullscreenHandler { val adSchedule = mutableListOf() - val adBreak = AdBreak.Builder() - .tag("https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_preroll_skippable&sz=640x480&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=") + val adBreak1 = AdBreak.Builder() + .tag("https://pubads.g.doubleclick.net/gampad/ads?iu=/23204950200/VideoAd&description_url=https%3A%2F%2Fwokaland.com%2F&tfcd=1&npa=0&sz=480x320%7C640x480&ciu_szs=480x320&min_ad_duration=10000&max_ad_duration=15000&gdfp_req=1&unviewed_position_start=1&output=vast&env=vp&impl=s&correlator=") + .offset("pre") + .build() + + val adBreak2 = AdBreak.Builder() + .tag("https://pubads.g.doubleclick.net/gampad/ads?iu=/23204950200/VideoAd&description_url=https%3A%2F%2Fwokaland.com%2F&tfcd=1&npa=0&sz=480x320%7C640x480&ciu_szs=480x320&min_ad_duration=10000&max_ad_duration=15000&gdfp_req=1&unviewed_position_start=1&output=vast&env=vp&impl=s&correlator=") .offset("25%") .build() - adSchedule.add(adBreak) + adSchedule.add(adBreak1) + adSchedule.add(adBreak2) val imaAdvertising = ImaAdvertisingConfig.Builder() .schedule(adSchedule) diff --git a/app/src/main/java/com/woka/utils/SessionExpiredActivity.kt b/app/src/main/java/com/woka/utils/SessionExpiredActivity.kt index 0e6c2f2..14c8519 100644 --- a/app/src/main/java/com/woka/utils/SessionExpiredActivity.kt +++ b/app/src/main/java/com/woka/utils/SessionExpiredActivity.kt @@ -26,6 +26,8 @@ class SessionExpiredActivity : WokaBaseActivity() { decisionDialog.setPositiveButton(getString(R.string.login)){ startActivity(Intent(this, OnboardActivity::class.java).apply { addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK) + }.apply { + putExtra(OnboardActivity.ONBOARD_ACTIVITY_INTENT, OnboardActivity.LOG_IN_INTENT) }) } diff --git a/app/src/main/java/com/woka/wokagames/views/GamesActivity.kt b/app/src/main/java/com/woka/wokagames/views/GamesActivity.kt index 81ad58a..3c192e6 100644 --- a/app/src/main/java/com/woka/wokagames/views/GamesActivity.kt +++ b/app/src/main/java/com/woka/wokagames/views/GamesActivity.kt @@ -22,6 +22,7 @@ import com.google.android.gms.ads.AdSize import com.google.android.gms.ads.AdView import com.google.android.material.appbar.CollapsingToolbarLayout import com.woka.R +import com.woka.WokaApp.Companion.interstitialAds import com.woka.WokaApp.Companion.userPrefs import com.woka.advertisements.AdsRepository import com.woka.advertisements.models.ForPage @@ -31,8 +32,6 @@ import com.woka.database.models.ContentType import com.woka.databinding.ActivityGamesBinding import com.woka.databinding.DialogModuleShowerBinding import com.woka.googleads.GAME_BANNER_AD -import com.woka.googleads.InterstitialAds -import com.woka.googleads.GAME_INTERSTITIAL_AD import com.woka.googleads.GAME_TRAILER_AD import com.woka.networking.ApiResult import com.woka.userPreference.UserType @@ -49,7 +48,6 @@ import com.woka.wokagames.GamesRepository import com.woka.wokagames.adapters.GamesAdapter import com.woka.wokagames.models.listing.GameData import com.woka.wokagames.playerr.GamePlayerActivity -import com.woka.wokagames.playerr.GamePlayerActivity.Companion.EXTRA_GAME_PLAYER_DATA import com.woka.wokagames.playerr.GamePlayerData import com.woka.wokagames.viewmodels.GamesViewModel import kotlinx.coroutines.launch @@ -72,8 +70,6 @@ class GamesActivity : WokaBaseActivity() { private var customAdLoaded = false - private lateinit var interstitialAds: InterstitialAds - override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityGamesBinding.inflate(layoutInflater) @@ -102,8 +98,6 @@ class GamesActivity : WokaBaseActivity() { noSignInDialog.show() } - interstitialAds = InterstitialAds(this, GAME_INTERSTITIAL_AD) - customAdLoaded = false initViews() @@ -188,6 +182,16 @@ class GamesActivity : WokaBaseActivity() { } } + private fun showAdAndOpenGame(gameData: GameData){ + gameData.game_url?.let { + interstitialAds?.showNewAd(this){ + startActivity(Intent(this@GamesActivity, GamePlayerActivity::class.java).apply { + putExtra(GamePlayerActivity.EXTRA_GAME_PLAYER_DATA, GamePlayerData(gameData.id, it, gameData.screen_orientation == "Landscape")) + }) + } + } + } + private fun onGameClicked(gameData: GameData) { loadTrailerData(gameData) showGameDialog(gameData) @@ -221,13 +225,7 @@ class GamesActivity : WokaBaseActivity() { } trailerBtn.setOnClickListener { - gameData.game_url?.let { - interstitialAds.showNewAd { - startActivity(Intent(this@GamesActivity, GamePlayerActivity::class.java).apply { - putExtra(EXTRA_GAME_PLAYER_DATA, GamePlayerData(gameData.id, it, gameData.screen_orientation == "Landscape")) - }) - } - } + showAdAndOpenGame(gameData) ClicksHelper.upsertClickEvent(ContentType.GAME, gameData.id) } @@ -305,13 +303,7 @@ class GamesActivity : WokaBaseActivity() { } watchCard.setOnClickListener { - gameData.game_url?.let { - interstitialAds.showNewAd { - startActivity(Intent(this@GamesActivity, GamePlayerActivity::class.java).apply { - putExtra(EXTRA_GAME_PLAYER_DATA, GamePlayerData(gameData.id, it, gameData.screen_orientation == "Landscape")) - }) - } - } + showAdAndOpenGame(gameData) ClicksHelper.upsertClickEvent(ContentType.GAME, gameData.id) } diff --git a/app/src/main/res/layout/activity_more_home.xml b/app/src/main/res/layout/activity_more_home.xml index 636f8e9..940ee19 100644 --- a/app/src/main/res/layout/activity_more_home.xml +++ b/app/src/main/res/layout/activity_more_home.xml @@ -62,7 +62,7 @@ android:textColor="@color/white" android:textSize="@dimen/_13ssp" - android:visibility="visible" + android:visibility="gone" /> @@ -72,7 +72,7 @@ android:layout_marginHorizontal="15dp" android:layout_marginTop="5dp" - android:visibility="visible" + android:visibility="gone" app:cardBackgroundColor="@color/white" @@ -138,6 +138,16 @@ + + + + + + Session Expired Please login again. MY CART + Continue without SignUp \ No newline at end of file