Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(139)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/fullscreen/ChromeFullscreenManager.java

Issue 844473002: Refactor handleMessage() functionality in fullscreen (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: review comments incorporated Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler.java » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/java/src/org/chromium/chrome/browser/fullscreen/ChromeFullscreenManager.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/ChromeFullscreenManager.java b/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/ChromeFullscreenManager.java
index 27c1180ef071fd4cd1539c7510872b53bb13117e..4cf82e2ba7b3688e62f29103fa6f317d93aae9e9 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/ChromeFullscreenManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/ChromeFullscreenManager.java
@@ -35,6 +35,7 @@ import org.chromium.chrome.browser.fullscreen.FullscreenHtmlApiHandler.Fullscree
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.content.browser.ContentViewCore;
+import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.HashSet;
@@ -149,6 +150,35 @@ public class ChromeFullscreenManager
}
};
+ // This static inner class holds a WeakReference to the outer object, to avoid triggering the
+ // lint HandlerLeak warning.
+ private static class FullscreenHandler extends Handler {
+ private final WeakReference<ChromeFullscreenManager> mChromeFullscreenManager;
+
+ public FullscreenHandler(ChromeFullscreenManager chromeFullscreenManager) {
+ mChromeFullscreenManager = new WeakReference<ChromeFullscreenManager>(
+ chromeFullscreenManager);
+ }
+
+ @Override
+ public void handleMessage(Message msg) {
+ if (msg == null) return;
+ ChromeFullscreenManager chromeFullscreenManager = mChromeFullscreenManager.get();
+ if (chromeFullscreenManager == null) return;
+ switch (msg.what) {
+ case MSG_ID_CONTROLS_REQUEST_LAYOUT:
+ chromeFullscreenManager.mControlContainer.requestLayout();
+ break;
+ case MSG_ID_HIDE_CONTROLS:
+ chromeFullscreenManager.update(false);
+ break;
+ default:
+ assert false : "Unexpected message for ID: " + msg.what;
+ break;
+ }
+ }
+ }
+
/**
* Creates an instance of the fullscreen mode manager.
* @param activity The activity that supports fullscreen.
@@ -167,23 +197,7 @@ public class ChromeFullscreenManager
.registerWindowFocusChangedListener(this);
mWindow = activity.getWindow();
- mHandler = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- if (msg == null) return;
- switch (msg.what) {
- case MSG_ID_CONTROLS_REQUEST_LAYOUT:
- mControlContainer.requestLayout();
- break;
- case MSG_ID_HIDE_CONTROLS:
- update(false);
- break;
- default:
- assert false : "Unexpected message for ID: " + msg.what;
- break;
- }
- }
- };
+ mHandler = new FullscreenHandler(this);
setControlContainer(controlContainer);
Resources resources = mWindow.getContext().getResources();
mControlContainerHeight = resources.getDimensionPixelSize(resControlContainerHeight);
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698