Bug 1269406 - Upgrade delegates needing BrowserApp references to use BrowserAppDelegateWithReference r?sebastian
MozReview-Commit-ID: CV4uA2N8q8e
--- a/mobile/android/base/java/org/mozilla/gecko/delegates/BookmarkStateChangeDelegate.java
+++ b/mobile/android/base/java/org/mozilla/gecko/delegates/BookmarkStateChangeDelegate.java
@@ -40,26 +40,19 @@ import org.mozilla.gecko.util.ThreadUtil
import java.lang.ref.WeakReference;
/**
* Delegate to watch for bookmark state changes.
*
* This is responsible for showing snackbars and helper UIs related to the addition/removal
* of bookmarks, or reader view bookmarks.
*/
-public class BookmarkStateChangeDelegate extends BrowserAppDelegate implements Tabs.OnTabsChangedListener {
+public class BookmarkStateChangeDelegate extends BrowserAppDelegateWithReference implements Tabs.OnTabsChangedListener {
private static final String LOGTAG = "BookmarkDelegate";
- private WeakReference<BrowserApp> mBrowserApp;
-
- @Override
- public void onCreate(BrowserApp browserApp, Bundle savedInstanceState) {
- mBrowserApp = new WeakReference<>(browserApp);
- }
-
@Override
public void onResume(BrowserApp browserApp) {
Tabs.registerOnTabsChangedListener(this);
}
@Override
public void onPause(BrowserApp browserApp) {
Tabs.unregisterOnTabsChangedListener(this);
@@ -95,17 +88,17 @@ public class BookmarkStateChangeDelegate
browserApp.openUrlAndStopEditing("about:home?panel=" + HomeConfig.getIdForBuiltinPanelType(HomeConfig.PanelType.BOOKMARKS));
} else if (resultCode == BrowserApp.ACTIVITY_RESULT_FIRST_READERVIEW_BOOKMARKS_IGNORE) {
showReaderModeBookmarkAddedSnackbar();
}
}
}
private boolean promoteReaderViewBookmarkAdded() {
- final BrowserApp browserApp = mBrowserApp.get();
+ final BrowserApp browserApp = getBrowserApp();
if (browserApp == null) {
return false;
}
final SharedPreferences prefs = GeckoSharedPrefs.forProfile(browserApp);
final boolean hasFirstReaderViewPromptBeenShownBefore = prefs.getBoolean(SimpleHelperUI.PREF_FIRST_RVBP_SHOWN, false);
@@ -125,17 +118,17 @@ public class BookmarkStateChangeDelegate
.edit()
.putBoolean(SimpleHelperUI.PREF_FIRST_RVBP_SHOWN, true)
.apply();
return true;
}
private void showBookmarkAddedSnackbar() {
- final BrowserApp browserApp = mBrowserApp.get();
+ final BrowserApp browserApp = getBrowserApp();
if (browserApp == null) {
return;
}
// This flow is from the option menu which has check to see if a bookmark was already added.
// So, it is safe here to show the snackbar that bookmark_added without any checks.
final SnackbarHelper.SnackbarCallback callback = new SnackbarHelper.SnackbarCallback() {
@Override
@@ -148,17 +141,17 @@ public class BookmarkStateChangeDelegate
SnackbarHelper.showSnackbarWithAction(browserApp,
browserApp.getResources().getString(R.string.bookmark_added),
Snackbar.LENGTH_LONG,
browserApp.getResources().getString(R.string.bookmark_options),
callback);
}
private void showBookmarkRemovedSnackbar() {
- final BrowserApp browserApp = mBrowserApp.get();
+ final BrowserApp browserApp = getBrowserApp();
if (browserApp == null) {
return;
}
SnackbarHelper.showSnackbar(browserApp, browserApp.getResources().getString(R.string.bookmark_removed), Snackbar.LENGTH_LONG);
}
private static void showBookmarkDialog(final BrowserApp browserApp) {
@@ -208,17 +201,17 @@ public class BookmarkStateChangeDelegate
final PromptListItem[] items = new PromptListItem[2];
items[0] = new PromptListItem(res.getString(R.string.contextmenu_edit_bookmark));
items[1] = new PromptListItem(res.getString(R.string.contextmenu_add_to_launcher));
ps.show("", "", items, ListView.CHOICE_MODE_NONE);
}
private void showReaderModeBookmarkAddedSnackbar() {
- final BrowserApp browserApp = mBrowserApp.get();
+ final BrowserApp browserApp = getBrowserApp();
if (browserApp == null) {
return;
}
final Drawable iconDownloaded = DrawableUtil.tintDrawable(browserApp, R.drawable.status_icon_readercache, Color.WHITE);
final SnackbarHelper.SnackbarCallback callback = new SnackbarHelper.SnackbarCallback() {
@Override
--- a/mobile/android/base/java/org/mozilla/gecko/delegates/ScreenshotDelegate.java
+++ b/mobile/android/base/java/org/mozilla/gecko/delegates/ScreenshotDelegate.java
@@ -15,32 +15,30 @@ import org.mozilla.gecko.BrowserApp;
import org.mozilla.gecko.GeckoProfile;
import org.mozilla.gecko.R;
import org.mozilla.gecko.ScreenshotObserver;
import org.mozilla.gecko.SnackbarHelper;
import org.mozilla.gecko.Tab;
import org.mozilla.gecko.Tabs;
import org.mozilla.gecko.Telemetry;
import org.mozilla.gecko.TelemetryContract;
-import org.mozilla.gecko.delegates.BrowserAppDelegate;
import java.lang.ref.WeakReference;
/**
* Delegate for observing screenshots being taken.
*/
-public class ScreenshotDelegate extends BrowserAppDelegate implements ScreenshotObserver.OnScreenshotListener {
+public class ScreenshotDelegate extends BrowserAppDelegateWithReference implements ScreenshotObserver.OnScreenshotListener {
private static final String LOGTAG = "GeckoScreenshotDelegate";
- private WeakReference<Activity> activityReference;
private final ScreenshotObserver mScreenshotObserver = new ScreenshotObserver();
@Override
public void onCreate(BrowserApp browserApp, Bundle savedInstanceState) {
- activityReference = new WeakReference<Activity>(browserApp);
+ super.onCreate(browserApp, savedInstanceState);
mScreenshotObserver.setListener(browserApp, this);
}
@Override
public void onScreenshotTaken(String screenshotPath, String title) {
// Treat screenshots as a sharing method.
Telemetry.sendUIEvent(TelemetryContract.Event.SHARE, TelemetryContract.Method.BUTTON, "screenshot");
@@ -50,17 +48,17 @@ public class ScreenshotDelegate extends
}
final Tab selectedTab = Tabs.getInstance().getSelectedTab();
if (selectedTab == null) {
Log.w(LOGTAG, "Selected tab is null: could not page info to store screenshot.");
return;
}
- final Activity activity = activityReference.get();
+ final Activity activity = getBrowserApp();
if (activity == null) {
return;
}
GeckoProfile.get(activity).getDB().getUrlAnnotations().insertScreenshot(
activity.getContentResolver(), selectedTab.getURL(), screenshotPath);
SnackbarHelper.showSnackbar(activity,
--- a/mobile/android/base/java/org/mozilla/gecko/promotion/ReaderViewBookmarkPromotion.java
+++ b/mobile/android/base/java/org/mozilla/gecko/promotion/ReaderViewBookmarkPromotion.java
@@ -12,30 +12,29 @@ import android.os.Bundle;
import com.keepsafe.switchboard.SwitchBoard;
import org.mozilla.gecko.BrowserApp;
import org.mozilla.gecko.delegates.BrowserAppDelegate;
import org.mozilla.gecko.GeckoSharedPrefs;
import org.mozilla.gecko.R;
import org.mozilla.gecko.Tab;
import org.mozilla.gecko.Tabs;
+import org.mozilla.gecko.delegates.BrowserAppDelegateWithReference;
import org.mozilla.gecko.reader.ReaderModeUtils;
import org.mozilla.gecko.util.Experiments;
import java.lang.ref.WeakReference;
-public class ReaderViewBookmarkPromotion extends BrowserAppDelegate implements Tabs.OnTabsChangedListener {
- private WeakReference<BrowserApp> mBrowserApp;
-
+public class ReaderViewBookmarkPromotion extends BrowserAppDelegateWithReference implements Tabs.OnTabsChangedListener {
private int mTimesEnteredReaderMode;
private boolean mExperimentEnabled;
@Override
public void onCreate(BrowserApp browserApp, Bundle savedInstanceState) {
- mBrowserApp = new WeakReference<>(browserApp);
+ super.onCreate(browserApp, savedInstanceState);
mExperimentEnabled = SwitchBoard.isInExperiment(browserApp, Experiments.TRIPLE_READERVIEW_BOOKMARK_PROMPT);
}
@Override
public void onResume(BrowserApp browserApp) {
Tabs.registerOnTabsChangedListener(this);
}
@@ -77,17 +76,17 @@ public class ReaderViewBookmarkPromotion
} else if (resultCode == BrowserApp.ACTIVITY_RESULT_TRIPLE_READERVIEW_IGNORE) {
// Nothing to do: we won't show this promotion again either way.
}
break;
}
}
private void promoteBookmarking() {
- final BrowserApp browserApp = mBrowserApp.get();
+ final BrowserApp browserApp = getBrowserApp();
if (browserApp == null) {
return;
}
final SharedPreferences prefs = GeckoSharedPrefs.forProfile(browserApp);
// We reuse the same preference as for the first offline reader view bookmark
// as we only want to show one of the two UIs (they both explain the same