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..9c45621a67f2c2c085fdb772fb14a68d879cb98c 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 |
| @@ -183,19 +187,47 @@ public class TabManager extends LinearLayout { |
| contentViewCore.onShow(); |
| } |
| - /** |
| - * Toggles the tab switcher visibility. |
| + /* |
|
Bernhard Bauer
2014/11/11 09:08:22
Add a second asterisk here to make this a Javadoc
divya.bansal
2014/11/11 09:29:51
Done.
|
| + * Hide the tab switcher. |
| */ |
| - public void toggleTabSwitcher() { |
| - mTabModelSelector.toggleTabSwitcher(); |
| + public void hideTabSwitcher() { |
| + if (mTabModelWrapper == null) return; |
| + ViewParent parent = mTabModelWrapper.getParent(); |
| + if (parent != null) { |
| + assert parent == mContentViewHolder; |
| + mContentViewHolder.removeView(mTabModelWrapper); |
| + } |
| + mToolbar.showAddButton(false); |
| + } |
| + |
| + 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() { |
|
Bernhard Bauer
2014/11/11 09:08:22
Please add a Javadoc comment.
divya.bansal
2014/11/11 09:29:51
Done.
|
| - 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(); |
| + } |
| } |
| /** |