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:
@@ -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() {
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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>
|
||||
Reference in New Issue
Block a user