Skip to content

Commit 1686686

Browse files
committed
Android: Make FlutterNativeAdLoadedListener more generally usable
In `FlutterNativeAdLoadedListener`, make the inner weak reference be generic on the `OnNativeAdLoadedListener` interface instead of the `FlutterNativeAd` concrete class. This allows using the same listener class with any other type that conforms to `OnNativeAdLoadedListener`. Update `FlutterNativeAd` to conform to `OnNativeAdLoadedListener` to allow delegating in the same existing fashion.
1 parent cd45ae9 commit 1686686

2 files changed

Lines changed: 8 additions & 7 deletions

File tree

packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterAdListener.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -97,16 +97,16 @@ public void onAdLoaded() {
9797
/** {@link OnNativeAdLoadedListener} for native ads. */
9898
class FlutterNativeAdLoadedListener implements OnNativeAdLoadedListener {
9999

100-
private final WeakReference<FlutterNativeAd> nativeAdWeakReference;
100+
private final WeakReference<OnNativeAdLoadedListener> listenerWeakReference;
101101

102-
FlutterNativeAdLoadedListener(FlutterNativeAd flutterNativeAd) {
103-
nativeAdWeakReference = new WeakReference<>(flutterNativeAd);
102+
FlutterNativeAdLoadedListener(OnNativeAdLoadedListener listener) {
103+
listenerWeakReference = new WeakReference<>(listener);
104104
}
105105

106106
@Override
107107
public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {
108-
if (nativeAdWeakReference.get() != null) {
109-
nativeAdWeakReference.get().onNativeAdLoaded(nativeAd);
108+
if (listenerWeakReference.get() != null) {
109+
listenerWeakReference.get().onNativeAdLoaded(nativeAd);
110110
}
111111
}
112112
}

packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterNativeAd.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
import java.util.Map;
3333

3434
/** A wrapper for {@link NativeAd}. */
35-
class FlutterNativeAd extends FlutterAd {
35+
class FlutterNativeAd extends FlutterAd implements OnNativeAdLoadedListener {
3636
private static final String TAG = "FlutterNativeAd";
3737

3838
@NonNull private final AdInstanceManager manager;
@@ -248,7 +248,8 @@ public PlatformView getPlatformView() {
248248
return null;
249249
}
250250

251-
void onNativeAdLoaded(@NonNull NativeAd nativeAd) {
251+
@Override
252+
public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {
252253
if (nativeTemplateStyle != null) {
253254
templateView = nativeTemplateStyle.asTemplateView(context);
254255
templateView.setNativeAd(nativeAd);

0 commit comments

Comments
 (0)