Commit c57cc628 authored by Mia Glaese's avatar Mia Glaese Committed by Commit Bot

[Start Surface] Notify observing components of OverviewModeState changes.

Bug: 982018

Change-Id: I1adba120b3d1b471dab96e5493d18a9fe64aadfe
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1936849
Commit-Queue: Mia Glaese <glamia@chromium.org>
Reviewed-by: default avatarYusuf Ozuysal <yusufo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#720446}
parent 14db9a97
......@@ -486,7 +486,7 @@ class StartSurfaceMediator
private void notifyStateChange() {
if (mStateObserver != null) {
mStateObserver.onStateChanged(shouldShowTabSwitcherToolbar());
mStateObserver.onStateChanged(mOverviewModeState, shouldShowTabSwitcherToolbar());
}
}
......
......@@ -6,6 +6,7 @@ package org.chromium.chrome.features.start_surface;
import android.os.SystemClock;
import org.chromium.chrome.browser.compositor.layouts.OverviewModeState;
import org.chromium.chrome.browser.tasks.tab_management.TabSwitcher;
/** Interface to communicate with the start surface. */
......@@ -17,9 +18,11 @@ public interface StartSurface {
interface StateObserver {
/**
* Called when the internal state is changed.
* @param overviewModeState the {@link OverviewModeState}.
* @param shouldShowTabSwitcherToolbar Whether or not should show the Tab switcher toolbar.
*/
void onStateChanged(boolean shouldShowTabSwitcherToolbar);
void onStateChanged(
@OverviewModeState int overviewModeState, boolean shouldShowTabSwitcherToolbar);
}
/**
......@@ -124,4 +127,4 @@ public interface StartSurface {
* @return TabDialogDelegation implementation that can be used to access the Tab Dialog.
*/
TabSwitcher.TabDialogDelegation getTabDialogDelegate();
}
\ No newline at end of file
}
......@@ -63,6 +63,7 @@ import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromeTablet;
import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior;
import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior.OverviewModeObserver;
import org.chromium.chrome.browser.compositor.layouts.OverviewModeController;
import org.chromium.chrome.browser.compositor.layouts.OverviewModeState;
import org.chromium.chrome.browser.compositor.layouts.phone.StackLayout;
import org.chromium.chrome.browser.cookies.CookiesFetcher;
import org.chromium.chrome.browser.crypto.CipherFactory;
......@@ -384,9 +385,10 @@ public class ChromeTabbedActivity extends ChromeActivity implements ScreenshotMo
}
@Override
public void onOverviewModeStateChanged(boolean showTabSwitcherToolbar) {
public void onOverviewModeStateChanged(
@OverviewModeState int overviewModeState, boolean showTabSwitcherToolbar) {
for (OverviewModeObserver observer : mOverviewModeObserverList) {
observer.onOverviewModeStateChanged(showTabSwitcherToolbar);
observer.onOverviewModeStateChanged(overviewModeState, showTabSwitcherToolbar);
}
}
......
......@@ -17,11 +17,12 @@ public class EmptyOverviewModeObserver implements OverviewModeObserver {
public void onOverviewModeFinishedShowing() {}
@Override
public void onOverviewModeStateChanged(boolean showTabSwitcherToolbar) {}
public void onOverviewModeStateChanged(
@OverviewModeState int overviewModeState, boolean showTabSwitcherToolbar) {}
@Override
public void onOverviewModeStartedHiding(boolean showToolbar, boolean delayAnimation) {}
@Override
public void onOverviewModeFinishedHiding() {}
}
\ No newline at end of file
}
......@@ -95,9 +95,11 @@ public class LayoutManagerChrome extends LayoutManager implements OverviewModeCo
assert tabManagementDelegate != null;
startSurface.setStateChangeObserver(new StartSurface.StateObserver() {
@Override
public void onStateChanged(boolean shouldShowTabSwitcherToolbar) {
public void onStateChanged(@OverviewModeState int overviewModeState,
boolean shouldShowTabSwitcherToolbar) {
for (OverviewModeObserver observer : mOverviewModeObservers) {
observer.onOverviewModeStateChanged(shouldShowTabSwitcherToolbar);
observer.onOverviewModeStateChanged(
overviewModeState, shouldShowTabSwitcherToolbar);
}
}
});
......
......@@ -29,7 +29,8 @@ public interface OverviewModeBehavior {
* Called when the internal state is changed.
* @param showTabSwitcherToolbar Whether or not request showing the Tab switcher toolbar.
*/
void onOverviewModeStateChanged(boolean showTabSwitcherToolbar);
void onOverviewModeStateChanged(
@OverviewModeState int overviewModeState, boolean showTabSwitcherToolbar);
/**
* Called when overview mode starts hiding.
......@@ -60,4 +61,4 @@ public interface OverviewModeBehavior {
* @param listener Unregisters {@code listener} for overview mode status changes.
*/
void removeOverviewModeObserver(OverviewModeObserver listener);
}
\ No newline at end of file
}
......@@ -47,6 +47,7 @@ import org.chromium.chrome.browser.compositor.layouts.Layout;
import org.chromium.chrome.browser.compositor.layouts.LayoutManager;
import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior;
import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior.OverviewModeObserver;
import org.chromium.chrome.browser.compositor.layouts.OverviewModeState;
import org.chromium.chrome.browser.compositor.layouts.SceneChangeObserver;
import org.chromium.chrome.browser.download.DownloadUtils;
import org.chromium.chrome.browser.feature_engagement.ScreenshotTabObserver;
......@@ -691,7 +692,8 @@ public class ToolbarManager implements ScrimObserver, ToolbarTabController, UrlF
}
@Override
public void onOverviewModeStateChanged(boolean showTabSwitcherToolbar) {
public void onOverviewModeStateChanged(
@OverviewModeState int overviewModeState, boolean showTabSwitcherToolbar) {
mToolbar.updateTabSwitcherToolbarState(showTabSwitcherToolbar);
}
......
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