Skip to content

Commit e0498cb

Browse files
author
Mark Ha
committed
Merge RC1.11 to Github
2 parents fe7e5b7 + fb7f614 commit e0498cb

File tree

5 files changed

+279
-146
lines changed

5 files changed

+279
-146
lines changed

sdk/src/com/appnexus/opensdk/BannerAdView.java

+10-23
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,6 @@ public class BannerAdView extends AdView {
8989
private boolean loadAdHasBeenCalled;
9090
private boolean shouldReloadOnResume;
9191
private BroadcastReceiver receiver;
92-
private boolean receiversRegistered;
9392
protected boolean shouldResetContainer = false;
9493
private boolean expandsToFitScreenWidth = false;
9594
private int width = -1;
@@ -99,7 +98,6 @@ private void setDefaultsBeforeXML() {
9998
loadAdHasBeenCalled = false;
10099
auto_refresh = true;
101100
shouldReloadOnResume = false;
102-
receiversRegistered = false;
103101
}
104102

105103
/**
@@ -177,11 +175,12 @@ protected void setup(Context context, AttributeSet attrs) {
177175
mAdFetcher.setAutoRefresh(auto_refresh);
178176
}
179177

180-
void setupBroadcast(Context context) {
178+
private void setupBroadcast() {
179+
if (receiver != null) return;
180+
181181
IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_OFF);
182182
filter.addAction(Intent.ACTION_SCREEN_ON);
183183
receiver = new BroadcastReceiver() {
184-
185184
@Override
186185
public void onReceive(Context context, Intent intent) {
187186
if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
@@ -197,11 +196,9 @@ else if (shouldReloadOnResume)
197196
Clog.d(Clog.baseLogTag,
198197
Clog.getString(R.string.screen_on_start));
199198
}
200-
201199
}
202-
203200
};
204-
context.registerReceiver(receiver, filter);
201+
getContext().registerReceiver(receiver, filter);
205202
}
206203

207204
@Override
@@ -211,10 +208,7 @@ public final void onLayout(boolean changed, int left, int top, int right,
211208

212209
// Are we coming back from a screen/user presence change?
213210
if (loadAdHasBeenCalled) {
214-
if (!receiversRegistered) {
215-
setupBroadcast(getContext());
216-
receiversRegistered = true;
217-
}
211+
setupBroadcast();
218212
if (shouldReloadOnResume) {
219213
start();
220214
}
@@ -225,10 +219,7 @@ public final void onLayout(boolean changed, int left, int top, int right,
225219
// Make sure receiver is registered.
226220
private void onFirstLayout() {
227221
if (this.auto_refresh) {
228-
if (!receiversRegistered) {
229-
setupBroadcast(getContext());
230-
receiversRegistered = true;
231-
}
222+
setupBroadcast();
232223
}
233224
}
234225

@@ -522,10 +513,7 @@ protected void onWindowVisibilityChanged(int visibility) {
522513
// Register a broadcast receiver to pause and refresh when the phone
523514
// is
524515
// locked
525-
if (!receiversRegistered) {
526-
setupBroadcast(getContext());
527-
receiversRegistered = true;
528-
}
516+
setupBroadcast();
529517
Clog.d(Clog.baseLogTag, Clog.getString(R.string.unhidden));
530518
//The only time we want to request on visibility changes is if an ad hasn't been loaded yet (loadAdHasBeenCalled)
531519
// shouldReloadOnResume is true
@@ -545,10 +533,7 @@ protected void onWindowVisibilityChanged(int visibility) {
545533
}
546534
} else {
547535
// Unregister the receiver to prevent a leak.
548-
if (receiversRegistered) {
549-
dismantleBroadcast();
550-
receiversRegistered = false;
551-
}
536+
dismantleBroadcast();
552537
Clog.d(Clog.baseLogTag, Clog.getString(R.string.hidden));
553538
if (mAdFetcher != null && loadAdHasBeenCalled) {
554539
stop();
@@ -562,7 +547,9 @@ protected void onWindowVisibilityChanged(int visibility) {
562547
}
563548

564549
private void dismantleBroadcast() {
550+
if (receiver == null) return;
565551
getContext().unregisterReceiver(receiver);
552+
receiver = null;
566553
}
567554

568555
@Override

0 commit comments

Comments
 (0)