Commit c90e7c4d authored by Mei Liang's avatar Mei Liang Committed by Commit Bot

Move LayoutStateProvider interface to Layout module

Change-Id: If09f238bd56ab67ac37f86e576b3c20f83300a80
Bug: 1108496
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2487881
Commit-Queue: Mei Liang <meiliang@chromium.org>
Reviewed-by: default avatarTheresa  <twellington@chromium.org>
Reviewed-by: default avatarMatthew Jones <mdjones@chromium.org>
Cr-Commit-Position: refs/heads/master@{#820127}
parent c2c7985b
......@@ -345,6 +345,7 @@ android_library("chrome_java") {
"//chrome/browser/ui/android/appmenu:java",
"//chrome/browser/ui/android/default_browser_promo:java",
"//chrome/browser/ui/android/favicon:java",
"//chrome/browser/ui/android/layouts:java",
"//chrome/browser/ui/android/native_page:java",
"//chrome/browser/ui/messages/android:java",
"//chrome/browser/uid/android:java",
......@@ -834,6 +835,7 @@ junit_binary("chrome_junit_tests") {
"//chrome/browser/ui/android/default_browser_promo:java",
"//chrome/browser/ui/android/default_browser_promo:junit",
"//chrome/browser/ui/android/favicon:java",
"//chrome/browser/ui/android/layouts:java",
"//chrome/browser/ui/android/native_page:java",
"//chrome/browser/ui/messages/android:java",
"//chrome/browser/ui/messages/android:junit",
......@@ -1055,6 +1057,7 @@ android_library("chrome_test_java") {
"//chrome/browser/ui/android/default_browser_promo:java",
"//chrome/browser/ui/android/default_browser_promo:javatests",
"//chrome/browser/ui/android/favicon:java",
"//chrome/browser/ui/android/layouts:java",
"//chrome/browser/ui/android/native_page:java",
"//chrome/browser/ui/messages/android:java",
"//chrome/browser/uid/android:java",
......
......@@ -12,6 +12,7 @@ include_rules = [
"+chrome/browser/flags/android",
"+chrome/browser/fullscreen/android",
"+chrome/browser/image_descriptions",
"+chrome/browser/ui/android/layouts/java",
"+chrome/browser/notifications",
"+chrome/browser/password_manager/android",
"+chrome/browser/policy/android",
......
......@@ -299,7 +299,6 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerHost.java",
"java/src/org/chromium/chrome/browser/compositor/layouts/LayoutProvider.java",
"java/src/org/chromium/chrome/browser/compositor/layouts/LayoutRenderHost.java",
"java/src/org/chromium/chrome/browser/compositor/layouts/LayoutStateProvider.java",
"java/src/org/chromium/chrome/browser/compositor/layouts/LayoutUpdateHost.java",
"java/src/org/chromium/chrome/browser/compositor/layouts/OverviewModeBehavior.java",
"java/src/org/chromium/chrome/browser/compositor/layouts/OverviewModeController.java",
......
include_rules = [
"+chrome/browser/ui/android/layouts/java",
"+chrome/browser/tabmodel/android/java",
"+chrome/browser/tabpersistence/android/java",
"+chrome/browser/profiles/android/java",
......
......@@ -78,6 +78,7 @@ android_library("java") {
"//chrome/browser/profiles/android:java",
"//chrome/browser/tab:java",
"//chrome/browser/tabmodel:java",
"//chrome/browser/ui/android/layouts:java",
"//chrome/browser/ui/messages/android:java",
"//chrome/browser/util:java",
"//chrome/browser/version:java",
......
......@@ -32,6 +32,7 @@ import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager;
import org.chromium.chrome.browser.compositor.layouts.eventfilter.EventFilter;
import org.chromium.chrome.browser.compositor.scene_layer.SceneLayer;
import org.chromium.chrome.browser.compositor.scene_layer.TabListSceneLayer;
import org.chromium.chrome.browser.layouts.LayoutType;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.tasks.tab_management.TabSwitcher;
......
......@@ -64,7 +64,6 @@ import org.chromium.chrome.browser.compositor.layouts.LayoutManager;
import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome;
import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone;
import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromeTablet;
import org.chromium.chrome.browser.compositor.layouts.LayoutStateProvider;
import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior;
import org.chromium.chrome.browser.compositor.layouts.OverviewModeController;
import org.chromium.chrome.browser.compositor.layouts.phone.StackLayout;
......@@ -93,6 +92,7 @@ import org.chromium.chrome.browser.incognito.IncognitoTabSnapshotController;
import org.chromium.chrome.browser.incognito.IncognitoUtils;
import org.chromium.chrome.browser.infobar.DataReductionPromoInfoBar;
import org.chromium.chrome.browser.infobar.SyncErrorInfoBar;
import org.chromium.chrome.browser.layouts.LayoutStateProvider;
import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
import org.chromium.chrome.browser.locale.LocaleManager;
import org.chromium.chrome.browser.metrics.LaunchMetrics;
......
......@@ -24,6 +24,7 @@ import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager;
import org.chromium.chrome.browser.compositor.layouts.eventfilter.BlackHoleEventFilter;
import org.chromium.chrome.browser.compositor.layouts.eventfilter.EventFilter;
import org.chromium.chrome.browser.compositor.scene_layer.SceneLayer;
import org.chromium.chrome.browser.layouts.LayoutType;
import org.chromium.chrome.browser.tabmodel.TabModel;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.tabmodel.TabModelUtils;
......
......@@ -20,6 +20,7 @@ import org.chromium.chrome.browser.compositor.layouts.components.LayoutTab;
import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager;
import org.chromium.chrome.browser.compositor.layouts.eventfilter.EventFilter;
import org.chromium.chrome.browser.compositor.scene_layer.SceneLayer;
import org.chromium.chrome.browser.layouts.LayoutType;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tabmodel.TabModel;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
......@@ -38,18 +39,6 @@ import java.util.List;
*/
public abstract class Layout implements TabContentManager.ThumbnailChangeListener {
/**
* The type info of the Layout.
*/
@IntDef({LayoutType.BROWSING, LayoutType.TAB_SWITCHER, LayoutType.TOOLBAR_SWIPE,
LayoutType.SIMPLE_ANIMATION})
@Retention(RetentionPolicy.SOURCE)
public @interface LayoutType {
int BROWSING = 0;
int TAB_SWITCHER = 1;
int TOOLBAR_SWIPE = 2;
int SIMPLE_ANIMATION = 3;
}
/**
* The orientation of the device.
......
......@@ -43,6 +43,8 @@ import org.chromium.chrome.browser.compositor.scene_layer.SceneOverlayLayer;
import org.chromium.chrome.browser.compositor.scene_layer.ScrollingBottomViewSceneLayer;
import org.chromium.chrome.browser.fullscreen.BrowserControlsManager;
import org.chromium.chrome.browser.gesturenav.HistoryNavigationCoordinator;
import org.chromium.chrome.browser.layouts.LayoutStateProvider;
import org.chromium.chrome.browser.layouts.LayoutType;
import org.chromium.chrome.browser.native_page.NativePageFactory;
import org.chromium.chrome.browser.status_indicator.StatusIndicatorCoordinator;
import org.chromium.chrome.browser.tab.SadTab;
......@@ -1133,7 +1135,7 @@ public class LayoutManager implements LayoutUpdateHost, LayoutProvider,
}
protected final void notifyObserversLayoutStartedShowing(
@Layout.LayoutType int layoutType, boolean showToolbar) {
@LayoutType int layoutType, boolean showToolbar) {
mLayoutStateProviderOneshotSupplier.onAvailable((unused) -> {
for (LayoutStateObserver observer : mLayoutObservers) {
observer.onStartedShowing(layoutType, showToolbar);
......@@ -1141,7 +1143,7 @@ public class LayoutManager implements LayoutUpdateHost, LayoutProvider,
});
}
protected final void notifyObserversLayoutFinishedShowing(@Layout.LayoutType int layoutType) {
protected final void notifyObserversLayoutFinishedShowing(@LayoutType int layoutType) {
mLayoutStateProviderOneshotSupplier.onAvailable((unused) -> {
for (LayoutStateObserver observer : mLayoutObservers) {
observer.onFinishedShowing(layoutType);
......@@ -1150,7 +1152,7 @@ public class LayoutManager implements LayoutUpdateHost, LayoutProvider,
}
protected final void notifyObserversLayoutStartedHiding(
@Layout.LayoutType int layoutType, boolean showToolbar, boolean delayAnimation) {
@LayoutType int layoutType, boolean showToolbar, boolean delayAnimation) {
mLayoutStateProviderOneshotSupplier.onAvailable((unused) -> {
for (LayoutStateObserver observer : mLayoutObservers) {
observer.onStartedHiding(layoutType, showToolbar, delayAnimation);
......@@ -1158,7 +1160,7 @@ public class LayoutManager implements LayoutUpdateHost, LayoutProvider,
});
}
protected final void notifyObserversLayoutFinishedHiding(@Layout.LayoutType int layoutType) {
protected final void notifyObserversLayoutFinishedHiding(@LayoutType int layoutType) {
mLayoutStateProviderOneshotSupplier.onAvailable((unused) -> {
for (LayoutStateObserver observer : mLayoutObservers) {
observer.onFinishedHiding(layoutType);
......
......@@ -30,6 +30,7 @@ import org.chromium.chrome.browser.compositor.layouts.phone.StackLayout;
import org.chromium.chrome.browser.compositor.overlays.strip.StripLayoutHelperManager;
import org.chromium.chrome.browser.device.DeviceClassManager;
import org.chromium.chrome.browser.fullscreen.FullscreenManager;
import org.chromium.chrome.browser.layouts.LayoutStateProvider;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TabLaunchType;
import org.chromium.chrome.browser.tabmodel.TabCreatorManager;
......
......@@ -15,6 +15,7 @@ import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager;
import org.chromium.chrome.browser.compositor.layouts.phone.SimpleAnimationLayout;
import org.chromium.chrome.browser.compositor.overlays.SceneOverlay;
import org.chromium.chrome.browser.device.DeviceClassManager;
import org.chromium.chrome.browser.layouts.LayoutStateProvider;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TabLaunchType;
import org.chromium.chrome.browser.tabmodel.TabCreatorManager;
......
......@@ -13,6 +13,7 @@ import org.chromium.chrome.R;
import org.chromium.chrome.browser.compositor.LayerTitleCache;
import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager;
import org.chromium.chrome.browser.compositor.overlays.strip.StripLayoutHelperManager;
import org.chromium.chrome.browser.layouts.LayoutStateProvider;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TabLaunchType;
import org.chromium.chrome.browser.tabmodel.TabCreatorManager;
......
......@@ -22,6 +22,7 @@ import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager;
import org.chromium.chrome.browser.compositor.layouts.eventfilter.EventFilter;
import org.chromium.chrome.browser.compositor.scene_layer.SceneLayer;
import org.chromium.chrome.browser.compositor.scene_layer.StaticTabSceneLayer;
import org.chromium.chrome.browser.layouts.LayoutType;
import org.chromium.chrome.browser.native_page.NativePageFactory;
import org.chromium.chrome.browser.tab.SadTab;
import org.chromium.chrome.browser.tab.Tab;
......
......@@ -21,6 +21,7 @@ import org.chromium.chrome.browser.compositor.layouts.eventfilter.EventFilter;
import org.chromium.chrome.browser.compositor.layouts.eventfilter.ScrollDirection;
import org.chromium.chrome.browser.compositor.scene_layer.SceneLayer;
import org.chromium.chrome.browser.compositor.scene_layer.TabListSceneLayer;
import org.chromium.chrome.browser.layouts.LayoutType;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tabmodel.TabModel;
import org.chromium.chrome.browser.tabmodel.TabModelUtils;
......
......@@ -24,6 +24,7 @@ import org.chromium.chrome.browser.compositor.layouts.eventfilter.EventFilter;
import org.chromium.chrome.browser.compositor.layouts.phone.stack.Stack;
import org.chromium.chrome.browser.compositor.scene_layer.SceneLayer;
import org.chromium.chrome.browser.compositor.scene_layer.TabListSceneLayer;
import org.chromium.chrome.browser.layouts.LayoutType;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tabmodel.TabModel;
import org.chromium.ui.interpolators.BakedBezierInterpolator;
......
......@@ -46,6 +46,7 @@ import org.chromium.chrome.browser.compositor.scene_layer.TabListSceneLayer;
import org.chromium.chrome.browser.flags.CachedFeatureFlags;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.homepage.HomepageManager;
import org.chromium.chrome.browser.layouts.LayoutType;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tabmodel.TabList;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
......
......@@ -30,6 +30,7 @@ import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager;
import org.chromium.chrome.browser.compositor.overlays.SceneOverlay;
import org.chromium.chrome.browser.compositor.overlays.toolbar.TopToolbarOverlayCoordinator;
import org.chromium.chrome.browser.compositor.scene_layer.ScrollingBottomViewSceneLayer;
import org.chromium.chrome.browser.layouts.LayoutStateProvider;
import java.util.HashMap;
import java.util.List;
......
# Copyright 2020 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config/android/rules.gni")
android_library("java") {
sources = [
"java/src/org/chromium/chrome/browser/layouts/LayoutStateProvider.java",
"java/src/org/chromium/chrome/browser/layouts/LayoutType.java",
]
deps = [ "//third_party/android_deps:androidx_annotation_annotation_java" ]
}
dtrainor@chromium.org
mdjones@chromium.org
meiliang@chromium.org
# COMPONENT: UI>Browser>Mobile>CompositedUI
# TEAM: chrome-android-app@chromium.org
# OS: Android
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.compositor.layouts;
package org.chromium.chrome.browser.layouts;
/**
* Exposes the current {@link Layout} state as well as a way to listen to {@link Layout} state
......@@ -19,13 +19,13 @@ public interface LayoutStateProvider {
* @param layoutType LayoutType of the started showing Layout.
* @param showToolbar Whether or not to show the normal toolbar when animating into the
*/
default void onStartedShowing(@Layout.LayoutType int layoutType, boolean showToolbar) {}
default void onStartedShowing(@LayoutType int layoutType, boolean showToolbar) {}
/**
* Called when Layout finishes showing.
* @param layoutType LayoutType of the finished showing Layout.
*/
default void onFinishedShowing(@Layout.LayoutType int layoutType) {}
default void onFinishedShowing(@LayoutType int layoutType) {}
// TODO(crbug.com/1108496): Reiterate to see whether the showToolbar and delayAnimation
// param is needed.
......@@ -37,13 +37,13 @@ public interface LayoutStateProvider {
* @param delayAnimation Whether or not to delay any related animations until after Layout
*/
default void onStartedHiding(
@Layout.LayoutType int layoutType, boolean showToolbar, boolean delayAnimation) {}
@LayoutType int layoutType, boolean showToolbar, boolean delayAnimation) {}
/**
* Called when Layout finishes hiding.
* @param layoutType LayoutType of the finished hiding Layout.
*/
default void onFinishedHiding(@Layout.LayoutType int layoutType) {}
default void onFinishedHiding(@LayoutType int layoutType) {}
/**
* Called when a layout wants to hint that a new tab might be selected soon. This is not
......@@ -55,9 +55,9 @@ public interface LayoutStateProvider {
/**
* @return Whether or not the {@link Layout} is visible.
* @param layoutType whether the {@link Layout} give {@link Layout.LayoutType} is visible.
* @param layoutType whether the {@link Layout} give {@link LayoutType} is visible.
*/
boolean isLayoutVisible(@Layout.LayoutType int layoutType);
boolean isLayoutVisible(@LayoutType int layoutType);
/**
* @param listener Registers {@code listener} for all layout status changes.
......
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.layouts;
import androidx.annotation.IntDef;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
/**
* The type info of the Layout.
*/
@IntDef({LayoutType.BROWSING, LayoutType.TAB_SWITCHER, LayoutType.TOOLBAR_SWIPE,
LayoutType.SIMPLE_ANIMATION})
@Retention(RetentionPolicy.SOURCE)
public @interface LayoutType {
int BROWSING = 0;
int TAB_SWITCHER = 1;
int TOOLBAR_SWIPE = 2;
int SIMPLE_ANIMATION = 3;
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment