diff --git a/kotlin/admanager/AppOpenExample/app/src/main/java/com/google/android/gms/example/appopenexample/MainActivity.kt b/kotlin/admanager/AppOpenExample/app/src/main/java/com/google/android/gms/example/appopenexample/MainActivity.kt index 5f612040d..7b625d807 100644 --- a/kotlin/admanager/AppOpenExample/app/src/main/java/com/google/android/gms/example/appopenexample/MainActivity.kt +++ b/kotlin/admanager/AppOpenExample/app/src/main/java/com/google/android/gms/example/appopenexample/MainActivity.kt @@ -8,6 +8,7 @@ import android.widget.PopupMenu import android.widget.Toast import androidx.activity.OnBackPressedCallback import androidx.appcompat.app.AppCompatActivity +import com.google.android.gms.ads.MobileAds /** The main activity in the app. */ class MainActivity : AppCompatActivity() { @@ -32,8 +33,6 @@ class MainActivity : AppCompatActivity() { override fun onCreateOptionsMenu(menu: Menu?): Boolean { menuInflater.inflate(R.menu.action_menu, menu) - val moreMenu = menu?.findItem(R.id.action_more) - moreMenu?.isVisible = googleMobileAdsConsentManager.isPrivacyOptionsRequired return super.onCreateOptionsMenu(menu) } @@ -42,6 +41,9 @@ class MainActivity : AppCompatActivity() { val activity = this PopupMenu(this, menuItemView).apply { menuInflater.inflate(R.menu.popup_menu, menu) + menu + .findItem(R.id.privacy_settings) + .setVisible(googleMobileAdsConsentManager.isPrivacyOptionsRequired) show() setOnMenuItemClickListener { popupMenuItem -> when (popupMenuItem.itemId) { @@ -54,6 +56,13 @@ class MainActivity : AppCompatActivity() { } true } + R.id.ad_inspector -> { + MobileAds.openAdInspector(activity) { error -> + // Error will be non-null if ad inspector closed due to an error. + error?.let { Toast.makeText(activity, it.message, Toast.LENGTH_SHORT).show() } + } + true + } // Handle other branches here. else -> false } diff --git a/kotlin/admanager/AppOpenExample/app/src/main/res/menu/action_menu.xml b/kotlin/admanager/AppOpenExample/app/src/main/res/menu/action_menu.xml index c4a677368..40e9a54ca 100644 --- a/kotlin/admanager/AppOpenExample/app/src/main/res/menu/action_menu.xml +++ b/kotlin/admanager/AppOpenExample/app/src/main/res/menu/action_menu.xml @@ -5,6 +5,5 @@ android:id="@+id/action_more" android:icon="@android:drawable/ic_menu_preferences" android:title="@string/more_menu" - app:showAsAction="always" - android:visible="false"/> + app:showAsAction="always" /> diff --git a/kotlin/admanager/AppOpenExample/app/src/main/res/menu/popup_menu.xml b/kotlin/admanager/AppOpenExample/app/src/main/res/menu/popup_menu.xml index 91c059d6e..2efa73eaf 100644 --- a/kotlin/admanager/AppOpenExample/app/src/main/res/menu/popup_menu.xml +++ b/kotlin/admanager/AppOpenExample/app/src/main/res/menu/popup_menu.xml @@ -1,6 +1,10 @@ + + android:title="@string/privacy_settings" + android:visible="false" /> diff --git a/kotlin/admanager/AppOpenExample/app/src/main/res/values/strings.xml b/kotlin/admanager/AppOpenExample/app/src/main/res/values/strings.xml index dfb74f205..5b760fa3e 100644 --- a/kotlin/admanager/AppOpenExample/app/src/main/res/values/strings.xml +++ b/kotlin/admanager/AppOpenExample/app/src/main/res/values/strings.xml @@ -1,4 +1,5 @@ + Ad Inspector Ad Manager App Open Example Main Activity diff --git a/kotlin/admanager/BannerExample/app/src/main/kotlin/com/google/android/gms/example/bannerexample/MyActivity.kt b/kotlin/admanager/BannerExample/app/src/main/kotlin/com/google/android/gms/example/bannerexample/MyActivity.kt index 45e492ba6..ee1d842d4 100644 --- a/kotlin/admanager/BannerExample/app/src/main/kotlin/com/google/android/gms/example/bannerexample/MyActivity.kt +++ b/kotlin/admanager/BannerExample/app/src/main/kotlin/com/google/android/gms/example/bannerexample/MyActivity.kt @@ -112,27 +112,36 @@ class MyActivity : AppCompatActivity() { override fun onCreateOptionsMenu(menu: Menu?): Boolean { menuInflater.inflate(R.menu.action_menu, menu) - val moreMenu = menu?.findItem(R.id.action_more) - moreMenu?.isVisible = googleMobileAdsConsentManager.isPrivacyOptionsRequired return super.onCreateOptionsMenu(menu) } override fun onOptionsItemSelected(item: MenuItem): Boolean { val menuItemView = findViewById(item.itemId) + val activity = this PopupMenu(this, menuItemView).apply { menuInflater.inflate(R.menu.popup_menu, menu) + menu + .findItem(R.id.privacy_settings) + .setVisible(googleMobileAdsConsentManager.isPrivacyOptionsRequired) show() setOnMenuItemClickListener { popupMenuItem -> when (popupMenuItem.itemId) { R.id.privacy_settings -> { // Handle changes to user consent. - googleMobileAdsConsentManager.showPrivacyOptionsForm(this@MyActivity) { formError -> + googleMobileAdsConsentManager.showPrivacyOptionsForm(activity) { formError -> if (formError != null) { - Toast.makeText(this@MyActivity, formError.message, Toast.LENGTH_SHORT).show() + Toast.makeText(activity, formError.message, Toast.LENGTH_SHORT).show() } } true } + R.id.ad_inspector -> { + MobileAds.openAdInspector(activity) { error -> + // Error will be non-null if ad inspector closed due to an error. + error?.let { Toast.makeText(activityx, it.message, Toast.LENGTH_SHORT).show() } + } + true + } else -> false } } diff --git a/kotlin/admanager/BannerExample/app/src/main/res/menu/action_menu.xml b/kotlin/admanager/BannerExample/app/src/main/res/menu/action_menu.xml index c4a677368..40e9a54ca 100644 --- a/kotlin/admanager/BannerExample/app/src/main/res/menu/action_menu.xml +++ b/kotlin/admanager/BannerExample/app/src/main/res/menu/action_menu.xml @@ -5,6 +5,5 @@ android:id="@+id/action_more" android:icon="@android:drawable/ic_menu_preferences" android:title="@string/more_menu" - app:showAsAction="always" - android:visible="false"/> + app:showAsAction="always" /> diff --git a/kotlin/admanager/BannerExample/app/src/main/res/menu/popup_menu.xml b/kotlin/admanager/BannerExample/app/src/main/res/menu/popup_menu.xml index 91c059d6e..2efa73eaf 100644 --- a/kotlin/admanager/BannerExample/app/src/main/res/menu/popup_menu.xml +++ b/kotlin/admanager/BannerExample/app/src/main/res/menu/popup_menu.xml @@ -1,6 +1,10 @@ + + android:title="@string/privacy_settings" + android:visible="false" /> diff --git a/kotlin/admanager/BannerExample/app/src/main/res/values/strings.xml b/kotlin/admanager/BannerExample/app/src/main/res/values/strings.xml index 931829cd9..4c1e1f255 100644 --- a/kotlin/admanager/BannerExample/app/src/main/res/values/strings.xml +++ b/kotlin/admanager/BannerExample/app/src/main/res/values/strings.xml @@ -1,6 +1,7 @@ Settings + Ad Inspector Ad Manager Banner Example Hello world! More diff --git a/kotlin/admanager/InterstitialExample/app/src/main/kotlin/com/google/android/gms/example/interstitialexample/MyActivity.kt b/kotlin/admanager/InterstitialExample/app/src/main/kotlin/com/google/android/gms/example/interstitialexample/MyActivity.kt index 8efec8d2b..6b84f29ec 100644 --- a/kotlin/admanager/InterstitialExample/app/src/main/kotlin/com/google/android/gms/example/interstitialexample/MyActivity.kt +++ b/kotlin/admanager/InterstitialExample/app/src/main/kotlin/com/google/android/gms/example/interstitialexample/MyActivity.kt @@ -90,9 +90,6 @@ class MyActivity : AppCompatActivity() { override fun onCreateOptionsMenu(menu: Menu?): Boolean { menuInflater.inflate(R.menu.action_menu, menu) - menu?.findItem(R.id.action_more)?.apply { - isVisible = googleMobileAdsConsentManager.isPrivacyOptionsRequired - } return super.onCreateOptionsMenu(menu) } @@ -101,6 +98,9 @@ class MyActivity : AppCompatActivity() { val activity = this PopupMenu(this, menuItemView).apply { menuInflater.inflate(R.menu.popup_menu, menu) + menu + .findItem(R.id.privacy_settings) + .setVisible(googleMobileAdsConsentManager.isPrivacyOptionsRequired) show() setOnMenuItemClickListener { popupMenuItem -> when (popupMenuItem.itemId) { @@ -115,6 +115,13 @@ class MyActivity : AppCompatActivity() { } true } + R.id.ad_inspector -> { + MobileAds.openAdInspector(activity) { error -> + // Error will be non-null if ad inspector closed due to an error. + error?.let { Toast.makeText(activity, it.message, Toast.LENGTH_SHORT).show() } + } + true + } // Handle other branches here. else -> false } diff --git a/kotlin/admanager/InterstitialExample/app/src/main/res/menu/action_menu.xml b/kotlin/admanager/InterstitialExample/app/src/main/res/menu/action_menu.xml index c4a677368..40e9a54ca 100644 --- a/kotlin/admanager/InterstitialExample/app/src/main/res/menu/action_menu.xml +++ b/kotlin/admanager/InterstitialExample/app/src/main/res/menu/action_menu.xml @@ -5,6 +5,5 @@ android:id="@+id/action_more" android:icon="@android:drawable/ic_menu_preferences" android:title="@string/more_menu" - app:showAsAction="always" - android:visible="false"/> + app:showAsAction="always" /> diff --git a/kotlin/admanager/InterstitialExample/app/src/main/res/menu/popup_menu.xml b/kotlin/admanager/InterstitialExample/app/src/main/res/menu/popup_menu.xml index 91c059d6e..2efa73eaf 100644 --- a/kotlin/admanager/InterstitialExample/app/src/main/res/menu/popup_menu.xml +++ b/kotlin/admanager/InterstitialExample/app/src/main/res/menu/popup_menu.xml @@ -1,6 +1,10 @@ + + android:title="@string/privacy_settings" + android:visible="false" /> diff --git a/kotlin/admanager/InterstitialExample/app/src/main/res/values/strings.xml b/kotlin/admanager/InterstitialExample/app/src/main/res/values/strings.xml index 34d9cd88c..a819bf8eb 100644 --- a/kotlin/admanager/InterstitialExample/app/src/main/res/values/strings.xml +++ b/kotlin/admanager/InterstitialExample/app/src/main/res/values/strings.xml @@ -1,5 +1,6 @@ + Ad Inspector Ad Manager Interstitial done! Impossible Game diff --git a/kotlin/admanager/NativeAdsExample/app/src/main/java/com/google/android/gms/example/nativeadsexample/MainActivity.kt b/kotlin/admanager/NativeAdsExample/app/src/main/java/com/google/android/gms/example/nativeadsexample/MainActivity.kt index 7b4a17f7c..1ddf3ad0b 100644 --- a/kotlin/admanager/NativeAdsExample/app/src/main/java/com/google/android/gms/example/nativeadsexample/MainActivity.kt +++ b/kotlin/admanager/NativeAdsExample/app/src/main/java/com/google/android/gms/example/nativeadsexample/MainActivity.kt @@ -100,9 +100,6 @@ class MainActivity : AppCompatActivity() { override fun onCreateOptionsMenu(menu: Menu): Boolean { menuInflater.inflate(R.menu.action_menu, menu) - menu?.findItem(R.id.action_more)?.apply { - isVisible = googleMobileAdsConsentManager.isPrivacyOptionsRequired - } return super.onCreateOptionsMenu(menu) } @@ -111,6 +108,9 @@ class MainActivity : AppCompatActivity() { val activity = this PopupMenu(this, menuItemView).apply { menuInflater.inflate(R.menu.popup_menu, menu) + menu + .findItem(R.id.privacy_settings) + .setVisible(googleMobileAdsConsentManager.isPrivacyOptionsRequired) show() setOnMenuItemClickListener { popupMenuItem -> when (popupMenuItem.itemId) { @@ -118,11 +118,18 @@ class MainActivity : AppCompatActivity() { // Handle changes to user consent. googleMobileAdsConsentManager.showPrivacyOptionsForm(activity) { formError -> if (formError != null) { - Toast.makeText(this@MainActivity, formError.message, Toast.LENGTH_SHORT).show() + Toast.makeText(activity, formError.message, Toast.LENGTH_SHORT).show() } } true } + R.id.ad_inspector -> { + MobileAds.openAdInspector(activity) { error -> + // Error will be non-null if ad inspector closed due to an error. + error?.let { Toast.makeText(activity, it.message, Toast.LENGTH_SHORT).show() } + } + true + } else -> false } } diff --git a/kotlin/admanager/NativeAdsExample/app/src/main/res/menu/action_menu.xml b/kotlin/admanager/NativeAdsExample/app/src/main/res/menu/action_menu.xml index c4a677368..40e9a54ca 100644 --- a/kotlin/admanager/NativeAdsExample/app/src/main/res/menu/action_menu.xml +++ b/kotlin/admanager/NativeAdsExample/app/src/main/res/menu/action_menu.xml @@ -5,6 +5,5 @@ android:id="@+id/action_more" android:icon="@android:drawable/ic_menu_preferences" android:title="@string/more_menu" - app:showAsAction="always" - android:visible="false"/> + app:showAsAction="always" /> diff --git a/kotlin/admanager/NativeAdsExample/app/src/main/res/menu/popup_menu.xml b/kotlin/admanager/NativeAdsExample/app/src/main/res/menu/popup_menu.xml index 91c059d6e..2efa73eaf 100644 --- a/kotlin/admanager/NativeAdsExample/app/src/main/res/menu/popup_menu.xml +++ b/kotlin/admanager/NativeAdsExample/app/src/main/res/menu/popup_menu.xml @@ -1,6 +1,10 @@ + + android:title="@string/privacy_settings" + android:visible="false" /> diff --git a/kotlin/admanager/NativeAdsExample/app/src/main/res/values/strings.xml b/kotlin/admanager/NativeAdsExample/app/src/main/res/values/strings.xml index 317b4921d..d1f4cdc0a 100644 --- a/kotlin/admanager/NativeAdsExample/app/src/main/res/values/strings.xml +++ b/kotlin/admanager/NativeAdsExample/app/src/main/res/values/strings.xml @@ -1,6 +1,7 @@ Ad Ad Choices icon + Ad Inspector Ad Manager Native Advanced More Privacy Settings diff --git a/kotlin/admanager/RewardedInterstitialExample/app/src/main/java/com/google/android/gms/example/rewardedinterstitialexample/MainActivity.kt b/kotlin/admanager/RewardedInterstitialExample/app/src/main/java/com/google/android/gms/example/rewardedinterstitialexample/MainActivity.kt index cf9bdfa06..1d610ad65 100644 --- a/kotlin/admanager/RewardedInterstitialExample/app/src/main/java/com/google/android/gms/example/rewardedinterstitialexample/MainActivity.kt +++ b/kotlin/admanager/RewardedInterstitialExample/app/src/main/java/com/google/android/gms/example/rewardedinterstitialexample/MainActivity.kt @@ -97,29 +97,38 @@ class MainActivity : AppCompatActivity() { override fun onCreateOptionsMenu(menu: Menu?): Boolean { menuInflater.inflate(R.menu.action_menu, menu) - val moreMenu = menu?.findItem(R.id.action_more) - moreMenu?.isVisible = googleMobileAdsConsentManager.isPrivacyOptionsRequired return super.onCreateOptionsMenu(menu) } override fun onOptionsItemSelected(item: MenuItem): Boolean { val menuItemView = findViewById(item.itemId) + val activity = this PopupMenu(this, menuItemView).apply { menuInflater.inflate(R.menu.popup_menu, menu) + menu + .findItem(R.id.privacy_settings) + .setVisible(googleMobileAdsConsentManager.isPrivacyOptionsRequired) show() setOnMenuItemClickListener { popupMenuItem -> when (popupMenuItem.itemId) { R.id.privacy_settings -> { pauseGame() // Handle changes to user consent. - googleMobileAdsConsentManager.showPrivacyOptionsForm(this@MainActivity) { formError -> + googleMobileAdsConsentManager.showPrivacyOptionsForm(activity) { formError -> if (formError != null) { - Toast.makeText(this@MainActivity, formError.message, Toast.LENGTH_SHORT).show() + Toast.makeText(activity, formError.message, Toast.LENGTH_SHORT).show() } resumeGame() } true } + R.id.ad_inspector -> { + MobileAds.openAdInspector(activity) { error -> + // Error will be non-null if ad inspector closed due to an error. + error?.let { Toast.makeText(activity, it.message, Toast.LENGTH_SHORT).show() } + } + true + } else -> false } } diff --git a/kotlin/admanager/RewardedInterstitialExample/app/src/main/res/menu/action_menu.xml b/kotlin/admanager/RewardedInterstitialExample/app/src/main/res/menu/action_menu.xml index 4f8f94062..3963228d7 100644 --- a/kotlin/admanager/RewardedInterstitialExample/app/src/main/res/menu/action_menu.xml +++ b/kotlin/admanager/RewardedInterstitialExample/app/src/main/res/menu/action_menu.xml @@ -5,6 +5,5 @@ android:id="@+id/action_more" android:icon="@android:drawable/ic_menu_preferences" android:title="More" - app:showAsAction="always" - android:visible="false"/> + app:showAsAction="always" /> diff --git a/kotlin/admanager/RewardedInterstitialExample/app/src/main/res/menu/popup_menu.xml b/kotlin/admanager/RewardedInterstitialExample/app/src/main/res/menu/popup_menu.xml index f9765b824..2efa73eaf 100644 --- a/kotlin/admanager/RewardedInterstitialExample/app/src/main/res/menu/popup_menu.xml +++ b/kotlin/admanager/RewardedInterstitialExample/app/src/main/res/menu/popup_menu.xml @@ -1,6 +1,10 @@ + + android:title="@string/privacy_settings" + android:visible="false" /> diff --git a/kotlin/admanager/RewardedInterstitialExample/app/src/main/res/values/strings.xml b/kotlin/admanager/RewardedInterstitialExample/app/src/main/res/values/strings.xml index 080b01b68..3aac4c4f7 100644 --- a/kotlin/admanager/RewardedInterstitialExample/app/src/main/res/values/strings.xml +++ b/kotlin/admanager/RewardedInterstitialExample/app/src/main/res/values/strings.xml @@ -1,4 +1,5 @@ + Ad Inspector Ad Manager Rewarded Interstitial Coins: 0 Impossible Game diff --git a/kotlin/admanager/RewardedVideoExample/app/src/main/java/com/google/android/gms/example/rewardedvideoexample/MainActivity.kt b/kotlin/admanager/RewardedVideoExample/app/src/main/java/com/google/android/gms/example/rewardedvideoexample/MainActivity.kt index 3dcb36bbb..d3b814169 100644 --- a/kotlin/admanager/RewardedVideoExample/app/src/main/java/com/google/android/gms/example/rewardedvideoexample/MainActivity.kt +++ b/kotlin/admanager/RewardedVideoExample/app/src/main/java/com/google/android/gms/example/rewardedvideoexample/MainActivity.kt @@ -98,30 +98,40 @@ class MainActivity : AppCompatActivity() { override fun onCreateOptionsMenu(menu: Menu?): Boolean { menuInflater.inflate(R.menu.action_menu, menu) - val moreMenu = menu?.findItem(R.id.action_more) - moreMenu?.isVisible = googleMobileAdsConsentManager.isPrivacyOptionsRequired return super.onCreateOptionsMenu(menu) } override fun onOptionsItemSelected(item: MenuItem): Boolean { val menuItemView = findViewById(item.itemId) - val popup = PopupMenu(this, menuItemView) - popup.menuInflater.inflate(R.menu.popup_menu, popup.menu) - popup.show() - popup.setOnMenuItemClickListener { popupMenuItem -> - when (popupMenuItem.itemId) { - R.id.privacy_settings -> { - pauseGame() - // Handle changes to user consent. - googleMobileAdsConsentManager.showPrivacyOptionsForm(this) { formError -> - if (formError != null) { - Toast.makeText(this@MainActivity, formError.message, Toast.LENGTH_SHORT).show() + val activity = this + PopupMenu(this, menuItemView).apply { + menuInflater.inflate(R.menu.popup_menu, menu) + menu + .findItem(R.id.privacy_settings) + .setVisible(googleMobileAdsConsentManager.isPrivacyOptionsRequired) + show() + setOnMenuItemClickListener { popupMenuItem -> + when (popupMenuItem.itemId) { + R.id.privacy_settings -> { + pauseGame() + // Handle changes to user consent. + googleMobileAdsConsentManager.showPrivacyOptionsForm(activity) { formError -> + if (formError != null) { + Toast.makeText(activity, formError.message, Toast.LENGTH_SHORT).show() + } + resumeGame() } - resumeGame() + true } - true + R.id.ad_inspector -> { + MobileAds.openAdInspector(activity) { error -> + // Error will be non-null if ad inspector closed due to an error. + error?.let { Toast.makeText(activity, it.message, Toast.LENGTH_SHORT).show() } + } + true + } + else -> false } - else -> false } } return super.onOptionsItemSelected(item) diff --git a/kotlin/admanager/RewardedVideoExample/app/src/main/res/menu/action_menu.xml b/kotlin/admanager/RewardedVideoExample/app/src/main/res/menu/action_menu.xml index 4f8f94062..3963228d7 100644 --- a/kotlin/admanager/RewardedVideoExample/app/src/main/res/menu/action_menu.xml +++ b/kotlin/admanager/RewardedVideoExample/app/src/main/res/menu/action_menu.xml @@ -5,6 +5,5 @@ android:id="@+id/action_more" android:icon="@android:drawable/ic_menu_preferences" android:title="More" - app:showAsAction="always" - android:visible="false"/> + app:showAsAction="always" /> diff --git a/kotlin/admanager/RewardedVideoExample/app/src/main/res/menu/popup_menu.xml b/kotlin/admanager/RewardedVideoExample/app/src/main/res/menu/popup_menu.xml index f9765b824..2efa73eaf 100644 --- a/kotlin/admanager/RewardedVideoExample/app/src/main/res/menu/popup_menu.xml +++ b/kotlin/admanager/RewardedVideoExample/app/src/main/res/menu/popup_menu.xml @@ -1,6 +1,10 @@ + + android:title="@string/privacy_settings" + android:visible="false" /> diff --git a/kotlin/admanager/RewardedVideoExample/app/src/main/res/values/strings.xml b/kotlin/admanager/RewardedVideoExample/app/src/main/res/values/strings.xml index 9b324af06..55d811d44 100644 --- a/kotlin/admanager/RewardedVideoExample/app/src/main/res/values/strings.xml +++ b/kotlin/admanager/RewardedVideoExample/app/src/main/res/values/strings.xml @@ -1,5 +1,6 @@ Settings + Ad Inspector Ad Manager Rewarded Video Coins: 0 Impossible Game diff --git a/kotlin/admob/AppOpenExample/app/src/main/java/com/google/android/gms/example/appopenexample/MainActivity.kt b/kotlin/admob/AppOpenExample/app/src/main/java/com/google/android/gms/example/appopenexample/MainActivity.kt index 5f612040d..7b625d807 100644 --- a/kotlin/admob/AppOpenExample/app/src/main/java/com/google/android/gms/example/appopenexample/MainActivity.kt +++ b/kotlin/admob/AppOpenExample/app/src/main/java/com/google/android/gms/example/appopenexample/MainActivity.kt @@ -8,6 +8,7 @@ import android.widget.PopupMenu import android.widget.Toast import androidx.activity.OnBackPressedCallback import androidx.appcompat.app.AppCompatActivity +import com.google.android.gms.ads.MobileAds /** The main activity in the app. */ class MainActivity : AppCompatActivity() { @@ -32,8 +33,6 @@ class MainActivity : AppCompatActivity() { override fun onCreateOptionsMenu(menu: Menu?): Boolean { menuInflater.inflate(R.menu.action_menu, menu) - val moreMenu = menu?.findItem(R.id.action_more) - moreMenu?.isVisible = googleMobileAdsConsentManager.isPrivacyOptionsRequired return super.onCreateOptionsMenu(menu) } @@ -42,6 +41,9 @@ class MainActivity : AppCompatActivity() { val activity = this PopupMenu(this, menuItemView).apply { menuInflater.inflate(R.menu.popup_menu, menu) + menu + .findItem(R.id.privacy_settings) + .setVisible(googleMobileAdsConsentManager.isPrivacyOptionsRequired) show() setOnMenuItemClickListener { popupMenuItem -> when (popupMenuItem.itemId) { @@ -54,6 +56,13 @@ class MainActivity : AppCompatActivity() { } true } + R.id.ad_inspector -> { + MobileAds.openAdInspector(activity) { error -> + // Error will be non-null if ad inspector closed due to an error. + error?.let { Toast.makeText(activity, it.message, Toast.LENGTH_SHORT).show() } + } + true + } // Handle other branches here. else -> false } diff --git a/kotlin/admob/AppOpenExample/app/src/main/res/menu/action_menu.xml b/kotlin/admob/AppOpenExample/app/src/main/res/menu/action_menu.xml index c4a677368..40e9a54ca 100644 --- a/kotlin/admob/AppOpenExample/app/src/main/res/menu/action_menu.xml +++ b/kotlin/admob/AppOpenExample/app/src/main/res/menu/action_menu.xml @@ -5,6 +5,5 @@ android:id="@+id/action_more" android:icon="@android:drawable/ic_menu_preferences" android:title="@string/more_menu" - app:showAsAction="always" - android:visible="false"/> + app:showAsAction="always" /> diff --git a/kotlin/admob/AppOpenExample/app/src/main/res/menu/popup_menu.xml b/kotlin/admob/AppOpenExample/app/src/main/res/menu/popup_menu.xml index 91c059d6e..2efa73eaf 100644 --- a/kotlin/admob/AppOpenExample/app/src/main/res/menu/popup_menu.xml +++ b/kotlin/admob/AppOpenExample/app/src/main/res/menu/popup_menu.xml @@ -1,6 +1,10 @@ + + android:title="@string/privacy_settings" + android:visible="false" /> diff --git a/kotlin/admob/AppOpenExample/app/src/main/res/values/strings.xml b/kotlin/admob/AppOpenExample/app/src/main/res/values/strings.xml index 4e6f88279..33dc77d73 100644 --- a/kotlin/admob/AppOpenExample/app/src/main/res/values/strings.xml +++ b/kotlin/admob/AppOpenExample/app/src/main/res/values/strings.xml @@ -1,4 +1,5 @@ + Ad Inspector AdMob App Open Example Main Activity diff --git a/kotlin/admob/BannerExample/app/src/main/java/com/google/android/gms/example/bannerexample/GoogleMobileAdsConsentManager.kt b/kotlin/admob/BannerExample/app/src/main/java/com/google/android/gms/example/bannerexample/GoogleMobileAdsConsentManager.kt index 4b31c10b3..cacc8c5e4 100644 --- a/kotlin/admob/BannerExample/app/src/main/java/com/google/android/gms/example/bannerexample/GoogleMobileAdsConsentManager.kt +++ b/kotlin/admob/BannerExample/app/src/main/java/com/google/android/gms/example/bannerexample/GoogleMobileAdsConsentManager.kt @@ -84,7 +84,7 @@ class GoogleMobileAdsConsentManager private constructor(context: Context) { /** Helper method to call the UMP SDK method to show the privacy options form. */ fun showPrivacyOptionsForm( - activity: Activity, + activity: MainActivity, onConsentFormDismissedListener: OnConsentFormDismissedListener, ) { UserMessagingPlatform.showPrivacyOptionsForm(activity, onConsentFormDismissedListener) diff --git a/kotlin/admob/BannerExample/app/src/main/java/com/google/android/gms/example/bannerexample/MainActivity.kt b/kotlin/admob/BannerExample/app/src/main/java/com/google/android/gms/example/bannerexample/MainActivity.kt index ac9f4738d..cef0c7680 100644 --- a/kotlin/admob/BannerExample/app/src/main/java/com/google/android/gms/example/bannerexample/MainActivity.kt +++ b/kotlin/admob/BannerExample/app/src/main/java/com/google/android/gms/example/bannerexample/MainActivity.kt @@ -112,27 +112,36 @@ class MainActivity : AppCompatActivity() { override fun onCreateOptionsMenu(menu: Menu?): Boolean { menuInflater.inflate(R.menu.action_menu, menu) - val moreMenu = menu?.findItem(R.id.action_more) - moreMenu?.isVisible = googleMobileAdsConsentManager.isPrivacyOptionsRequired return super.onCreateOptionsMenu(menu) } override fun onOptionsItemSelected(item: MenuItem): Boolean { val menuItemView = findViewById(item.itemId) + val activity = this PopupMenu(this, menuItemView).apply { menuInflater.inflate(R.menu.popup_menu, menu) + menu + .findItem(R.id.privacy_settings) + .setVisible(googleMobileAdsConsentManager.isPrivacyOptionsRequired) show() setOnMenuItemClickListener { popupMenuItem -> when (popupMenuItem.itemId) { R.id.privacy_settings -> { // Handle changes to user consent. - googleMobileAdsConsentManager.showPrivacyOptionsForm(this@MainActivity) { formError -> + googleMobileAdsConsentManager.showPrivacyOptionsForm(activity) { formError -> if (formError != null) { - Toast.makeText(this@MainActivity, formError.message, Toast.LENGTH_SHORT).show() + Toast.makeText(activity, formError.message, Toast.LENGTH_SHORT).show() } } true } + R.id.ad_inspector -> { + MobileAds.openAdInspector(activity) { error -> + // Error will be non-null if ad inspector closed due to an error. + error?.let { Toast.makeText(activity, it.message, Toast.LENGTH_SHORT).show() } + } + true + } else -> false } } diff --git a/kotlin/admob/BannerExample/app/src/main/res/menu/action_menu.xml b/kotlin/admob/BannerExample/app/src/main/res/menu/action_menu.xml index c4a677368..40e9a54ca 100644 --- a/kotlin/admob/BannerExample/app/src/main/res/menu/action_menu.xml +++ b/kotlin/admob/BannerExample/app/src/main/res/menu/action_menu.xml @@ -5,6 +5,5 @@ android:id="@+id/action_more" android:icon="@android:drawable/ic_menu_preferences" android:title="@string/more_menu" - app:showAsAction="always" - android:visible="false"/> + app:showAsAction="always" /> diff --git a/kotlin/admob/BannerExample/app/src/main/res/menu/popup_menu.xml b/kotlin/admob/BannerExample/app/src/main/res/menu/popup_menu.xml index 91c059d6e..2efa73eaf 100644 --- a/kotlin/admob/BannerExample/app/src/main/res/menu/popup_menu.xml +++ b/kotlin/admob/BannerExample/app/src/main/res/menu/popup_menu.xml @@ -1,6 +1,10 @@ + + android:title="@string/privacy_settings" + android:visible="false" /> diff --git a/kotlin/admob/BannerExample/app/src/main/res/values/strings.xml b/kotlin/admob/BannerExample/app/src/main/res/values/strings.xml index 61067a038..58d89c086 100644 --- a/kotlin/admob/BannerExample/app/src/main/res/values/strings.xml +++ b/kotlin/admob/BannerExample/app/src/main/res/values/strings.xml @@ -1,6 +1,7 @@ Settings + Ad Inspector AdMob Banner Example Hello world! More diff --git a/kotlin/admob/InterstitialExample/app/src/main/java/com/google/android/gms/example/interstitialexample/MainActivity.kt b/kotlin/admob/InterstitialExample/app/src/main/java/com/google/android/gms/example/interstitialexample/MainActivity.kt index 193d74915..da306680f 100644 --- a/kotlin/admob/InterstitialExample/app/src/main/java/com/google/android/gms/example/interstitialexample/MainActivity.kt +++ b/kotlin/admob/InterstitialExample/app/src/main/java/com/google/android/gms/example/interstitialexample/MainActivity.kt @@ -70,9 +70,6 @@ class MainActivity : AppCompatActivity() { override fun onCreateOptionsMenu(menu: Menu?): Boolean { menuInflater.inflate(R.menu.action_menu, menu) - menu?.findItem(R.id.action_more)?.apply { - isVisible = googleMobileAdsConsentManager.isPrivacyOptionsRequired - } return super.onCreateOptionsMenu(menu) } @@ -81,6 +78,9 @@ class MainActivity : AppCompatActivity() { val activity = this PopupMenu(this, menuItemView).apply { menuInflater.inflate(R.menu.popup_menu, menu) + menu + .findItem(R.id.privacy_settings) + .setVisible(googleMobileAdsConsentManager.isPrivacyOptionsRequired) show() setOnMenuItemClickListener { popupMenuItem -> when (popupMenuItem.itemId) { @@ -95,6 +95,13 @@ class MainActivity : AppCompatActivity() { } true } + R.id.ad_inspector -> { + MobileAds.openAdInspector(activity) { error -> + // Error will be non-null if ad inspector closed due to an error. + error?.let { Toast.makeText(activity, it.message, Toast.LENGTH_SHORT).show() } + } + true + } // Handle other branches here. else -> false } diff --git a/kotlin/admob/InterstitialExample/app/src/main/res/menu/action_menu.xml b/kotlin/admob/InterstitialExample/app/src/main/res/menu/action_menu.xml index c4a677368..40e9a54ca 100644 --- a/kotlin/admob/InterstitialExample/app/src/main/res/menu/action_menu.xml +++ b/kotlin/admob/InterstitialExample/app/src/main/res/menu/action_menu.xml @@ -5,6 +5,5 @@ android:id="@+id/action_more" android:icon="@android:drawable/ic_menu_preferences" android:title="@string/more_menu" - app:showAsAction="always" - android:visible="false"/> + app:showAsAction="always" /> diff --git a/kotlin/admob/InterstitialExample/app/src/main/res/menu/popup_menu.xml b/kotlin/admob/InterstitialExample/app/src/main/res/menu/popup_menu.xml index 91c059d6e..2efa73eaf 100644 --- a/kotlin/admob/InterstitialExample/app/src/main/res/menu/popup_menu.xml +++ b/kotlin/admob/InterstitialExample/app/src/main/res/menu/popup_menu.xml @@ -1,6 +1,10 @@ + + android:title="@string/privacy_settings" + android:visible="false" /> diff --git a/kotlin/admob/InterstitialExample/app/src/main/res/values/strings.xml b/kotlin/admob/InterstitialExample/app/src/main/res/values/strings.xml index 588b6c8c0..cc1e0b534 100644 --- a/kotlin/admob/InterstitialExample/app/src/main/res/values/strings.xml +++ b/kotlin/admob/InterstitialExample/app/src/main/res/values/strings.xml @@ -1,4 +1,5 @@ + Ad Inspector AdMob Interstitial Impossible Game More diff --git a/kotlin/admob/NativeAdvancedExample/app/src/main/java/com/google/android/gms/example/nativeadvancedexample/MainActivity.kt b/kotlin/admob/NativeAdvancedExample/app/src/main/java/com/google/android/gms/example/nativeadvancedexample/MainActivity.kt index 0fc5675bc..ba5b32544 100644 --- a/kotlin/admob/NativeAdvancedExample/app/src/main/java/com/google/android/gms/example/nativeadvancedexample/MainActivity.kt +++ b/kotlin/admob/NativeAdvancedExample/app/src/main/java/com/google/android/gms/example/nativeadvancedexample/MainActivity.kt @@ -90,9 +90,6 @@ class MainActivity : AppCompatActivity() { override fun onCreateOptionsMenu(menu: Menu): Boolean { menuInflater.inflate(R.menu.action_menu, menu) - menu.findItem(R.id.action_more)?.apply { - isVisible = googleMobileAdsConsentManager.isPrivacyOptionsRequired - } return super.onCreateOptionsMenu(menu) } @@ -101,6 +98,9 @@ class MainActivity : AppCompatActivity() { val activity = this PopupMenu(this, menuItemView).apply { menuInflater.inflate(R.menu.popup_menu, menu) + menu + .findItem(R.id.privacy_settings) + .setVisible(googleMobileAdsConsentManager.isPrivacyOptionsRequired) show() setOnMenuItemClickListener { popupMenuItem -> when (popupMenuItem.itemId) { @@ -108,11 +108,18 @@ class MainActivity : AppCompatActivity() { // Handle changes to user consent. googleMobileAdsConsentManager.showPrivacyOptionsForm(activity) { formError -> if (formError != null) { - Toast.makeText(this@MainActivity, formError.message, Toast.LENGTH_SHORT).show() + Toast.makeText(activity, formError.message, Toast.LENGTH_SHORT).show() } } true } + R.id.ad_inspector -> { + MobileAds.openAdInspector(activity) { error -> + // Error will be non-null if ad inspector closed due to an error. + error?.let { Toast.makeText(activity, it.message, Toast.LENGTH_SHORT).show() } + } + true + } else -> false } } diff --git a/kotlin/admob/NativeAdvancedExample/app/src/main/res/menu/action_menu.xml b/kotlin/admob/NativeAdvancedExample/app/src/main/res/menu/action_menu.xml index c4a677368..40e9a54ca 100644 --- a/kotlin/admob/NativeAdvancedExample/app/src/main/res/menu/action_menu.xml +++ b/kotlin/admob/NativeAdvancedExample/app/src/main/res/menu/action_menu.xml @@ -5,6 +5,5 @@ android:id="@+id/action_more" android:icon="@android:drawable/ic_menu_preferences" android:title="@string/more_menu" - app:showAsAction="always" - android:visible="false"/> + app:showAsAction="always" /> diff --git a/kotlin/admob/NativeAdvancedExample/app/src/main/res/menu/popup_menu.xml b/kotlin/admob/NativeAdvancedExample/app/src/main/res/menu/popup_menu.xml index 91c059d6e..2efa73eaf 100644 --- a/kotlin/admob/NativeAdvancedExample/app/src/main/res/menu/popup_menu.xml +++ b/kotlin/admob/NativeAdvancedExample/app/src/main/res/menu/popup_menu.xml @@ -1,6 +1,10 @@ + + android:title="@string/privacy_settings" + android:visible="false" /> diff --git a/kotlin/admob/NativeAdvancedExample/app/src/main/res/values/strings.xml b/kotlin/admob/NativeAdvancedExample/app/src/main/res/values/strings.xml index a68adf7d7..9f602958f 100644 --- a/kotlin/admob/NativeAdvancedExample/app/src/main/res/values/strings.xml +++ b/kotlin/admob/NativeAdvancedExample/app/src/main/res/values/strings.xml @@ -1,5 +1,6 @@ Ad + Ad Inspector AdMob Native Advanced More Privacy Settings diff --git a/kotlin/admob/RewardedInterstitialExample/app/src/main/java/com/google/android/gms/example/rewardedinterstitialexample/MainActivity.kt b/kotlin/admob/RewardedInterstitialExample/app/src/main/java/com/google/android/gms/example/rewardedinterstitialexample/MainActivity.kt index 5cf80dc22..56a22e7ab 100644 --- a/kotlin/admob/RewardedInterstitialExample/app/src/main/java/com/google/android/gms/example/rewardedinterstitialexample/MainActivity.kt +++ b/kotlin/admob/RewardedInterstitialExample/app/src/main/java/com/google/android/gms/example/rewardedinterstitialexample/MainActivity.kt @@ -98,29 +98,38 @@ class MainActivity : AppCompatActivity() { override fun onCreateOptionsMenu(menu: Menu?): Boolean { menuInflater.inflate(R.menu.action_menu, menu) - val moreMenu = menu?.findItem(R.id.action_more) - moreMenu?.isVisible = googleMobileAdsConsentManager.isPrivacyOptionsRequired return super.onCreateOptionsMenu(menu) } override fun onOptionsItemSelected(item: MenuItem): Boolean { val menuItemView = findViewById(item.itemId) + val activity = this PopupMenu(this, menuItemView).apply { menuInflater.inflate(R.menu.popup_menu, menu) + menu + .findItem(R.id.privacy_settings) + .setVisible(googleMobileAdsConsentManager.isPrivacyOptionsRequired) show() setOnMenuItemClickListener { popupMenuItem -> when (popupMenuItem.itemId) { R.id.privacy_settings -> { pauseGame() // Handle changes to user consent. - googleMobileAdsConsentManager.showPrivacyOptionsForm(this@MainActivity) { formError -> + googleMobileAdsConsentManager.showPrivacyOptionsForm(activity) { formError -> if (formError != null) { - Toast.makeText(this@MainActivity, formError.message, Toast.LENGTH_SHORT).show() + Toast.makeText(activity, formError.message, Toast.LENGTH_SHORT).show() } resumeGame() } true } + R.id.ad_inspector -> { + MobileAds.openAdInspector(activity) { error -> + // Error will be non-null if ad inspector closed due to an error. + error?.let { Toast.makeText(activity, it.message, Toast.LENGTH_SHORT).show() } + } + true + } else -> false } } diff --git a/kotlin/admob/RewardedInterstitialExample/app/src/main/res/menu/action_menu.xml b/kotlin/admob/RewardedInterstitialExample/app/src/main/res/menu/action_menu.xml index c4a677368..40e9a54ca 100644 --- a/kotlin/admob/RewardedInterstitialExample/app/src/main/res/menu/action_menu.xml +++ b/kotlin/admob/RewardedInterstitialExample/app/src/main/res/menu/action_menu.xml @@ -5,6 +5,5 @@ android:id="@+id/action_more" android:icon="@android:drawable/ic_menu_preferences" android:title="@string/more_menu" - app:showAsAction="always" - android:visible="false"/> + app:showAsAction="always" /> diff --git a/kotlin/admob/RewardedInterstitialExample/app/src/main/res/menu/popup_menu.xml b/kotlin/admob/RewardedInterstitialExample/app/src/main/res/menu/popup_menu.xml index 91c059d6e..2efa73eaf 100644 --- a/kotlin/admob/RewardedInterstitialExample/app/src/main/res/menu/popup_menu.xml +++ b/kotlin/admob/RewardedInterstitialExample/app/src/main/res/menu/popup_menu.xml @@ -1,6 +1,10 @@ + + android:title="@string/privacy_settings" + android:visible="false" /> diff --git a/kotlin/admob/RewardedInterstitialExample/app/src/main/res/values/strings.xml b/kotlin/admob/RewardedInterstitialExample/app/src/main/res/values/strings.xml index 8014875e1..561952074 100644 --- a/kotlin/admob/RewardedInterstitialExample/app/src/main/res/values/strings.xml +++ b/kotlin/admob/RewardedInterstitialExample/app/src/main/res/values/strings.xml @@ -1,4 +1,5 @@ + Ad Inspector AdMob Rewarded Interstitial Coins: 0 Impossible Game diff --git a/kotlin/admob/RewardedVideoExample/app/src/main/java/com/google/android/gms/example/rewardedvideoexample/MainActivity.kt b/kotlin/admob/RewardedVideoExample/app/src/main/java/com/google/android/gms/example/rewardedvideoexample/MainActivity.kt index a53904746..51d01206b 100644 --- a/kotlin/admob/RewardedVideoExample/app/src/main/java/com/google/android/gms/example/rewardedvideoexample/MainActivity.kt +++ b/kotlin/admob/RewardedVideoExample/app/src/main/java/com/google/android/gms/example/rewardedvideoexample/MainActivity.kt @@ -100,33 +100,44 @@ class MainActivity : AppCompatActivity() { override fun onCreateOptionsMenu(menu: Menu?): Boolean { menuInflater.inflate(R.menu.action_menu, menu) - val moreMenu = menu?.findItem(R.id.action_more) - moreMenu?.isVisible = googleMobileAdsConsentManager.isPrivacyOptionsRequired return super.onCreateOptionsMenu(menu) } override fun onOptionsItemSelected(item: MenuItem): Boolean { val menuItemView = findViewById(item.itemId) - val popup = PopupMenu(this, menuItemView) - popup.menuInflater.inflate(R.menu.popup_menu, popup.menu) - popup.show() - popup.setOnMenuItemClickListener { popupMenuItem -> - when (popupMenuItem.itemId) { - R.id.privacy_settings -> { - pauseGame() - // Handle changes to user consent. - googleMobileAdsConsentManager.showPrivacyOptionsForm(this) { formError -> - if (formError != null) { - Toast.makeText(this@MainActivity, formError.message, Toast.LENGTH_SHORT).show() + val activity = this + PopupMenu(this, menuItemView).apply { + menuInflater.inflate(R.menu.popup_menu, menu) + menu + .findItem(R.id.privacy_settings) + .setVisible(googleMobileAdsConsentManager.isPrivacyOptionsRequired) + show() + setOnMenuItemClickListener { popupMenuItem -> + when (popupMenuItem.itemId) { + R.id.privacy_settings -> { + pauseGame() + // Handle changes to user consent. + googleMobileAdsConsentManager.showPrivacyOptionsForm(activity) { formError -> + if (formError != null) { + Toast.makeText(activity, formError.message, Toast.LENGTH_SHORT).show() + } + resumeGame() } - resumeGame() + true } - true + R.id.ad_inspector -> { + MobileAds.openAdInspector(activity) { error -> + // Error will be non-null if ad inspector closed due to an error. + error?.let { Toast.makeText(activity, it.message, Toast.LENGTH_SHORT).show() } + } + true + } + // Handle other branches here. + else -> false } - else -> false } + return super.onOptionsItemSelected(item) } - return super.onOptionsItemSelected(item) } private fun pauseGame() { diff --git a/kotlin/admob/RewardedVideoExample/app/src/main/res/menu/action_menu.xml b/kotlin/admob/RewardedVideoExample/app/src/main/res/menu/action_menu.xml index 4f8f94062..3963228d7 100644 --- a/kotlin/admob/RewardedVideoExample/app/src/main/res/menu/action_menu.xml +++ b/kotlin/admob/RewardedVideoExample/app/src/main/res/menu/action_menu.xml @@ -5,6 +5,5 @@ android:id="@+id/action_more" android:icon="@android:drawable/ic_menu_preferences" android:title="More" - app:showAsAction="always" - android:visible="false"/> + app:showAsAction="always" /> diff --git a/kotlin/admob/RewardedVideoExample/app/src/main/res/menu/popup_menu.xml b/kotlin/admob/RewardedVideoExample/app/src/main/res/menu/popup_menu.xml index f9765b824..2efa73eaf 100644 --- a/kotlin/admob/RewardedVideoExample/app/src/main/res/menu/popup_menu.xml +++ b/kotlin/admob/RewardedVideoExample/app/src/main/res/menu/popup_menu.xml @@ -1,6 +1,10 @@ + + android:title="@string/privacy_settings" + android:visible="false" /> diff --git a/kotlin/admob/RewardedVideoExample/app/src/main/res/values/strings.xml b/kotlin/admob/RewardedVideoExample/app/src/main/res/values/strings.xml index 9a48f5564..07daddf01 100644 --- a/kotlin/admob/RewardedVideoExample/app/src/main/res/values/strings.xml +++ b/kotlin/admob/RewardedVideoExample/app/src/main/res/values/strings.xml @@ -1,5 +1,6 @@ Settings + Ad Inspector AdMob Rewarded Video Example Coins: 0 Impossible Game