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

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

Issue 2440643002: Remove TabModelSelector's dependency on ChromeFullscreenManager. (Closed)
Patch Set: file move 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/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 38ef2a8c1083db00c8cc76c5009e36e523fe0543..f4eb5a64cf2722e2ac4e0a1404dc8b78e982f51d 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
@@ -32,6 +32,9 @@ import org.chromium.base.VisibleForTesting;
import org.chromium.base.library_loader.LibraryLoader;
import org.chromium.chrome.browser.fullscreen.FullscreenHtmlApiHandler.FullscreenHtmlApiDelegate;
import org.chromium.chrome.browser.tab.Tab;
+import org.chromium.chrome.browser.tabmodel.TabModel.TabSelectionType;
+import org.chromium.chrome.browser.tabmodel.TabModelSelector;
+import org.chromium.chrome.browser.tabmodel.TabModelSelectorTabModelObserver;
import org.chromium.chrome.browser.widget.ControlContainer;
import org.chromium.content.browser.ContentVideoView;
import org.chromium.content.browser.ContentViewCore;
@@ -61,6 +64,9 @@ public class ChromeFullscreenManager
private final Handler mHandler;
private final int mControlContainerHeight;
+ private final TabModelSelector mTabModelSelector;
+ private final TabModelSelectorTabModelObserver mTabModelObserver;
+
private final ControlContainer mControlContainer;
private long mMinShowNotificationMs = MINIMUM_SHOW_DURATION_MS;
@@ -181,12 +187,14 @@ public class ChromeFullscreenManager
* Creates an instance of the fullscreen mode manager.
* @param activity The activity that supports fullscreen.
* @param controlContainer Container holding the controls (Toolbar).
+ * @param modelSelector The tab model selector that will be monitored for tab changes.
* @param resControlContainerHeight The dimension resource ID for the control container height.
* @param supportsBrowserOverride Whether we want to disable the token system used by the
browser.
*/
public ChromeFullscreenManager(Activity activity, ControlContainer controlContainer,
- int resControlContainerHeight, boolean supportsBrowserOverride) {
+ TabModelSelector modelSelector, int resControlContainerHeight,
+ boolean supportsBrowserOverride) {
super(activity.getWindow());
mActivity = activity;
@@ -194,6 +202,29 @@ public class ChromeFullscreenManager
((BaseChromiumApplication) activity.getApplication())
.registerWindowFocusChangedListener(this);
+ mTabModelSelector = modelSelector;
+ mTabModelObserver = new TabModelSelectorTabModelObserver(mTabModelSelector) {
+ @Override
+ public void tabClosureCommitted(Tab tab) {
+ setTab(mTabModelSelector.getCurrentTab());
+ }
+
+ @Override
+ public void allTabsClosureCommitted() {
+ setTab(mTabModelSelector.getCurrentTab());
+ }
+
+ @Override
+ public void tabRemoved(Tab tab) {
+ setTab(mTabModelSelector.getCurrentTab());
+ }
+
+ @Override
+ public void didSelectTab(Tab tab, TabSelectionType type, int lastId) {
+ setTab(mTabModelSelector.getCurrentTab());
+ }
+ };
+
mWindow = activity.getWindow();
mHandler = new FullscreenHandler(this);
assert controlContainer != null;
@@ -220,6 +251,8 @@ public class ChromeFullscreenManager
ApplicationStatus.unregisterActivityStateListener(this);
((BaseChromiumApplication) mWindow.getContext().getApplicationContext())
.unregisterWindowFocusChangedListener(this);
+
+ mTabModelObserver.destroy();
}
}

Powered by Google App Engine
This is Rietveld 408576698