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

Unified Diff: chrome/android/shell/java/src/org/chromium/chrome/shell/TabManager.java

Issue 683203006: Adding option for adding new tab in tab manager for chrome shell. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Review Changes Created 6 years, 1 month 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/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();
+ }
}
/**

Powered by Google App Engine
This is Rietveld 408576698