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

Side by Side Diff: chrome/android/shell/java/src/org/chromium/chrome/shell/ChromeShellTabModelSelector.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: Adding Review Comments 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.chrome.shell; 5 package org.chromium.chrome.shell;
6 6
7 import android.view.LayoutInflater;
8 import android.view.ViewGroup; 7 import android.view.ViewGroup;
9 import android.view.ViewParent;
10 8
11 import org.chromium.chrome.browser.Tab; 9 import org.chromium.chrome.browser.Tab;
12 import org.chromium.chrome.browser.tabmodel.EmptyTabModel; 10 import org.chromium.chrome.browser.tabmodel.EmptyTabModel;
13 import org.chromium.chrome.browser.tabmodel.TabModel; 11 import org.chromium.chrome.browser.tabmodel.TabModel;
14 import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType; 12 import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType;
15 import org.chromium.chrome.browser.tabmodel.TabModel.TabSelectionType; 13 import org.chromium.chrome.browser.tabmodel.TabModel.TabSelectionType;
16 import org.chromium.chrome.browser.tabmodel.TabModelDelegate; 14 import org.chromium.chrome.browser.tabmodel.TabModelDelegate;
17 import org.chromium.chrome.browser.tabmodel.TabModelOrderController; 15 import org.chromium.chrome.browser.tabmodel.TabModelOrderController;
18 import org.chromium.chrome.browser.tabmodel.TabModelSelectorBase; 16 import org.chromium.chrome.browser.tabmodel.TabModelSelectorBase;
19 import org.chromium.chrome.browser.widget.accessibility.AccessibilityTabModelWra pper;
20 import org.chromium.content.browser.ContentVideoViewClient; 17 import org.chromium.content.browser.ContentVideoViewClient;
21 import org.chromium.content.browser.ContentViewClient; 18 import org.chromium.content.browser.ContentViewClient;
22 import org.chromium.content_public.browser.LoadUrlParams; 19 import org.chromium.content_public.browser.LoadUrlParams;
23 import org.chromium.ui.base.WindowAndroid; 20 import org.chromium.ui.base.WindowAndroid;
24 21
25 /** 22 /**
26 * Basic implementation of TabModelSelector for use in ChromeShell. Only has a r egular TabModel, 23 * Basic implementation of TabModelSelector for use in ChromeShell. Only has a r egular TabModel,
27 * no incognito one. 24 * no incognito one.
28 */ 25 */
29 class ChromeShellTabModelSelector extends TabModelSelectorBase { 26 class ChromeShellTabModelSelector extends TabModelSelectorBase {
30 27
31 private final WindowAndroid mWindow; 28 private final WindowAndroid mWindow;
32 private final ContentVideoViewClient mContentVideoViewClient; 29 private final ContentVideoViewClient mContentVideoViewClient;
33 private final ViewGroup mParent; 30 private final ViewGroup mParent;
34 private final TabModelOrderController mOrderController; 31 private final TabModelOrderController mOrderController;
35 32
36 private AccessibilityTabModelWrapper mTabModelWrapper;
37 private TabManager mTabManager; 33 private TabManager mTabManager;
38 34
39 public ChromeShellTabModelSelector( 35 public ChromeShellTabModelSelector(
40 WindowAndroid window, ContentVideoViewClient videoViewClient, ViewGr oup parent, 36 WindowAndroid window, ContentVideoViewClient videoViewClient, ViewGr oup parent,
41 TabManager tabManager) { 37 TabManager tabManager) {
42 mWindow = window; 38 mWindow = window;
43 mContentVideoViewClient = videoViewClient; 39 mContentVideoViewClient = videoViewClient;
44 mParent = parent; 40 mParent = parent;
45 mOrderController = new TabModelOrderController(this); 41 mOrderController = new TabModelOrderController(this);
46 mTabManager = tabManager; 42 mTabManager = tabManager;
(...skipping 14 matching lines...) Expand all
61 public void requestToShowTab(Tab tab, TabSelectionType type) { 57 public void requestToShowTab(Tab tab, TabSelectionType type) {
62 } 58 }
63 59
64 @Override 60 @Override
65 public boolean isSessionRestoreInProgress() { 61 public boolean isSessionRestoreInProgress() {
66 return false; 62 return false;
67 } 63 }
68 64
69 @Override 65 @Override
70 public boolean isInOverviewMode() { 66 public boolean isInOverviewMode() {
71 return isTabSwitcherVisible(); 67 return mTabManager.isTabSwitcherVisible();
72 } 68 }
73 69
74 @Override 70 @Override
75 public TabModel getModel(boolean incognito) { 71 public TabModel getModel(boolean incognito) {
76 return ChromeShellTabModelSelector.this.getModel(incognito); 72 return ChromeShellTabModelSelector.this.getModel(incognito);
77 } 73 }
78 74
79 @Override 75 @Override
80 public TabModel getCurrentModel() { 76 public TabModel getCurrentModel() {
81 return ChromeShellTabModelSelector.this.getCurrentModel(); 77 return ChromeShellTabModelSelector.this.getCurrentModel();
82 } 78 }
83 }; 79 };
84 TabModel tabModel = new ChromeShellTabModel(mOrderController, tabModelDe legate); 80 TabModel tabModel = new ChromeShellTabModel(mOrderController, tabModelDe legate);
85 initialize(false, tabModel, EmptyTabModel.getInstance()); 81 initialize(false, tabModel, EmptyTabModel.getInstance());
86 } 82 }
87 83
88 @Override 84 @Override
89 public Tab openNewTab(LoadUrlParams loadUrlParams, TabLaunchType type, Tab p arent, 85 public Tab openNewTab(LoadUrlParams loadUrlParams, TabLaunchType type, Tab p arent,
90 boolean incognito) { 86 boolean incognito) {
91 assert !incognito; 87 assert !incognito;
92 ContentViewClient client = new ContentViewClient() { 88 ContentViewClient client = new ContentViewClient() {
93 @Override 89 @Override
94 public ContentVideoViewClient getContentVideoViewClient() { 90 public ContentVideoViewClient getContentVideoViewClient() {
95 return mContentVideoViewClient; 91 return mContentVideoViewClient;
96 } 92 }
97 }; 93 };
98 ChromeShellTab tab = new ChromeShellTab( 94 ChromeShellTab tab = new ChromeShellTab(
99 mParent.getContext(), loadUrlParams.getUrl(), mWindow, client, m TabManager); 95 mParent.getContext(), loadUrlParams.getUrl(), mWindow, client, m TabManager);
Bernhard Bauer 2014/11/11 11:34:02 This is the only place where we use |mParent|, so
divya.bansal 2014/11/12 06:45:47 Done.
100 int index = mOrderController.determineInsertionIndex(type, tab); 96 int index = mOrderController.determineInsertionIndex(type, tab);
101 TabModel tabModel = getCurrentModel(); 97 TabModel tabModel = getCurrentModel();
102 tabModel.addTab(tab, index, type); 98 tabModel.addTab(tab, index, type);
103 tabModel.setIndex(index, TabSelectionType.FROM_NEW); 99 tabModel.setIndex(index, TabSelectionType.FROM_NEW);
104 return tab; 100 return tab;
105 } 101 }
106 102
107 /**
108 * Toggles the tab switcher visibility.
109 */
110 public void toggleTabSwitcher() {
111 if (!isTabSwitcherVisible()) {
112 showTabSwitcher();
113 } else {
114 hideTabSwitcher();
115 }
116 }
117
118 /*
119 * Hide the tab switcher.
120 */
121 public void hideTabSwitcher() {
122 if (mTabModelWrapper == null) return;
123 ViewParent parent = mTabModelWrapper.getParent();
124 if (parent != null) {
125 assert parent == mParent;
126 mParent.removeView(mTabModelWrapper);
127 }
128 }
129
130 private void showTabSwitcher() {
131 if (mTabModelWrapper == null) {
132 mTabModelWrapper = (AccessibilityTabModelWrapper) LayoutInflater.fro m(
133 mParent.getContext()).inflate(R.layout.accessibility_tab_swi tcher, null);
134 mTabModelWrapper.setup(null);
135 mTabModelWrapper.setTabModelSelector(this);
136 }
137
138 if (mTabModelWrapper.getParent() == null) {
139 mParent.addView(mTabModelWrapper);
140 }
141 }
142
143 public boolean isTabSwitcherVisible() {
144 return mTabModelWrapper != null && mTabModelWrapper.getParent() == mPare nt;
145 }
146
147 } 103 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698