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

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

Issue 2414913004: Cleanup of FullscreenManager. (Closed)
Patch Set: Add comment Created 4 years, 2 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
Index: chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenManager.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenManager.java b/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenManager.java
index 92b03cb0ac2659a113c144712b0a1f81f1aaaee5..feec82bf1380b3ba19051230b2c56b6137079f78 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenManager.java
@@ -9,7 +9,6 @@ import android.view.Window;
import org.chromium.chrome.browser.fullscreen.FullscreenHtmlApiHandler.FullscreenHtmlApiDelegate;
import org.chromium.chrome.browser.tab.Tab;
-import org.chromium.chrome.browser.tabmodel.TabModelSelector;
/**
* Manages the basic fullscreen functionality required by a Tab.
@@ -19,20 +18,17 @@ import org.chromium.chrome.browser.tabmodel.TabModelSelector;
public abstract class FullscreenManager {
public static final int INVALID_TOKEN = -1;
- private final TabModelSelector mModelSelector;
private final FullscreenHtmlApiHandler mHtmlApiHandler;
private boolean mOverlayVideoMode;
+ private Tab mTab;
/**
* Constructs the basic ChromeTab oriented FullscreenManager.
*
* @param window Top-level window to turn to fullscreen.
- * @param modelSelector The model selector providing access to the current tab.
*/
- public FullscreenManager(Window window, TabModelSelector modelSelector) {
- mModelSelector = modelSelector;
+ public FullscreenManager(Window window) {
mHtmlApiHandler = new FullscreenHtmlApiHandler(window, createApiDelegate());
- mOverlayVideoMode = false;
}
/**
@@ -49,13 +45,6 @@ public abstract class FullscreenManager {
}
/**
- * @return The selector for accessing the current Tab.
- */
- protected TabModelSelector getTabModelSelector() {
- return mModelSelector;
- }
-
- /**
* Trigger a temporary showing of the top controls.
*/
public abstract void showControlsTransient();
@@ -132,6 +121,28 @@ public abstract class FullscreenManager {
public abstract void updateContentViewChildrenState();
/**
+ * Sets the currently selected tab for fullscreen.
+ */
+ public void setTab(Tab tab) {
+ if (mTab == tab) return;
+
+ // Remove the fullscreen manager from the old tab before setting the new tab.
+ if (mTab != null) mTab.setFullscreenManager(null);
+
+ mTab = tab;
+
+ // Initialize the new tab with the correct fullscreen manager reference.
+ if (mTab != null) mTab.setFullscreenManager(this);
+ }
+
+ /**
+ * @return The currently selected tab for fullscreen.
+ */
+ public Tab getTab() {
+ return mTab;
+ }
+
+ /**
* Enters or exits persistent fullscreen mode. In this mode, the top controls will be
* permanently hidden until this mode is exited.
*
@@ -140,7 +151,7 @@ public abstract class FullscreenManager {
public void setPersistentFullscreenMode(boolean enabled) {
mHtmlApiHandler.setPersistentFullscreenMode(enabled);
- Tab tab = mModelSelector.getCurrentTab();
+ Tab tab = getTab();
if (tab != null) {
tab.updateFullscreenEnabledState();
}

Powered by Google App Engine
This is Rietveld 408576698