Skip to content

Commit

Permalink
Add Ad Inspector in the settings menu.
Browse files Browse the repository at this point in the history
PiperOrigin-RevId: 665897480
  • Loading branch information
JillSong authored and copybara-github committed Aug 28, 2024
1 parent 04defc4 commit b0cea13
Show file tree
Hide file tree
Showing 49 changed files with 255 additions and 104 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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() {
Expand All @@ -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)
}

Expand All @@ -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) {
Expand All @@ -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
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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" />
</menu>
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/ad_inspector"
android:title="@string/ad_inspector" />
<item
android:id="@+id/privacy_settings"
android:title="@string/privacy_settings" />
android:title="@string/privacy_settings"
android:visible="false" />
</menu>
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
<resources>
<string name="ad_inspector" translatable="false">Ad Inspector</string>
<string name="app_name" translatable="false">Ad Manager App Open Example</string>
<string name="main_activity" translatable="false">Main Activity</string>
<string name="main_activity_text" translatable="false">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<View>(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
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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" />
</menu>
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/ad_inspector"
android:title="@string/ad_inspector" />
<item
android:id="@+id/privacy_settings"
android:title="@string/privacy_settings" />
android:title="@string/privacy_settings"
android:visible="false" />
</menu>
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="action_settings" translatable="false">Settings</string>
<string name="ad_inspector" translatable="false">Ad Inspector</string>
<string name="app_name" translatable="false">Ad Manager Banner Example</string>
<string name="hello_world" translatable="false">Hello world!</string>
<string name="more_menu" translatable="false">More</string>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}

Expand All @@ -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) {
Expand All @@ -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
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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" />
</menu>
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/ad_inspector"
android:title="@string/ad_inspector" />
<item
android:id="@+id/privacy_settings"
android:title="@string/privacy_settings" />
android:title="@string/privacy_settings"
android:visible="false" />
</menu>
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="ad_inspector" translatable="false">Ad Inspector</string>
<string name="app_name" translatable="false">Ad Manager Interstitial</string>
<string name="done" translatable="false">done!</string>
<string name="impossible_game" translatable="false">Impossible Game</string>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}

Expand All @@ -111,18 +108,28 @@ 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) {
R.id.privacy_settings -> {
// 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
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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" />
</menu>
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/ad_inspector"
android:title="@string/ad_inspector" />
<item
android:id="@+id/privacy_settings"
android:title="@string/privacy_settings" />
android:title="@string/privacy_settings"
android:visible="false" />
</menu>
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<resources>
<string name="ad_attribution" translatable="false">Ad</string>
<string name="ad_choices" translatable="false">Ad Choices icon</string>
<string name="ad_inspector" translatable="false">Ad Inspector</string>
<string name="app_name" translatable="false">Ad Manager Native Advanced</string>
<string name="more_menu" translatable="false">More</string>
<string name="privacy_settings" translatable="false">Privacy Settings</string>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<View>(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
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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" />
</menu>
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/ad_inspector"
android:title="@string/ad_inspector" />
<item
android:id="@+id/privacy_settings"
android:title="Privacy Settings" />
android:title="@string/privacy_settings"
android:visible="false" />
</menu>
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
<resources>
<string name="ad_inspector" translatable="false">Ad Inspector</string>
<string name="app_name" translatable="false">Ad Manager Rewarded Interstitial</string>
<string name="default_coin_text" translatable="false">Coins: 0</string>
<string name="impossible_game" translatable="false">Impossible Game</string>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<View>(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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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" />
</menu>
Loading

0 comments on commit b0cea13

Please sign in to comment.