Chromium Code Reviews| 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; |
|
gone
2015/12/09 18:49:03
Had to put this here because trying to reference t
David Trainor- moved to gerrit
2015/12/09 21:44:15
Yay Java! No worries this seems fine.
|
| + new Handler().post(new Runnable() { |
| + @Override |
| + public void run() { |
| + mTabModelSelector.removeObserver(observer); |
| + } |
| + }); |
| + } |
| + }); |
| + } |
| + } |
| } |