Skip to content

Commit 2ee0bcf

Browse files
committed
fix(admob): _BannerAd_listener not defined
fixes #97
1 parent 2bbfe51 commit 2ee0bcf

File tree

1 file changed

+43
-54
lines changed

1 file changed

+43
-54
lines changed

packages/firebase-admob/index.android.ts

+43-54
Original file line numberDiff line numberDiff line change
@@ -23,68 +23,58 @@ if (!fb.admob) {
2323
});
2424
}
2525

26-
let AdListener;
26+
@NativeClass()
27+
class AdListener extends com.google.android.gms.ads.AdListener {
28+
_owner: WeakRef<BannerAd>;
2729

28-
function ensureAdListener() {
29-
if (AdListener) {
30-
return;
30+
constructor(owner: WeakRef<BannerAd>) {
31+
super();
32+
this._owner = owner;
33+
return global.__native(this);
3134
}
3235

33-
@NativeClass()
34-
class AdListenerImpl extends com.google.android.gms.ads.AdListener {
35-
_owner: WeakRef<BannerAd>;
36-
37-
constructor(owner: WeakRef<BannerAd>) {
38-
super();
39-
this._owner = owner;
40-
return global.__native(this);
41-
}
42-
43-
onAdLoaded() {
44-
this._owner?.get?.().notify({
45-
eventName: BannerAd.onAdLoadedEvent,
46-
object: this._owner?.get?.(),
47-
});
48-
}
49-
50-
onAdClicked() {
51-
this._owner?.get?.().notify({
52-
eventName: BannerAd.onAdClickedEvent,
53-
object: this._owner?.get?.(),
54-
});
55-
}
36+
onAdLoaded() {
37+
this._owner?.get?.().notify({
38+
eventName: BannerAd.onAdLoadedEvent,
39+
object: this._owner?.get?.(),
40+
});
41+
}
5642

57-
onAdFailedToLoad(error: com.google.android.gms.ads.LoadAdError) {
58-
this._owner?.get?.().notify({
59-
eventName: BannerAd.onAdFailedToLoadEvent,
60-
object: this._owner?.get?.(),
61-
error: FirebaseError.fromNative(error),
62-
});
63-
}
43+
onAdClicked() {
44+
this._owner?.get?.().notify({
45+
eventName: BannerAd.onAdClickedEvent,
46+
object: this._owner?.get?.(),
47+
});
48+
}
6449

65-
onAdClosed() {
66-
this._owner?.get?.().notify({
67-
eventName: BannerAd.onAdClosedEvent,
68-
object: this._owner?.get?.(),
69-
});
70-
}
50+
onAdFailedToLoad(error: com.google.android.gms.ads.LoadAdError) {
51+
this._owner?.get?.().notify({
52+
eventName: BannerAd.onAdFailedToLoadEvent,
53+
object: this._owner?.get?.(),
54+
error: FirebaseError.fromNative(error),
55+
});
56+
}
7157

72-
onAdImpression() {
73-
this._owner?.get?.().notify({
74-
eventName: BannerAd.onAdImpression,
75-
object: this._owner?.get?.(),
76-
});
77-
}
58+
onAdClosed() {
59+
this._owner?.get?.().notify({
60+
eventName: BannerAd.onAdClosedEvent,
61+
object: this._owner?.get?.(),
62+
});
63+
}
7864

79-
onAdOpened() {
80-
this._owner?.get?.().notify({
81-
eventName: BannerAd.onAdOpenedEvent,
82-
object: this._owner?.get?.(),
83-
});
84-
}
65+
onAdImpression() {
66+
this._owner?.get?.().notify({
67+
eventName: BannerAd.onAdImpression,
68+
object: this._owner?.get?.(),
69+
});
8570
}
8671

87-
AdListener = AdListenerImpl;
72+
onAdOpened() {
73+
this._owner?.get?.().notify({
74+
eventName: BannerAd.onAdOpenedEvent,
75+
object: this._owner?.get?.(),
76+
});
77+
}
8878
}
8979

9080
export class AdRequest {
@@ -616,7 +606,6 @@ export class BannerAd extends BannerAdBase {
616606

617607
initNativeView() {
618608
super.initNativeView();
619-
ensureAdListener();
620609
this.#listener = new AdListener(new WeakRef(this));
621610
this.#native.setAdListener(this.#listener);
622611
}

0 commit comments

Comments
 (0)