Commit de2a0976 authored by Filip Gorski's avatar Filip Gorski Committed by Commit Bot

[CAL] Switching occb.ui.* to injection of ActivityTabProvider

Bug: 1054072
Change-Id: I5d549d6c9970bad857310b61c30b922ad5f1a5ad
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2087999
Commit-Queue: Filip Gorski <fgorski@chromium.org>
Reviewed-by: default avatarDavid Trainor <dtrainor@chromium.org>
Cr-Commit-Position: refs/heads/master@{#748010}
parent 2108b042
......@@ -361,7 +361,8 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
// to the RootUiCoordinator, passing the activity is an easy way to get access to a
// number of objects that will ultimately be owned by the RootUiCoordinator. This is not
// a recommended pattern.
return new RootUiCoordinator(this, null, getShareDelegateSupplier());
return new RootUiCoordinator(
this, null, getShareDelegateSupplier(), getActivityTabProvider());
}
private C createComponent() {
......@@ -820,7 +821,8 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
// TODO(https://crbug.com/943371): Initialize in SystemUiCoordinator. This requires
// SystemUiCoordinator to be created before WebappActivty#onResume().
if (mStatusBarColorController == null) {
mStatusBarColorController = new StatusBarColorController(this);
mStatusBarColorController =
new StatusBarColorController(this, getActivityTabProvider());
}
return mStatusBarColorController;
......
......@@ -1465,8 +1465,8 @@ public class ChromeTabbedActivity
@Override
protected RootUiCoordinator createRootUiCoordinator() {
return new TabbedRootUiCoordinator(
this, this::onOmniboxFocusChanged, mIntentWithEffect, getShareDelegateSupplier());
return new TabbedRootUiCoordinator(this, this::onOmniboxFocusChanged, mIntentWithEffect,
getShareDelegateSupplier(), getActivityTabProvider());
}
@Override
......
......@@ -63,8 +63,8 @@ public abstract class BaseCustomTabActivity<C extends BaseCustomTabActivityCompo
@Override
protected RootUiCoordinator createRootUiCoordinator() {
return new BaseCustomTabRootUiCoordinator(
this, getShareDelegateSupplier(), mToolbarCoordinator, mNavigationController);
return new BaseCustomTabRootUiCoordinator(this, getShareDelegateSupplier(),
mToolbarCoordinator, mNavigationController, getActivityTabProvider());
}
/**
......
......@@ -5,6 +5,7 @@
package org.chromium.chrome.browser.customtabs;
import org.chromium.base.supplier.ObservableSupplier;
import org.chromium.chrome.browser.ActivityTabProvider;
import org.chromium.chrome.browser.ChromeActivity;
import org.chromium.chrome.browser.customtabs.content.CustomTabActivityNavigationController;
import org.chromium.chrome.browser.customtabs.features.toolbar.CustomTabToolbarCoordinator;
......@@ -21,8 +22,9 @@ public class BaseCustomTabRootUiCoordinator extends RootUiCoordinator {
public BaseCustomTabRootUiCoordinator(ChromeActivity activity,
ObservableSupplier<ShareDelegate> shareDelegateSupplier,
CustomTabToolbarCoordinator customTabToolbarCoordinator,
CustomTabActivityNavigationController customTabNavigationController) {
super(activity, null, shareDelegateSupplier);
CustomTabActivityNavigationController customTabNavigationController,
ActivityTabProvider tabProvider) {
super(activity, null, shareDelegateSupplier, tabProvider);
mToolbarCoordinator = customTabToolbarCoordinator;
mNavigationController = customTabNavigationController;
......
......@@ -15,6 +15,7 @@ import org.chromium.base.TraceEvent;
import org.chromium.base.supplier.ObservableSupplier;
import org.chromium.base.task.PostTask;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ActivityTabProvider;
import org.chromium.chrome.browser.AppHooks;
import org.chromium.chrome.browser.ChromeActivity;
import org.chromium.chrome.browser.compositor.layouts.LayoutManager;
......@@ -38,7 +39,6 @@ import org.chromium.chrome.browser.toolbar.ToolbarButtonInProductHelpController;
import org.chromium.chrome.browser.toolbar.bottom.BottomToolbarConfiguration;
import org.chromium.chrome.browser.ui.ImmersiveModeManager;
import org.chromium.chrome.browser.ui.RootUiCoordinator;
import org.chromium.chrome.browser.ui.TabObscuringHandler;
import org.chromium.chrome.browser.ui.appmenu.AppMenuHandler;
import org.chromium.chrome.browser.ui.tablet.emptybackground.EmptyBackgroundViewWrapper;
import org.chromium.chrome.browser.vr.VrModuleProvider;
......@@ -71,12 +71,14 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator implements Native
* changes.
* @param intentWithEffect Whether or not {@code activity} was launched with an
* intent to open a single tab.
* @param tabObscuringHandler {@link TabObscuringHandler} object.
* @param shareDelegateSupplier
* @param tabProvider The {@link ActivityTabProvider} to get current tab of the activity.
*/
public TabbedRootUiCoordinator(ChromeActivity activity,
Callback<Boolean> onOmniboxFocusChangedListener, boolean intentWithEffect,
ObservableSupplier<ShareDelegate> shareDelegateSupplier) {
super(activity, onOmniboxFocusChangedListener, shareDelegateSupplier);
ObservableSupplier<ShareDelegate> shareDelegateSupplier,
ActivityTabProvider tabProvider) {
super(activity, onOmniboxFocusChangedListener, shareDelegateSupplier, tabProvider);
mIntentWithEffect = intentWithEffect;
}
......
......@@ -117,26 +117,27 @@ public class RootUiCoordinator
* @param onOmniboxFocusChangedListener Callback<Boolean> callback to invoke when Omnibox focus
* changes.
* @param shareDelegateSupplier Supplies {@link ShareDelegate} object.
* @param tabProvider The {@link ActivityTabProvider} to get current tab of the activity.
*/
public RootUiCoordinator(ChromeActivity activity,
@Nullable Callback<Boolean> onOmniboxFocusChangedListener,
ObservableSupplier<ShareDelegate> shareDelegateSupplier) {
ObservableSupplier<ShareDelegate> shareDelegateSupplier,
ActivityTabProvider tabProvider) {
mActivity = activity;
mOnOmniboxFocusChangedListener = onOmniboxFocusChangedListener;
mActivity.getLifecycleDispatcher().register(this);
mMenuOrKeyboardActionController = mActivity.getMenuOrKeyboardActionController();
mMenuOrKeyboardActionController.registerMenuOrKeyboardActionHandler(this);
mActivityTabProvider = mActivity.getActivityTabProvider();
mActivityTabProvider = tabProvider;
mLayoutManagerSupplierCallback = this::onLayoutManagerAvailable;
mActivity.getLayoutManagerSupplier().addObserver(mLayoutManagerSupplierCallback);
mShareDelegateSupplier = shareDelegateSupplier;
mTabObscuringHandler = new TabObscuringHandler();
mAccessibilityVisibilityHandler =
new AccessibilityVisibilityHandler(activity.getLifecycleDispatcher(),
activity.getActivityTabProvider(), mTabObscuringHandler);
mAccessibilityVisibilityHandler = new AccessibilityVisibilityHandler(
activity.getLifecycleDispatcher(), mActivityTabProvider, mTabObscuringHandler);
initOverviewModeSupplierObserver();
}
......@@ -269,7 +270,7 @@ public class RootUiCoordinator
mFindToolbarManager.showToolbar();
Tab tab = mActivity.getActivityTabProvider().get();
Tab tab = mActivityTabProvider.get();
if (fromMenu) {
RecordUserAction.record("MobileMenuFindInPage");
new UkmRecorder.Bridge().recordEventWithBooleanMetric(
......@@ -386,7 +387,7 @@ public class RootUiCoordinator
mIdentityDiscController = new IdentityDiscController(
mActivity, mActivity.getLifecycleDispatcher(), bottomToolbarVisibilitySupplier);
ShareButtonController shareButtonController = new ShareButtonController(mActivity,
mActivity.getActivityTabProvider(), mShareDelegateSupplier, new ShareUtils(),
mActivityTabProvider, mShareDelegateSupplier, new ShareUtils(),
bottomToolbarVisibilitySupplier);
mButtonDataProviders = Arrays.asList(mIdentityDiscController, shareButtonController);
mToolbarManager = new ToolbarManager(mActivity, mActivity.getFullscreenManager(),
......
......@@ -93,8 +93,10 @@ public class StatusBarColorController
/**
* @param chromeActivity The {@link ChromeActivity} that this class is attached to.
* @param tabProvider The {@link ActivityTabProvider} to get current tab of the activity.
*/
public StatusBarColorController(ChromeActivity chromeActivity) {
public StatusBarColorController(
ChromeActivity chromeActivity, ActivityTabProvider tabProvider) {
mWindow = chromeActivity.getWindow();
mIsTablet = chromeActivity.isTablet();
mOverviewModeBehavior = chromeActivity.getOverviewModeBehavior();
......@@ -112,8 +114,7 @@ public class StatusBarColorController
mStatusIndicatorColor = UNDEFINED_STATUS_BAR_COLOR;
mStatusBarColorTabObserver = new ActivityTabProvider.ActivityTabTabObserver(
chromeActivity.getActivityTabProvider()) {
mStatusBarColorTabObserver = new ActivityTabProvider.ActivityTabTabObserver(tabProvider) {
@Override
public void onShown(Tab tab, @TabSelectionType int type) {
updateStatusBarColor();
......
......@@ -166,8 +166,8 @@ public class ShareIntentTest {
return new MockChromeActivity(mActivityTestRule.getActivity());
});
RootUiCoordinator rootUiCoordinator = TestThreadUtils.runOnUiThreadBlocking(() -> {
return new RootUiCoordinator(
mockActivity, null, mockActivity.getShareDelegateSupplier());
return new RootUiCoordinator(mockActivity, null,
mockActivity.getShareDelegateSupplier(), mockActivity.getActivityTabProvider());
});
ShareHelper.setLastShareComponentName(
new ComponentName("test.package", "test.activity"), null);
......
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