Skip to content

Commit c0b9245

Browse files
Yusuf OzuysalYusuf Ozuysal
Yusuf Ozuysal
authored and
Yusuf Ozuysal
committed
Move tab_list_ui/ code into its own DFM
BUG=925126 (cherry picked from commit 02d5848947400d769890ab3bfdf8eb66cd731c4e) Change-Id: I7e0f676f4e9e332945d70bedcbcb6f84665a3c80 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1475881 Reviewed-by: Tommy Nyquist <[email protected]> Reviewed-by: Ilya Sherman <[email protected]> Reviewed-by: Ted Choc <[email protected]> Reviewed-by: Theresa <[email protected]> Reviewed-by: Tibor Goldschwendt <[email protected]> Commit-Queue: Yusuf Ozuysal <[email protected]> Cr-Original-Commit-Position: refs/heads/master@{#639609} Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1519092 Reviewed-by: Yusuf Ozuysal <[email protected]> Cr-Commit-Position: refs/branch-heads/3729@{#62} Cr-Branched-From: d4a8972-refs/heads/master@{#638880}
1 parent 603ef46 commit c0b9245

File tree

53 files changed

+498
-214
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+498
-214
lines changed

chrome/android/BUILD.gn

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ import("//build/config/python.gni")
99
import("//build/util/process_version.gni")
1010
import("//chrome/android/chrome_common_shared_library.gni")
1111
import("//chrome/android/chrome_public_apk_tmpl.gni")
12+
import("//chrome/android/features/tab_ui/tab_management_java_sources.gni")
13+
import("//chrome/android/features/tab_ui/tab_ui_module_tmpl.gni")
1214
import("//chrome/android/features/vr/public_vr_java_sources.gni")
1315
import("//chrome/android/feed/feed_java_sources.gni")
1416
import("//chrome/android/monochrome_android_manifest_jinja_variables.gni")
@@ -420,6 +422,9 @@ android_library("chrome_java") {
420422

421423
java_files += public_vr_java_sources
422424

425+
# Include sources from public_tab_management_java_sources.gni.
426+
java_files += public_tab_management_java_sources
427+
423428
if (enable_vr) {
424429
deps += [
425430
":chrome_vr_java_resources",
@@ -585,6 +590,7 @@ junit_binary("chrome_junit_tests") {
585590
"//base:base_java",
586591
"//base:base_java_test_support",
587592
"//base:base_junit_test_support",
593+
"//chrome/android/features/tab_ui:java",
588594
"//chrome/android/webapk/libs/client:client_java",
589595
"//chrome/android/webapk/libs/common:common_java",
590596
"//chrome/android/webapk/test:junit_test_support",
@@ -687,6 +693,7 @@ android_library("chrome_test_java") {
687693
"//base:base_java_test_support",
688694
"//chrome/android:app_hooks_java",
689695
"//chrome/android:chrome_java",
696+
"//chrome/android/features/tab_ui:java",
690697
"//chrome/android/third_party/compositor_animator:compositor_animator_java",
691698
"//chrome/android/webapk/libs/client:client_java",
692699
"//chrome/android/webapk/libs/common:common_java",
@@ -2033,6 +2040,19 @@ template("monochrome_public_bundle_tmpl") {
20332040
}
20342041
}
20352042

2043+
tab_ui_module_tmpl("${target_name}__tab_ui_bundle_module") {
2044+
manifest_package = manifest_package
2045+
module_name = "TabUiMonochromePublic"
2046+
base_module_target = ":$_base_module_target_name"
2047+
if (_is_trichrome) {
2048+
version_code = trichrome_version_code
2049+
} else {
2050+
version_code = monochrome_version_code
2051+
}
2052+
version_name = chrome_version_name
2053+
uncompress_shared_libraries = true
2054+
}
2055+
20362056
android_app_bundle(target_name) {
20372057
if (_is_trichrome) {
20382058
add_native_lib_placeholders_for_base_module = true
@@ -2049,7 +2069,7 @@ template("monochrome_public_bundle_tmpl") {
20492069

20502070
extra_modules = []
20512071
if (modularize_ar) {
2052-
extra_modules = [
2072+
extra_modules += [
20532073
{
20542074
name = "ar"
20552075
module_target = ":${target_name}__ar_bundle_module"
@@ -2064,6 +2084,12 @@ template("monochrome_public_bundle_tmpl") {
20642084
},
20652085
]
20662086
}
2087+
extra_modules += [
2088+
{
2089+
name = "tab_ui"
2090+
module_target = ":${target_name}__tab_ui_bundle_module"
2091+
},
2092+
]
20672093
}
20682094
}
20692095

chrome/android/features/module_names_to_package_ids.gni

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@
22
resource_packages_id_mapping = [
33
"ar=0x7e",
44
"vr=0x7d",
5+
"tab_ui=0x7c",
56
]
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!-- Copyright 2019 The Chromium Authors. All rights reserved.
3+
Use of this source code is governed by a BSD-style license that can be
4+
found in the LICENSE file. -->
5+
6+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
7+
xmlns:dist="http://schemas.android.com/apk/distribution"
8+
featureSplit="tab_ui"
9+
package="{{manifest_package}}">
10+
11+
<uses-sdk
12+
android:minSdkVersion="21"
13+
android:targetSdkVersion="{{target_sdk_version}}" />
14+
<application></application>
15+
<dist:module
16+
dist:onDemand="true"
17+
dist:title="@string/tab_management_module_title">
18+
<dist:fusing dist:include="false" />
19+
</dist:module>
20+
</manifest>
21+
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# Copyright 2019 The Chromium Authors. All rights reserved.
2+
# Use of this source code is governed by a BSD-style license that can be
3+
# found in the LICENSE file.
4+
5+
import("//build/config/android/rules.gni")
6+
import("//chrome/common/features.gni")
7+
8+
android_library("java") {
9+
java_files = [
10+
"java/src/org/chromium/chrome/browser/tasks/tab_groups/TabGroupUtils.java",
11+
"java/src/org/chromium/chrome/browser/tasks/tab_management/GridTabSwitcherCoordinator.java",
12+
"java/src/org/chromium/chrome/browser/tasks/tab_management/GridTabSwitcherMediator.java",
13+
"java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridContainerViewBinder.java",
14+
"java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridSheetCoordinator.java",
15+
"java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridSheetMediator.java",
16+
"java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridSheetContent.java",
17+
"java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridSheetProperties.java",
18+
"java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridSheetToolbarCoordinator.java",
19+
"java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridSheetViewBinder.java",
20+
"java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java",
21+
"java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewHolder.java",
22+
"java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator.java",
23+
"java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java",
24+
"java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiToolbarView.java",
25+
"java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiToolbarViewBinder.java",
26+
"java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerProperties.java",
27+
"java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java",
28+
"java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java",
29+
"java/src/org/chromium/chrome/browser/tasks/tab_management/TabListModel.java",
30+
"java/src/org/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView.java",
31+
"java/src/org/chromium/chrome/browser/tasks/tab_management/TabManagementModuleImpl.java",
32+
"java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java",
33+
"java/src/org/chromium/chrome/browser/tasks/tab_management/TabStripToolbarCoordinator.java",
34+
"java/src/org/chromium/chrome/browser/tasks/tab_management/TabStripToolbarViewProperties.java",
35+
"java/src/org/chromium/chrome/browser/tasks/tab_management/TabStripViewBinder.java",
36+
"java/src/org/chromium/chrome/browser/tasks/tab_management/TabStripViewHolder.java",
37+
]
38+
39+
classpath_deps = [
40+
"//base:base_java",
41+
"//chrome/android:chrome_java",
42+
"//chrome/android:chrome_strings_grd",
43+
"//chrome/android:ui_locale_string_resources",
44+
"//chrome/app:java_strings_grd",
45+
"//components/feature_engagement:feature_engagement_java",
46+
"//components/policy/android:policy_java",
47+
"//content/public/android:content_java_resources",
48+
"//content/public/android:content_java",
49+
"//third_party/android_deps:android_arch_lifecycle_common_java",
50+
"//third_party/android_deps:android_arch_lifecycle_runtime_java",
51+
"//third_party/android_deps:android_support_annotations_java",
52+
"//third_party/android_deps:android_support_compat_java",
53+
"//third_party/android_deps:android_support_v13_java",
54+
"//third_party/android_deps:android_support_v7_appcompat_java",
55+
"//third_party/android_deps:android_support_v7_recyclerview_java",
56+
"//ui/android:ui_java",
57+
]
58+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
include_rules = [
2+
"+components/feature_engagement/public/android/java/src/org/chromium/components/feature_engagement",
3+
"+components/module_installer",
4+
5+
"+content/public/android/java/src/org/chromium/content_public/browser",
6+
]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
// Copyright 2019 The Chromium Authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style license that can be
3+
// found in the LICENSE file.
4+
5+
package org.chromium.chrome.browser.tasks.tab_management;
6+
7+
import org.chromium.chrome.browser.compositor.layouts.OverviewModeController;
8+
9+
/**
10+
* Interface for the Grid Tab Switcher.
11+
*/
12+
public interface GridTabSwitcher { OverviewModeController getOverviewModeController(); }

chrome/android/java/src/org/chromium/chrome/browser/tasks/tab_list_ui/GridTabSwitcherCoordinator.java renamed to chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/GridTabSwitcherCoordinator.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// Use of this source code is governed by a BSD-style license that can be
33
// found in the LICENSE file.
44

5-
package org.chromium.chrome.browser.tasks.tab_list_ui;
5+
package org.chromium.chrome.browser.tasks.tab_management;
66

77
import android.content.Context;
88

@@ -26,7 +26,7 @@
2626
* Parent coordinator that is responsible for showing a grid of tabs for the main TabSwitcher UI.
2727
*/
2828
public class GridTabSwitcherCoordinator
29-
implements Destroyable, GridTabSwitcherMediator.ResetHandler {
29+
implements Destroyable, GridTabSwitcher, GridTabSwitcherMediator.ResetHandler {
3030
private final PropertyModelChangeProcessor mContainerViewChangeProcessor;
3131
private final ActivityLifecycleDispatcher mLifecycleDispatcher;
3232
private final TabListCoordinator mTabGridCoordinator;
@@ -55,6 +55,7 @@ public GridTabSwitcherCoordinator(Context context,
5555
* @return OverviewModeController implementation that will can be used for controlling
5656
* OverviewMode changes.
5757
*/
58+
@Override
5859
public OverviewModeController getOverviewModeController() {
5960
return mMediator;
6061
}

chrome/android/java/src/org/chromium/chrome/browser/tasks/tab_list_ui/GridTabSwitcherMediator.java renamed to chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/GridTabSwitcherMediator.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22
// Use of this source code is governed by a BSD-style license that can be
33
// found in the LICENSE file.
44

5-
package org.chromium.chrome.browser.tasks.tab_list_ui;
5+
package org.chromium.chrome.browser.tasks.tab_management;
66

7-
import static org.chromium.chrome.browser.tasks.tab_list_ui.TabListContainerProperties.ANIMATE_VISIBILITY_CHANGES;
8-
import static org.chromium.chrome.browser.tasks.tab_list_ui.TabListContainerProperties.BOTTOM_CONTROLS_HEIGHT;
9-
import static org.chromium.chrome.browser.tasks.tab_list_ui.TabListContainerProperties.INITIAL_SCROLL_INDEX;
10-
import static org.chromium.chrome.browser.tasks.tab_list_ui.TabListContainerProperties.IS_INCOGNITO;
11-
import static org.chromium.chrome.browser.tasks.tab_list_ui.TabListContainerProperties.IS_VISIBLE;
12-
import static org.chromium.chrome.browser.tasks.tab_list_ui.TabListContainerProperties.TOP_CONTROLS_HEIGHT;
13-
import static org.chromium.chrome.browser.tasks.tab_list_ui.TabListContainerProperties.VISIBILITY_LISTENER;
7+
import static org.chromium.chrome.browser.tasks.tab_management.TabListContainerProperties.ANIMATE_VISIBILITY_CHANGES;
8+
import static org.chromium.chrome.browser.tasks.tab_management.TabListContainerProperties.BOTTOM_CONTROLS_HEIGHT;
9+
import static org.chromium.chrome.browser.tasks.tab_management.TabListContainerProperties.INITIAL_SCROLL_INDEX;
10+
import static org.chromium.chrome.browser.tasks.tab_management.TabListContainerProperties.IS_INCOGNITO;
11+
import static org.chromium.chrome.browser.tasks.tab_management.TabListContainerProperties.IS_VISIBLE;
12+
import static org.chromium.chrome.browser.tasks.tab_management.TabListContainerProperties.TOP_CONTROLS_HEIGHT;
13+
import static org.chromium.chrome.browser.tasks.tab_management.TabListContainerProperties.VISIBILITY_LISTENER;
1414

1515
import org.chromium.chrome.browser.compositor.layouts.OverviewModeController;
1616
import org.chromium.chrome.browser.fullscreen.ChromeFullscreenManager;
@@ -101,7 +101,6 @@ public void onTabModelSelected(TabModel newModel, TabModel oldModel) {
101101
mTabModelSelector.addObserver(mTabModelSelectorObserver);
102102

103103
mTabModelObserver = new TabModelSelectorTabModelObserver(mTabModelSelector) {
104-
105104
@Override
106105
public void didSelectTab(Tab tab, int type, int lastId) {
107106
if (type == TabSelectionType.FROM_CLOSE || mShouldIgnoreNextSelect) {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
// Copyright 2018 The Chromium Authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style license that can be
3+
// found in the LICENSE file.
4+
5+
package org.chromium.chrome.browser.tasks.tab_management;
6+
7+
import org.chromium.chrome.R;
8+
9+
/**
10+
* Hacky class to avoid lint errors for resources called on the module.
11+
*/
12+
/* package */ class SilenceLintErrors {
13+
// TODO(yusufo): Add these resources to the DFM
14+
private int[] mRes =
15+
new int[] {R.dimen.tab_grid_favicon_size, R.string.tab_management_module_title,
16+
R.string.iph_tab_groups_quickly_compare_pages_text,
17+
R.string.iph_tab_groups_tap_to_see_another_tab_text,
18+
R.string.iph_tab_groups_your_tabs_together_text,
19+
R.string.bottom_tab_grid_description, R.string.bottom_tab_grid_opened_half,
20+
R.string.bottom_tab_grid_opened_full, R.string.bottom_tab_grid_closed,
21+
R.dimen.tab_list_selected_inset, R.layout.tab_strip_item,
22+
R.drawable.selected_tab_background, R.drawable.tab_grid_card_background,
23+
R.layout.tab_grid_card_item, R.layout.tab_list_recycler_view_layout,
24+
R.layout.bottom_tab_grid_toolbar, R.string.bottom_tab_grid_new_tab,
25+
R.string.bottom_tab_grid_new_tab, R.plurals.bottom_tab_grid_title_placeholder,
26+
R.string.iph_tab_groups_tap_to_see_another_tab_accessibility_text,
27+
R.string.accessibility_bottom_tab_strip_expand_tab_sheet,
28+
R.layout.bottom_tab_strip_toolbar};
29+
30+
private SilenceLintErrors() {}
31+
}

chrome/android/java/src/org/chromium/chrome/browser/tasks/tab_list_ui/TabGridContainerViewBinder.java renamed to chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridContainerViewBinder.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22
// Use of this source code is governed by a BSD-style license that can be
33
// found in the LICENSE file.
44

5-
package org.chromium.chrome.browser.tasks.tab_list_ui;
5+
package org.chromium.chrome.browser.tasks.tab_management;
66

7-
import static org.chromium.chrome.browser.tasks.tab_list_ui.TabListContainerProperties.ANIMATE_VISIBILITY_CHANGES;
8-
import static org.chromium.chrome.browser.tasks.tab_list_ui.TabListContainerProperties.BOTTOM_CONTROLS_HEIGHT;
9-
import static org.chromium.chrome.browser.tasks.tab_list_ui.TabListContainerProperties.INITIAL_SCROLL_INDEX;
10-
import static org.chromium.chrome.browser.tasks.tab_list_ui.TabListContainerProperties.IS_INCOGNITO;
11-
import static org.chromium.chrome.browser.tasks.tab_list_ui.TabListContainerProperties.IS_VISIBLE;
12-
import static org.chromium.chrome.browser.tasks.tab_list_ui.TabListContainerProperties.TOP_CONTROLS_HEIGHT;
13-
import static org.chromium.chrome.browser.tasks.tab_list_ui.TabListContainerProperties.VISIBILITY_LISTENER;
7+
import static org.chromium.chrome.browser.tasks.tab_management.TabListContainerProperties.ANIMATE_VISIBILITY_CHANGES;
8+
import static org.chromium.chrome.browser.tasks.tab_management.TabListContainerProperties.BOTTOM_CONTROLS_HEIGHT;
9+
import static org.chromium.chrome.browser.tasks.tab_management.TabListContainerProperties.INITIAL_SCROLL_INDEX;
10+
import static org.chromium.chrome.browser.tasks.tab_management.TabListContainerProperties.IS_INCOGNITO;
11+
import static org.chromium.chrome.browser.tasks.tab_management.TabListContainerProperties.IS_VISIBLE;
12+
import static org.chromium.chrome.browser.tasks.tab_management.TabListContainerProperties.TOP_CONTROLS_HEIGHT;
13+
import static org.chromium.chrome.browser.tasks.tab_management.TabListContainerProperties.VISIBILITY_LISTENER;
1414

1515
import android.widget.FrameLayout;
1616

chrome/android/java/src/org/chromium/chrome/browser/tasks/tab_list_ui/BottomTabGridSheetContent.java renamed to chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridSheetContent.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// Use of this source code is governed by a BSD-style license that can be
33
// found in the LICENSE file.
44

5-
package org.chromium.chrome.browser.tasks.tab_list_ui;
5+
package org.chromium.chrome.browser.tasks.tab_management;
66

77
import android.view.View;
88

@@ -11,16 +11,16 @@
1111
import org.chromium.chrome.browser.widget.bottomsheet.BottomSheet.ContentPriority;
1212

1313
/** A {@link BottomSheetContent} that displays tab grid. **/
14-
public class BottomTabGridSheetContent implements BottomSheetContent {
14+
public class TabGridSheetContent implements BottomSheetContent {
1515
private final TabListRecyclerView mRecyclerView;
1616
private final View mToolbarView;
1717

1818
/**
19-
* Construct a new {@link BottomTabGridSheetContent}.
19+
* Construct a new {@link TabGridSheetContent}.
2020
* @param recyclerView The {@link TabListRecyclerView} holding the tab grid.
2121
* @param toolbarView The toolbar {@link View} to use.}
2222
*/
23-
BottomTabGridSheetContent(TabListRecyclerView recyclerView, View toolbarView) {
23+
TabGridSheetContent(TabListRecyclerView recyclerView, View toolbarView) {
2424
mRecyclerView = recyclerView;
2525
mToolbarView = toolbarView;
2626
}

0 commit comments

Comments
 (0)