diff --git a/ads/src/main/AndroidManifest.xml b/ads/src/main/AndroidManifest.xml index 8809df0..274f9c0 100644 --- a/ads/src/main/AndroidManifest.xml +++ b/ads/src/main/AndroidManifest.xml @@ -11,6 +11,7 @@ + (null) override fun instance(context: Context?): AdLoader { - val appInstance = instance.get() ?: AdLoaderImpl(context) - if (instance.get() == null) - instance = WeakReference(appInstance) - return appInstance + instance.get()?.let { return it } + synchronized(this) { + val instance = AdLoaderImpl(context?.applicationContext) + this.instance = WeakReference(instance) + return instance + } } } @@ -83,9 +90,9 @@ class AdLoaderImpl private constructor(context: Context?) : AdLoader { override fun loadAdForViewGroup(view: ViewGroup, removeAllViews: Boolean) { if (!isVideoEnded || !isConnected()) return - val adLoader = AdBase.Builder(view.context, ADMOB_APP_NATIVE_ID) + val adLoader = AdBase.Builder(moduleContext, ADMOB_APP_NATIVE_ID) .forUnifiedNativeAd { ad: UnifiedNativeAd -> - val adView = LayoutInflater.from(view.context) + val adView = LayoutInflater.from(moduleContext) .inflate(R.layout.native_ad_view, null) as CardView populateUnifiedNativeAdView(ad, adView) if (removeAllViews) diff --git a/app/src/main/java/com/javinator9889/handwashingreminder/activities/LauncherActivity.kt b/app/src/main/java/com/javinator9889/handwashingreminder/activities/LauncherActivity.kt index 340e20f..3c878e2 100644 --- a/app/src/main/java/com/javinator9889/handwashingreminder/activities/LauncherActivity.kt +++ b/app/src/main/java/com/javinator9889/handwashingreminder/activities/LauncherActivity.kt @@ -19,6 +19,7 @@ package com.javinator9889.handwashingreminder.activities import android.app.Activity +import android.content.Context import android.content.Intent import android.os.Bundle import android.view.animation.Animation @@ -149,7 +150,13 @@ class LauncherActivity : AppCompatActivity() { if (Ads.MODULE_NAME in splitInstallManager.installedModules && sharedPreferences.getBoolean(ADS_ENABLED, true)) { when (resultCode) { - Activity.RESULT_OK -> initAds() + Activity.RESULT_OK -> { + createPackageContext(packageName, 0).also { + SplitCompat.install(it) + }.also { + initAds(it) + } + } Activity.RESULT_CANCELED -> app.adLoader = null } } @@ -230,7 +237,7 @@ class LauncherActivity : AppCompatActivity() { splitInstallManager.installedModules } - private fun initAds() { + private fun initAds(context: Context) { val className = "${Ads.PACKAGE_NAME}.${Ads .CLASS_NAME}\$${Ads.PROVIDER_NAME}" val adProvider = Class.forName(className).kotlin