Chromium Code Reviews| Index: chrome/android/shell/java/src/org/chromium/chrome/shell/TabManager.java |
| diff --git a/chrome/android/shell/java/src/org/chromium/chrome/shell/TabManager.java b/chrome/android/shell/java/src/org/chromium/chrome/shell/TabManager.java |
| index 183d6770c60ef07a707ba575135a1be1088fa3da..99b04521ee33026215b16c4de24ac2c2e3615e2f 100644 |
| --- a/chrome/android/shell/java/src/org/chromium/chrome/shell/TabManager.java |
| +++ b/chrome/android/shell/java/src/org/chromium/chrome/shell/TabManager.java |
| @@ -6,8 +6,10 @@ package org.chromium.chrome.shell; |
| import android.content.Context; |
| import android.util.AttributeSet; |
| +import android.view.LayoutInflater; |
| import android.view.View; |
| import android.view.ViewGroup; |
| +import android.view.ViewParent; |
| import android.widget.FrameLayout; |
| import android.widget.LinearLayout; |
| @@ -16,6 +18,7 @@ import org.chromium.chrome.browser.Tab; |
| import org.chromium.chrome.browser.tabmodel.EmptyTabModelObserver; |
| import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType; |
| import org.chromium.chrome.browser.tabmodel.TabModel.TabSelectionType; |
| +import org.chromium.chrome.browser.widget.accessibility.AccessibilityTabModelWrapper; |
| import org.chromium.content.browser.ContentVideoViewClient; |
| import org.chromium.content.browser.ContentViewCore; |
| import org.chromium.content.browser.ContentViewRenderView; |
| @@ -40,13 +43,14 @@ public class TabManager extends LinearLayout { |
| private String mStartupUrl = DEFAULT_URL; |
| private ChromeShellTabModelSelector mTabModelSelector; |
| + private AccessibilityTabModelWrapper mTabModelWrapper; |
| private final EmptyTabModelObserver mTabModelObserver = new EmptyTabModelObserver() { |
| @Override |
| public void didSelectTab(Tab tab, TabSelectionType type, int lastId) { |
| assert tab instanceof ChromeShellTab; |
| setCurrentTab((ChromeShellTab) tab); |
| - mTabModelSelector.hideTabSwitcher(); |
| + hideTabSwitcher(); |
| } |
| @Override |
| @@ -80,6 +84,7 @@ public class TabManager extends LinearLayout { |
| mToolbar = (ChromeShellToolbar) findViewById(R.id.toolbar); |
| mToolbar.setTabManager(this); |
| + mTabModelWrapper = mTabModelSelector.getTabModelWrapper(); |
| mContentViewRenderView = new ContentViewRenderView(getContext()) { |
| @Override |
| protected void onReadyToRender() { |
| @@ -183,19 +188,47 @@ public class TabManager extends LinearLayout { |
| contentViewCore.onShow(); |
| } |
| - /** |
| - * Toggles the tab switcher visibility. |
| + /* |
| + * Hide the tab switcher. |
| */ |
| - public void toggleTabSwitcher() { |
| - mTabModelSelector.toggleTabSwitcher(); |
| + public void hideTabSwitcher() { |
| + if (mTabModelWrapper == null) return; |
| + mToolbar.showAddButton(false); |
|
Bernhard Bauer
2014/11/10 13:58:33
Is there some method to where these calls appear?
divya.bansal
2014/11/11 05:18:19
Done.
|
| + ViewParent parent = mTabModelWrapper.getParent(); |
| + if (parent != null) { |
| + assert parent == mContentViewHolder; |
| + mContentViewHolder.removeView(mTabModelWrapper); |
| + } |
| + } |
| + |
| + private void showTabSwitcher() { |
| + if (mTabModelWrapper == null) { |
| + mTabModelWrapper = (AccessibilityTabModelWrapper) LayoutInflater.from( |
| + mContentViewHolder.getContext()).inflate( |
| + R.layout.accessibility_tab_switcher, null); |
| + mTabModelWrapper.setup(null); |
| + mTabModelWrapper.setTabModelSelector(mTabModelSelector); |
| + } |
| + |
| + if (mTabModelWrapper.getParent() == null) { |
| + mContentViewHolder.addView(mTabModelWrapper); |
| + } |
| + mToolbar.showAddButton(true); |
| } |
| public boolean isTabSwitcherVisible() { |
| - return mTabModelSelector.isTabSwitcherVisible(); |
| + return mTabModelWrapper != null && mTabModelWrapper.getParent() == mContentViewHolder; |
| } |
| - public void hideTabSwitcher() { |
| - mTabModelSelector.hideTabSwitcher(); |
| + /** |
| + * Toggles the tab switcher visibility. |
| + */ |
| + public void toggleTabSwitcher() { |
| + if (!isTabSwitcherVisible()) { |
| + showTabSwitcher(); |
| + } else { |
| + hideTabSwitcher(); |
| + } |
| } |
| /** |