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