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.
This commit is contained in:
2024-09-20 21:15:40 +05:30
parent 8dd4d7d0e7
commit 59f1fb6b35
18 changed files with 250 additions and 89 deletions

View File

@@ -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() {

View File

@@ -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"

View File

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

View File

@@ -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)

View File

@@ -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()

View File

@@ -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()

View File

@@ -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)

View File

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

View File

@@ -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<ApiResult<UserDataResponse>?> {
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<ApiResult<UserDataResponse>?> {
}
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() {

View File

@@ -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<LoginResponse> {
return handleApiCall {

View File

@@ -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

View File

@@ -175,12 +175,18 @@ class PlayerActivity : WokaBaseActivity(), FullscreenHandler {
val adSchedule = mutableListOf<AdBreak>()
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)

View File

@@ -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)
})
}

View File

@@ -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)
}

View File

@@ -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 @@
</LinearLayout>
</androidx.cardview.widget.CardView>
<LinearLayout
android:id="@+id/ads_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center"
android:layout_marginTop="10dp"
android:background="@color/white"
/>
<TextView
android:id="@+id/blogs_txt"

View File

@@ -9,6 +9,7 @@
<ImageView
android:id="@+id/back_btn"
android:visibility="gone"
android:layout_width="@dimen/_25sdp"
android:layout_height="@dimen/_25sdp"
android:contentDescription="@string/image"
@@ -234,7 +235,7 @@
android:layout_height="wrap_content"
android:fontFamily="@font/exo_2_bold"
android:text="@string/continue_as_guest"
android:text="@string/continue_without_signup"
android:textAlignment="center"
android:textColor="@color/color_primary"
android:textSize="@dimen/_14ssp"

View File

@@ -6,6 +6,28 @@
android:background="@drawable/splash_bg"
tools:context=".onboard.fragments.SplashFragment">
<LinearLayout
android:id="@+id/ads_container_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center"
android:layout_above="@id/logo"
android:layout_marginBottom="@dimen/_50sdp"
/>
<LinearLayout
android:id="@+id/ads_container_2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center"
android:layout_below="@id/logo"
android:layout_marginTop="@dimen/_50sdp"
/>
<ImageView
android:id="@+id/logo"
android:visibility="visible"

View File

@@ -317,4 +317,5 @@
<string name="session_expired">Session Expired</string>
<string name="please_login_again">Please login again.</string>
<string name="my_cart">MY CART</string>
<string name="continue_without_signup">Continue without SignUp</string>
</resources>