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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManager.java

Issue 1506203009: [Merge] Show Incognito tab switcher button on startup (Closed) Base URL: https://chromium.googlesource.com/a/chromium/src.git@2564
Patch Set: Created 5 years 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/compositor/layouts/LayoutManager.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManager.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManager.java
index c37a9d9038f19797b2c9cd91ff04a47924fb9d5c..7885266fb69d53ff38365068d525d1de6b98da51 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManager.java
@@ -7,6 +7,7 @@ package org.chromium.chrome.browser.compositor.layouts;
import android.graphics.Point;
import android.graphics.Rect;
import android.graphics.RectF;
+import android.os.Handler;
import android.os.SystemClock;
import android.view.MotionEvent;
import android.view.View;
@@ -30,6 +31,7 @@ import org.chromium.chrome.browser.contextualsearch.ContextualSearchManagementDe
import org.chromium.chrome.browser.dom_distiller.ReaderModeManagerDelegate;
import org.chromium.chrome.browser.fullscreen.ChromeFullscreenManager;
import org.chromium.chrome.browser.fullscreen.FullscreenManager;
+import org.chromium.chrome.browser.tabmodel.EmptyTabModelSelectorObserver;
import org.chromium.chrome.browser.tabmodel.TabCreatorManager;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.content.browser.SPenSupport;
@@ -245,6 +247,8 @@ public abstract class LayoutManager implements LayoutUpdateHost, LayoutProvider,
mContentContainer = androidContentContainer;
if (mNextActiveLayout != null) startShowing(mNextActiveLayout, true);
+
+ updateLayoutForTabModelSelector();
}
/**
@@ -525,4 +529,30 @@ public abstract class LayoutManager implements LayoutUpdateHost, LayoutProvider,
return Orientation.PORTRAIT;
}
}
+
+ /**
+ * Updates the Layout for the state of the {@link TabModelSelector} after initialization.
+ * If the TabModelSelector is not yet initialized when this function is called, a
+ * {@link TabModelSelectorObserver} is created to listen for when it is ready.
+ */
+ private void updateLayoutForTabModelSelector() {
+ if (mTabModelSelector.isTabStateInitialized() && getActiveLayout() != null) {
+ getActiveLayout().onTabStateInitialized();
+ } else {
+ mTabModelSelector.addObserver(new EmptyTabModelSelectorObserver() {
+ @Override
+ public void onTabStateInitialized() {
+ if (getActiveLayout() != null) getActiveLayout().onTabStateInitialized();
+
+ final EmptyTabModelSelectorObserver observer = this;
+ new Handler().post(new Runnable() {
+ @Override
+ public void run() {
+ mTabModelSelector.removeObserver(observer);
+ }
+ });
+ }
+ });
+ }
+ }
}

Powered by Google App Engine
This is Rietveld 408576698