Commit 133d5a7b authored by Friedrich Horschig's avatar Friedrich Horschig Committed by Commit Bot

[MFill][Android] Remove scene change observer from mediator

This CL cleans up the usage of a scene change observer that used to be
necessary to reset the accessory before scene changes (to avoid layout
height changes affecting the tab switcher).

Screenshots verifying the correct behavior are in the linked first bug.

Bug: 1115644, 876254
Change-Id: If522cfc5686028afadfbd03bf1c5b19c748b07d8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2352916Reviewed-by: default avatarMatthew Jones <mdjones@chromium.org>
Reviewed-by: default avatarMei Liang <meiliang@chromium.org>
Commit-Queue: Friedrich [CET] <fhorschig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#798054}
parent ef9295d6
...@@ -32,9 +32,6 @@ import org.chromium.chrome.browser.ChromeActivity; ...@@ -32,9 +32,6 @@ import org.chromium.chrome.browser.ChromeActivity;
import org.chromium.chrome.browser.ChromeKeyboardVisibilityDelegate; import org.chromium.chrome.browser.ChromeKeyboardVisibilityDelegate;
import org.chromium.chrome.browser.ChromeWindow; import org.chromium.chrome.browser.ChromeWindow;
import org.chromium.chrome.browser.compositor.CompositorViewHolder; import org.chromium.chrome.browser.compositor.CompositorViewHolder;
import org.chromium.chrome.browser.compositor.layouts.Layout;
import org.chromium.chrome.browser.compositor.layouts.LayoutManager;
import org.chromium.chrome.browser.compositor.layouts.SceneChangeObserver;
import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager; import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager;
import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.fullscreen.FullscreenManager; import org.chromium.chrome.browser.fullscreen.FullscreenManager;
...@@ -97,20 +94,6 @@ class ManualFillingMediator extends EmptyTabObserver ...@@ -97,20 +94,6 @@ class ManualFillingMediator extends EmptyTabObserver
private DropdownPopupWindow mPopup; private DropdownPopupWindow mPopup;
private BottomSheetController mBottomSheetController; private BottomSheetController mBottomSheetController;
private final SceneChangeObserver mTabSwitcherObserver = new SceneChangeObserver() {
@Override
public void onTabSelectionHinted(int tabId) {}
@Override
public void onSceneStartShowing(Layout layout) {
// Includes events like side-swiping between tabs and triggering contextual search.
pause();
}
@Override
public void onSceneChange(Layout layout) {}
};
private final TabObserver mTabObserver = new EmptyTabObserver() { private final TabObserver mTabObserver = new EmptyTabObserver() {
@Override @Override
public void onHidden(Tab tab, @TabHidingType int type) { public void onHidden(Tab tab, @TabHidingType int type) {
...@@ -162,8 +145,6 @@ class ManualFillingMediator extends EmptyTabObserver ...@@ -162,8 +145,6 @@ class ManualFillingMediator extends EmptyTabObserver
* mActivity.getResources().getDimensionPixelSize( * mActivity.getResources().getDimensionPixelSize(
R.dimen.keyboard_accessory_suggestion_height)); R.dimen.keyboard_accessory_suggestion_height));
setInsetObserverViewSupplier(mActivity::getInsetObserverView); setInsetObserverViewSupplier(mActivity::getInsetObserverView);
LayoutManager manager = getLayoutManager();
if (manager != null) manager.addSceneChangeObserver(mTabSwitcherObserver);
mActivity.findViewById(android.R.id.content).addOnLayoutChangeListener(this); mActivity.findViewById(android.R.id.content).addOnLayoutChangeListener(this);
mTabModelObserver = new TabModelSelectorTabModelObserver(mActivity.getTabModelSelector()) { mTabModelObserver = new TabModelSelectorTabModelObserver(mActivity.getTabModelSelector()) {
@Override @Override
...@@ -262,8 +243,6 @@ class ManualFillingMediator extends EmptyTabObserver ...@@ -262,8 +243,6 @@ class ManualFillingMediator extends EmptyTabObserver
mStateCache.destroy(); mStateCache.destroy();
for (Tab tab : mObservedTabs) tab.removeObserver(mTabObserver); for (Tab tab : mObservedTabs) tab.removeObserver(mTabObserver);
mObservedTabs.clear(); mObservedTabs.clear();
LayoutManager manager = getLayoutManager();
if (manager != null) manager.removeSceneChangeObserver(mTabSwitcherObserver);
mActivity.getFullscreenManager().removeObserver(mFullscreenObserver); mActivity.getFullscreenManager().removeObserver(mFullscreenObserver);
mBottomSheetController.removeObserver(mBottomSheetObserver); mBottomSheetController.removeObserver(mBottomSheetObserver);
mWindowAndroid = null; mWindowAndroid = null;
...@@ -541,18 +520,6 @@ class ManualFillingMediator extends EmptyTabObserver ...@@ -541,18 +520,6 @@ class ManualFillingMediator extends EmptyTabObserver
return tab.getContentView(); return tab.getContentView();
} }
/**
* Shorthand to check whether there is a valid {@link LayoutManager} for the current activity.
* If there isn't (e.g. before initialization or after destruction), return null.
* @return {@code null} or a {@link LayoutManager}.
*/
private @Nullable LayoutManager getLayoutManager() {
if (mActivity == null) return null;
CompositorViewHolder compositorViewHolder = mActivity.getCompositorViewHolder();
if (compositorViewHolder == null) return null;
return compositorViewHolder.getLayoutManager();
}
/** /**
* Shorthand to get the activity tab. * Shorthand to get the activity tab.
* @return The currently visible {@link Tab}, if any. * @return The currently visible {@link Tab}, if any.
......
...@@ -867,11 +867,6 @@ public class LayoutManager implements LayoutUpdateHost, LayoutProvider, ...@@ -867,11 +867,6 @@ public class LayoutManager implements LayoutUpdateHost, LayoutProvider,
oldLayout.forceAnimationToFinish(); oldLayout.forceAnimationToFinish();
oldLayout.detachViews(); oldLayout.detachViews();
} }
// TODO(fhorschig): This might be removed as soon as keyboard replacements get triggered
// by the normal keyboard hiding signals.
for (SceneChangeObserver observer : mSceneChangeObservers) {
observer.onSceneStartShowing(layout);
}
layout.contextChanged(mHost.getContext()); layout.contextChanged(mHost.getContext());
layout.attachViews(mContentContainer); layout.attachViews(mContentContainer);
mActiveLayout = layout; mActiveLayout = layout;
......
...@@ -15,12 +15,6 @@ public interface SceneChangeObserver { ...@@ -15,12 +15,6 @@ public interface SceneChangeObserver {
*/ */
void onTabSelectionHinted(int tabId); void onTabSelectionHinted(int tabId);
/**
* Called briefly before the given {@link Layout} becomes active.
* @param layout A {@link Layout} that is soon to be active.
*/
default void onSceneStartShowing(Layout layout) {}
/** /**
* Called when the active {@link Layout} changes. * Called when the active {@link Layout} changes.
* @param layout The new active {@link Layout}. * @param layout The new active {@link Layout}.
......
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