Skip to content

Commit

Permalink
Fix deprecated Fix DisplayMetrics deprecation in all 4 Banner projects.
Browse files Browse the repository at this point in the history
PiperOrigin-RevId: 633568539
  • Loading branch information
JillSong authored and Copybara-Service committed May 14, 2024
1 parent 86ce865 commit 8a8251f
Show file tree
Hide file tree
Showing 4 changed files with 53 additions and 57 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,19 @@

package com.google.android.gms.example.bannerexample;

import android.os.Build.VERSION;
import android.os.Build.VERSION_CODES;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.Display;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.WindowMetrics;
import android.widget.FrameLayout;
import android.widget.PopupMenu;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import com.google.android.gms.ads.AdSize;
import com.google.android.gms.ads.MobileAds;
Expand Down Expand Up @@ -189,7 +192,8 @@ private void initializeMobileAdsSdk() {
this,
new OnInitializationCompleteListener() {
@Override
public void onInitializationComplete(InitializationStatus initializationStatus) {}
public void onInitializationComplete(
@NonNull InitializationStatus initializationStatus) {}
});

// Load an ad.
Expand All @@ -198,21 +202,17 @@ public void onInitializationComplete(InitializationStatus initializationStatus)
}
}

private AdSize getAdSize() {
// Determine the screen width (less decorations) to use for the ad width.
Display display = getWindowManager().getDefaultDisplay();
DisplayMetrics outMetrics = new DisplayMetrics();
display.getMetrics(outMetrics);
// Get the ad size with screen width.
public AdSize getAdSize() {
DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
int adWidthPixels = displayMetrics.widthPixels;

float density = outMetrics.density;

float adWidthPixels = adContainerView.getWidth();

// If the ad hasn't been laid out, default to the full screen width.
if (adWidthPixels == 0) {
adWidthPixels = outMetrics.widthPixels;
if (VERSION.SDK_INT >= VERSION_CODES.R) {
WindowMetrics windowMetrics = this.getWindowManager().getCurrentWindowMetrics();
adWidthPixels = windowMetrics.getBounds().width();
}

float density = displayMetrics.density;
int adWidth = (int) (adWidthPixels / density);
return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,19 @@

package com.google.android.gms.example.bannerexample;

import android.os.Build.VERSION;
import android.os.Build.VERSION_CODES;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.Display;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.WindowMetrics;
import android.widget.FrameLayout;
import android.widget.PopupMenu;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdSize;
Expand All @@ -47,7 +50,7 @@ public class MyActivity extends AppCompatActivity {
private GoogleMobileAdsConsentManager googleMobileAdsConsentManager;
private AdView adView;
private FrameLayout adContainerView;
private AtomicBoolean initialLayoutComplete = new AtomicBoolean(false);
private final AtomicBoolean initialLayoutComplete = new AtomicBoolean(false);

@Override
protected void onCreate(Bundle savedInstanceState) {
Expand Down Expand Up @@ -189,7 +192,8 @@ private void initializeMobileAdsSdk() {
this,
new OnInitializationCompleteListener() {
@Override
public void onInitializationComplete(InitializationStatus initializationStatus) {}
public void onInitializationComplete(
@NonNull InitializationStatus initializationStatus) {}
});

// Load an ad.
Expand All @@ -198,21 +202,17 @@ public void onInitializationComplete(InitializationStatus initializationStatus)
}
}

private AdSize getAdSize() {
// Determine the screen width (less decorations) to use for the ad width.
Display display = getWindowManager().getDefaultDisplay();
DisplayMetrics outMetrics = new DisplayMetrics();
display.getMetrics(outMetrics);
// Get the ad size with screen width.
public AdSize getAdSize() {
DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
int adWidthPixels = displayMetrics.widthPixels;

float density = outMetrics.density;

float adWidthPixels = adContainerView.getWidth();

// If the ad hasn't been laid out, default to the full screen width.
if (adWidthPixels == 0) {
adWidthPixels = outMetrics.widthPixels;
if (VERSION.SDK_INT >= VERSION_CODES.R) {
WindowMetrics windowMetrics = this.getWindowManager().getCurrentWindowMetrics();
adWidthPixels = windowMetrics.getBounds().width();
}

float density = displayMetrics.density;
int adWidth = (int) (adWidthPixels / density);
return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,13 @@

package com.google.android.gms.example.bannerexample

import android.os.Build
import android.os.Bundle
import android.util.DisplayMetrics
import android.util.Log
import android.view.Menu
import android.view.MenuItem
import android.view.View
import android.view.WindowMetrics
import android.widget.PopupMenu
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
Expand All @@ -44,21 +45,18 @@ class MyActivity : AppCompatActivity() {
private lateinit var adView: AdManagerAdView
private lateinit var googleMobileAdsConsentManager: GoogleMobileAdsConsentManager

// Determine the screen width (less decorations) to use for the ad width.
// If the ad hasn't been laid out, default to the full screen width.
// Get the ad size with screen width.
private val adSize: AdSize
get() {
val display = windowManager.defaultDisplay
val outMetrics = DisplayMetrics()
display.getMetrics(outMetrics)

val density = outMetrics.density

var adWidthPixels = binding.adViewContainer.width.toFloat()
if (adWidthPixels == 0f) {
adWidthPixels = outMetrics.widthPixels.toFloat()
}

val displayMetrics = resources.displayMetrics
val adWidthPixels =
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
val windowMetrics: WindowMetrics = this.windowManager.currentWindowMetrics
windowMetrics.bounds.width()
} else {
displayMetrics.widthPixels
}
val density = displayMetrics.density
val adWidth = (adWidthPixels / density).toInt()
return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,13 @@

package com.google.android.gms.example.bannerexample

import android.os.Build
import android.os.Bundle
import android.util.DisplayMetrics
import android.util.Log
import android.view.Menu
import android.view.MenuItem
import android.view.View
import android.view.WindowMetrics
import android.widget.PopupMenu
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
Expand All @@ -44,21 +45,18 @@ class MainActivity : AppCompatActivity() {
private lateinit var adView: AdView
private lateinit var googleMobileAdsConsentManager: GoogleMobileAdsConsentManager

// Determine the screen width (less decorations) to use for the ad width.
// If the ad hasn't been laid out, default to the full screen width.
// Get the ad size with screen width.
private val adSize: AdSize
get() {
val display = windowManager.defaultDisplay
val outMetrics = DisplayMetrics()
display.getMetrics(outMetrics)

val density = outMetrics.density

var adWidthPixels = binding.adViewContainer.width.toFloat()
if (adWidthPixels == 0f) {
adWidthPixels = outMetrics.widthPixels.toFloat()
}

val displayMetrics = resources.displayMetrics
val adWidthPixels =
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
val windowMetrics: WindowMetrics = this.windowManager.currentWindowMetrics
windowMetrics.bounds.width()
} else {
displayMetrics.widthPixels
}
val density = displayMetrics.density
val adWidth = (adWidthPixels / density).toInt()
return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth)
}
Expand Down

0 comments on commit 8a8251f

Please sign in to comment.