Commit 30964889 authored by Brandon Wylie's avatar Brandon Wylie Committed by Commit Bot

Revert "Remove ChromeActivity reference from AutoCompleteMediator"

This reverts commit 8315bbca.

Reason for revert: Doesn't support multi-window

Original change's description:
> Remove ChromeActivity reference from AutoCompleteMediator
> 
> ChromeActivity is used in AutocompleteMediator to provide the current
> TabModelSelector. This dependency should instead be acquired through
> direct constructor injection.
> 
> Bug: 1123209,1097292,1113364
> Change-Id: I95c8a58f06f250b6397ec7926b2262b5b2b4298b
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2382958
> Reviewed-by: Patrick Noland <pnoland@chromium.org>
> Reviewed-by: Ted Choc <tedchoc@chromium.org>
> Reviewed-by: Tomasz Wiszkowski <ender@google.com>
> Commit-Queue: Brandon Wylie <wylieb@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#804419}

TBR=tedchoc@chromium.org,wylieb@chromium.org,pnoland@chromium.org,ender@google.com

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 1123209
Bug: 1097292
Bug: 1113364
Change-Id: Ib990eba5cc00f7b5209c90b5371385dfe5af9283
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2402087Reviewed-by: default avatarBrandon Wylie <wylieb@chromium.org>
Reviewed-by: default avatarTed Choc <tedchoc@chromium.org>
Commit-Queue: Brandon Wylie <wylieb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#805543}
parent 37f80928
......@@ -1438,8 +1438,7 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
return new TabbedRootUiCoordinator(this, this::onOmniboxFocusChanged,
mIntentWithEffectSupplier, getShareDelegateSupplier(), getActivityTabProvider(),
mEphemeralTabCoordinatorSupplier, mTabModelProfileSupplier, mBookmarkBridgeSupplier,
getOverviewModeBehaviorSupplier(), this::getContextualSearchManager,
mTabModelSelectorSupplier);
getOverviewModeBehaviorSupplier(), this::getContextualSearchManager);
}
@Override
......
......@@ -277,6 +277,9 @@ specific_include_rules = {
"UpdateNotificationServiceBridge\.java": [
"+chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java",
],
"AutocompleteMediator\.java": [
"+chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java",
],
"PaintPreviewHelper\.java": [
"+chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java",
],
......
......@@ -381,8 +381,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
// a recommended pattern.
return new RootUiCoordinator(this, null, getShareDelegateSupplier(),
getActivityTabProvider(), mTabModelProfileSupplier, mBookmarkBridgeSupplier,
getOverviewModeBehaviorSupplier(), this::getContextualSearchManager,
mTabModelSelectorSupplier);
getOverviewModeBehaviorSupplier(), this::getContextualSearchManager);
}
private C createComponent() {
......
......@@ -150,13 +150,9 @@ public abstract class BaseCustomTabActivity extends ChromeActivity<BaseCustomTab
@Override
protected RootUiCoordinator createRootUiCoordinator() {
return new BaseCustomTabRootUiCoordinator(this, getShareDelegateSupplier(),
()
-> mToolbarCoordinator,
()
-> mNavigationController,
getActivityTabProvider(), mTabModelProfileSupplier, mBookmarkBridgeSupplier,
mOverviewModeBehaviorSupplier, this::getContextualSearchManager,
mTabModelSelectorSupplier);
() -> mToolbarCoordinator, () -> mNavigationController, getActivityTabProvider(),
mTabModelProfileSupplier, mBookmarkBridgeSupplier, mOverviewModeBehaviorSupplier,
this::getContextualSearchManager);
}
@Override
......
......@@ -20,7 +20,6 @@ import org.chromium.chrome.browser.lifecycle.NativeInitObserver;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.reengagement.ReengagementNotificationController;
import org.chromium.chrome.browser.share.ShareDelegate;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.ui.RootUiCoordinator;
import org.chromium.components.feature_engagement.Tracker;
......@@ -39,11 +38,10 @@ public class BaseCustomTabRootUiCoordinator
ActivityTabProvider tabProvider, ObservableSupplier<Profile> profileSupplier,
ObservableSupplier<BookmarkBridge> bookmarkBridgeSupplier,
ObservableSupplier<OverviewModeBehavior> overviewModeBehaviorSupplier,
Supplier<ContextualSearchManager> contextualSearchManagerSupplier,
ObservableSupplier<TabModelSelector> tabModelSelectorSupplier) {
Supplier<ContextualSearchManager> contextualSearchManagerSupplier) {
super(activity, null, shareDelegateSupplier, tabProvider, profileSupplier,
bookmarkBridgeSupplier, overviewModeBehaviorSupplier,
contextualSearchManagerSupplier, tabModelSelectorSupplier);
contextualSearchManagerSupplier);
mToolbarCoordinator = customTabToolbarCoordinator;
mNavigationController = customTabNavigationController;
}
......
......@@ -11,7 +11,6 @@ import android.view.Window;
import androidx.annotation.IntDef;
import org.chromium.base.supplier.ObservableSupplier;
import org.chromium.base.supplier.Supplier;
import org.chromium.chrome.browser.ActivityTabProvider;
import org.chromium.chrome.browser.WindowDelegate;
......@@ -21,7 +20,6 @@ import org.chromium.chrome.browser.omnibox.UrlBar.UrlBarDelegate;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.share.ShareDelegate;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.toolbar.IncognitoStateProvider;
import org.chromium.chrome.browser.toolbar.ToolbarDataProvider;
import org.chromium.chrome.browser.toolbar.top.Toolbar;
......@@ -144,19 +142,16 @@ public interface LocationBar extends UrlBarDelegate, FakeboxDelegate {
* @param windowAndroid {@link WindowAndroid} that is used by the owning {@link Activity}.
* @param activityTabProvider An {@link ActivityTabProvider} to access the activity's current
* tab.
* @param tabModelSelectorSupplier Supplies the Activity's TabModelSelector, used to access tabs
* and models.
* @param modalDialogManagerSupplier A supplier for {@link ModalDialogManager} object.
* @param shareDelegateSupplier A supplier for {@link ShareDelegate} object.
* @param incognitoStateProvider An {@link IncognitoStateProvider} to access the current
* incognito state.
*/
default void initializeControls(WindowDelegate windowDelegate, WindowAndroid windowAndroid,
void initializeControls(WindowDelegate windowDelegate, WindowAndroid windowAndroid,
ActivityTabProvider activityTabProvider,
ObservableSupplier<TabModelSelector> tabModelSelectorSupplier,
Supplier<ModalDialogManager> modalDialogManagerSupplier,
Supplier<ShareDelegate> shareDelegateSupplier,
IncognitoStateProvider incognitoStateProvider) {}
IncognitoStateProvider incognitoStateProvider);
/**
* Triggers the cursor to be visible in the UrlBar without triggering any of the focus animation
......
......@@ -34,7 +34,6 @@ import org.chromium.base.CommandLine;
import org.chromium.base.ObserverList;
import org.chromium.base.metrics.RecordHistogram;
import org.chromium.base.metrics.RecordUserAction;
import org.chromium.base.supplier.ObservableSupplier;
import org.chromium.base.supplier.Supplier;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ActivityTabProvider;
......@@ -63,7 +62,6 @@ import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory;
import org.chromium.chrome.browser.share.ShareDelegate;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.tasks.ReturnToChromeExperimentsUtil;
import org.chromium.chrome.browser.toolbar.IncognitoStateProvider;
import org.chromium.chrome.browser.toolbar.ToolbarDataProvider;
......@@ -303,7 +301,6 @@ public class LocationBarLayout extends FrameLayout
@Override
public void initializeControls(WindowDelegate windowDelegate, WindowAndroid windowAndroid,
ActivityTabProvider activityTabProvider,
ObservableSupplier<TabModelSelector> tabModelSelectorSupplier,
Supplier<ModalDialogManager> modalDialogManagerSupplier,
Supplier<ShareDelegate> shareDelegateSupplier,
IncognitoStateProvider incognitoStateProvider) {
......@@ -313,7 +310,6 @@ public class LocationBarLayout extends FrameLayout
mUrlCoordinator.setWindowDelegate(windowDelegate);
mAutocompleteCoordinator.setWindowAndroid(windowAndroid);
mAutocompleteCoordinator.setActivityTabProvider(activityTabProvider);
mAutocompleteCoordinator.setTabModelSelectorSupplier(tabModelSelectorSupplier);
mAutocompleteCoordinator.setShareDelegateSupplier(shareDelegateSupplier);
mStatusCoordinator.setIncognitoStateProvider(incognitoStateProvider);
mStatusCoordinator.setModalDialogManagerSupplier(modalDialogManagerSupplier);
......
......@@ -8,7 +8,6 @@ import android.view.KeyEvent;
import androidx.annotation.Nullable;
import org.chromium.base.supplier.ObservableSupplier;
import org.chromium.base.supplier.Supplier;
import org.chromium.chrome.browser.ActivityTabProvider;
import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior;
......@@ -17,7 +16,6 @@ import org.chromium.chrome.browser.omnibox.UrlFocusChangeListener;
import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.share.ShareDelegate;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.toolbar.ToolbarDataProvider;
import org.chromium.ui.base.WindowAndroid;
......@@ -60,11 +58,6 @@ public interface AutocompleteCoordinator extends UrlFocusChangeListener, UrlText
*/
void setActivityTabProvider(ActivityTabProvider provider);
/**
* @param tabModelSelectorSupplier A means of accessing the current Tab/TabModel.
*/
void setTabModelSelectorSupplier(ObservableSupplier<TabModelSelector> tabModelSelectorSupplier);
/**
* @param shareDelegateSupplier A means of accessing the sharing feature.
*/
......
......@@ -17,7 +17,6 @@ import androidx.annotation.VisibleForTesting;
import androidx.core.view.ViewCompat;
import org.chromium.base.Callback;
import org.chromium.base.supplier.ObservableSupplier;
import org.chromium.base.supplier.Supplier;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ActivityTabProvider;
......@@ -39,7 +38,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.tail.TailSuggestionViewBi
import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.share.ShareDelegate;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.toolbar.ToolbarDataProvider;
import org.chromium.chrome.browser.util.KeyNavigationUtil;
import org.chromium.components.query_tiles.QueryTile;
......@@ -235,12 +233,6 @@ public class AutocompleteCoordinatorImpl implements AutocompleteCoordinator {
mMediator.setActivityTabProvider(provider);
}
@Override
public void setTabModelSelectorSupplier(
ObservableSupplier<TabModelSelector> tabModelSelectorSupplier) {
mMediator.setTabModelSelectorSupplier(tabModelSelectorSupplier);
}
@Override
public void setShareDelegateSupplier(Supplier<ShareDelegate> shareDelegateSupplier) {
mMediator.setShareDelegateSupplier(shareDelegateSupplier);
......
......@@ -27,11 +27,11 @@ import org.chromium.base.IntentUtils;
import org.chromium.base.Log;
import org.chromium.base.metrics.RecordHistogram;
import org.chromium.base.metrics.RecordUserAction;
import org.chromium.base.supplier.ObservableSupplier;
import org.chromium.base.supplier.Supplier;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ActivityTabProvider;
import org.chromium.chrome.browser.ActivityTabProvider.ActivityTabTabObserver;
import org.chromium.chrome.browser.app.ChromeActivity;
import org.chromium.chrome.browser.compositor.layouts.EmptyOverviewModeObserver;
import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior;
import org.chromium.chrome.browser.document.ChromeIntentUtil;
......@@ -52,7 +52,6 @@ import org.chromium.chrome.browser.query_tiles.QueryTileUtils;
import org.chromium.chrome.browser.share.ShareDelegate;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TabSelectionType;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.tabmodel.TabModelUtils;
import org.chromium.chrome.browser.toolbar.ToolbarDataProvider;
import org.chromium.components.embedder_support.util.UrlConstants;
......@@ -147,9 +146,6 @@ class AutocompleteMediator implements OnSuggestionsReceivedListener, StartStopWi
private WindowAndroid mWindowAndroid;
private ActivityLifecycleDispatcher mLifecycleDispatcher;
private ActivityTabTabObserver mTabObserver;
private ObservableSupplier<TabModelSelector> mTabModelSelectorSupplier;
private final DropdownItemViewInfoListBuilder mDropdownViewInfoListBuilder;
private final DropdownItemViewInfoListManager mDropdownViewInfoListManager;
......@@ -358,15 +354,6 @@ class AutocompleteMediator implements OnSuggestionsReceivedListener, StartStopWi
mDropdownViewInfoListBuilder.onNativeInitialized();
}
/**
* @param tabModelSelectorSupplier Supplies the activity TabModelSelector, which is used to
* access the Tab/TabModel.
*/
void setTabModelSelectorSupplier(
ObservableSupplier<TabModelSelector> tabModelSelectorSupplier) {
mTabModelSelectorSupplier = tabModelSelectorSupplier;
}
/**
* @param provider A means of accessing the activity tab.
*/
......@@ -592,8 +579,7 @@ class AutocompleteMediator implements OnSuggestionsReceivedListener, StartStopWi
@Override
public void onSwitchToTab(OmniboxSuggestion suggestion, int position) {
Tab tab = mAutocomplete.findMatchingTabWithUrl(suggestion.getUrl());
if (tab == null || mTabModelSelectorSupplier == null
|| mTabModelSelectorSupplier.get() == null) {
if (tab == null) {
onSelection(suggestion, position);
return;
}
......@@ -603,9 +589,14 @@ class AutocompleteMediator implements OnSuggestionsReceivedListener, StartStopWi
// animation since Android will show the animation for switching apps.
if (tab.getWindowAndroid().getActivityState() != ActivityState.STOPPED
&& tab.getWindowAndroid().getActivityState() != ActivityState.DESTROYED) {
// TODO(1097292): Do not use Activity to get TabModelSelector.
assert tab.getWindowAndroid().getActivity().get() instanceof ChromeActivity;
ChromeActivity chromeActivity =
(ChromeActivity) tab.getWindowAndroid().getActivity().get();
int tabIndex = TabModelUtils.getTabIndexById(
mTabModelSelectorSupplier.get().getModel(tab.isIncognito()), tab.getId());
mTabModelSelectorSupplier.get()
chromeActivity.getTabModelSelector().getModel(tab.isIncognito()), tab.getId());
chromeActivity.getTabModelSelector()
.getModel(tab.isIncognito())
.setIndex(tabIndex, TabSelectionType.FROM_OMNIBOX);
} else {
......
......@@ -163,7 +163,7 @@ public class SearchActivity extends AsyncInitializationActivity
mSearchBox.setDelegate(this);
mSearchBox.setToolbarDataProvider(mSearchBoxDataProvider);
mSearchBox.initializeControls(
new WindowDelegate(getWindow()), getWindowAndroid(), null, null, null, null, null);
new WindowDelegate(getWindow()), getWindowAndroid(), null, null, null, null);
// Kick off everything needed for the user to type into the box.
beginQuery();
......
......@@ -45,7 +45,6 @@ import org.chromium.chrome.browser.share.ShareDelegate;
import org.chromium.chrome.browser.signin.SigninPromoUtil;
import org.chromium.chrome.browser.status_indicator.StatusIndicatorCoordinator;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.tasks.tab_management.TabUiFeatureUtilities;
import org.chromium.chrome.browser.toolbar.ToolbarButtonInProductHelpController;
import org.chromium.chrome.browser.toolbar.bottom.BottomToolbarConfiguration;
......@@ -104,11 +103,10 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator implements Native
ObservableSupplier<Profile> profileSupplier,
ObservableSupplier<BookmarkBridge> bookmarkBridgeSupplier,
ObservableSupplier<OverviewModeBehavior> overviewModeBehaviorSupplier,
Supplier<ContextualSearchManager> contextualSearchManagerSupplier,
ObservableSupplier<TabModelSelector> tabModelSelectorSupplier) {
Supplier<ContextualSearchManager> contextualSearchManagerSupplier) {
super(activity, onOmniboxFocusChangedListener, shareDelegateSupplier, tabProvider,
profileSupplier, bookmarkBridgeSupplier, overviewModeBehaviorSupplier,
contextualSearchManagerSupplier, tabModelSelectorSupplier);
contextualSearchManagerSupplier);
mIntentWithEffect = intentWithEffect;
mEphemeralTabCoordinatorSupplier = ephemeralTabCoordinatorSupplier;
mCanAnimateBrowserControls = () -> {
......
......@@ -223,7 +223,6 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
* TODO(https://crbug.com/1084528): Use OneShotSupplier once it is ready.
* @param overviewModeBehaviorSupplier Supplier of the overview mode manager for the current
* profile.
* @param tabModelSelectorSupplier Supplier of the {@link TabModelSelector}.
*/
public ToolbarManager(ChromeActivity activity, BrowserControlsSizer controlsSizer,
FullscreenManager fullscreenManager, ToolbarControlContainer controlContainer,
......@@ -239,8 +238,7 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
@Nullable Supplier<Boolean> canAnimateNativeBrowserControls,
ObservableSupplier<OverviewModeBehavior> overviewModeBehaviorSupplier,
ObservableSupplier<AppMenuCoordinator> appMenuCoordinatorSupplier,
boolean shouldShowUpdateBadge,
ObservableSupplier<TabModelSelector> tabModelSelectorSupplier) {
boolean shouldShowUpdateBadge) {
TraceEvent.begin("ToolbarManager.ToolbarManager");
mActivity = activity;
mBrowserControlsSizer = controlsSizer;
......@@ -334,7 +332,7 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
mLocationBar.setDefaultTextEditActionModeCallback(
mActionModeController.getActionModeCallback());
mLocationBar.initializeControls(new WindowDelegate(mActivity.getWindow()),
mActivity.getWindowAndroid(), mActivityTabProvider, tabModelSelectorSupplier,
mActivity.getWindowAndroid(), mActivityTabProvider,
mActivity::getModalDialogManager, mActivity.getShareDelegateSupplier(),
mIncognitoStateProvider);
Runnable clickDelegate =
......
......@@ -41,8 +41,11 @@ import org.chromium.base.ApiCompatibilityUtils;
import org.chromium.base.ThreadUtils;
import org.chromium.base.library_loader.LibraryLoader;
import org.chromium.base.metrics.RecordUserAction;
import org.chromium.base.supplier.Supplier;
import org.chromium.base.task.PostTask;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ActivityTabProvider;
import org.chromium.chrome.browser.WindowDelegate;
import org.chromium.chrome.browser.app.ChromeActivity;
import org.chromium.chrome.browser.native_page.NativePageFactory;
import org.chromium.chrome.browser.ntp.NewTabPage;
......@@ -56,8 +59,10 @@ import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler;
import org.chromium.chrome.browser.page_info.ChromePageInfoControllerDelegate;
import org.chromium.chrome.browser.page_info.ChromePermissionParamsListBuilderDelegate;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.share.ShareDelegate;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TrustedCdn;
import org.chromium.chrome.browser.toolbar.IncognitoStateProvider;
import org.chromium.chrome.browser.toolbar.ToolbarColors;
import org.chromium.chrome.browser.toolbar.ToolbarDataProvider;
import org.chromium.chrome.browser.toolbar.ToolbarTabController;
......@@ -73,7 +78,9 @@ import org.chromium.content_public.common.ContentUrlConstants;
import org.chromium.net.GURLUtils;
import org.chromium.ui.base.Clipboard;
import org.chromium.ui.base.DeviceFormFactor;
import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.interpolators.BakedBezierInterpolator;
import org.chromium.ui.modaldialog.ModalDialogManager;
import org.chromium.ui.text.SpanApplier;
import org.chromium.ui.text.SpanApplier.SpanInfo;
import org.chromium.ui.util.ColorUtils;
......@@ -739,6 +746,13 @@ public class CustomTabToolbar extends ToolbarLayout implements View.OnLongClickL
}
}
@Override
public void initializeControls(WindowDelegate windowDelegate, WindowAndroid windowAndroid,
ActivityTabProvider activityTabProvider,
Supplier<ModalDialogManager> modalDialogManager,
Supplier<ShareDelegate> shareDelegateSupplier,
IncognitoStateProvider incognitoStateProvider) {}
@Override
public void updateStatusIcon() {
if (mState == STATE_TITLE_ONLY) return;
......
......@@ -149,8 +149,6 @@ public class RootUiCoordinator
@Nullable
private BrowserControlsManager mBrowserControlsManager;
private final ObservableSupplier<TabModelSelector> mTabModelSelectorSupplier;
/**
* Create a new {@link RootUiCoordinator} for the given activity.
* @param activity The containing {@link ChromeActivity}. TODO(https://crbug.com/931496):
......@@ -164,7 +162,6 @@ public class RootUiCoordinator
* @param overviewModeBehaviorSupplier Supplier of the overview mode manager for the current
* profile.
* @param contextualSearchManagerSupplier Supplier of the {@link ContextualSearchManager}.
* @param tabModelSelectorSupplier Supplier of the {@link TabModelSelector}.
*/
public RootUiCoordinator(ChromeActivity activity,
@Nullable Callback<Boolean> onOmniboxFocusChangedListener,
......@@ -172,8 +169,7 @@ public class RootUiCoordinator
ActivityTabProvider tabProvider, ObservableSupplier<Profile> profileSupplier,
ObservableSupplier<BookmarkBridge> bookmarkBridgeSupplier,
ObservableSupplier<OverviewModeBehavior> overviewModeBehaviorSupplier,
Supplier<ContextualSearchManager> contextualSearchManagerSupplier,
ObservableSupplier<TabModelSelector> tabModelSelectorSupplier) {
Supplier<ContextualSearchManager> contextualSearchManagerSupplier) {
mCallbackController = new CallbackController();
mActivity = activity;
mOnOmniboxFocusChangedListener = onOmniboxFocusChangedListener;
......@@ -196,8 +192,6 @@ public class RootUiCoordinator
mContextualSearchManagerSupplier = contextualSearchManagerSupplier;
mActionModeControllerCallback = new ToolbarActionModeCallback();
mTabModelSelectorSupplier = tabModelSelectorSupplier;
mOmniboxFocusStateSupplier.set(false);
mOverviewModeBehaviorSupplier = overviewModeBehaviorSupplier;
......@@ -315,7 +309,8 @@ public class RootUiCoordinator
}
mChromeActionModeHandler = new ChromeActionModeHandler(mActivity.getActivityTabProvider(),
mToolbarManager::onActionBarVisibilityChanged, (searchText) -> {
if (mTabModelSelectorSupplier.get() == null) return;
TabModelSelector selector = mActivity.getTabModelSelector();
if (selector == null) return;
String query = ActionModeCallbackHelper.sanitizeQuery(
searchText, ActionModeCallbackHelper.MAX_SEARCH_QUERY_LENGTH);
......@@ -326,8 +321,7 @@ public class RootUiCoordinator
.getTrackerForProfile(Profile.fromWebContents(tab.getWebContents()))
.notifyEvent(EventConstants.WEB_SEARCH_PERFORMED);
mTabModelSelectorSupplier.get().openNewTab(
generateUrlParamsForSearch(tab, query),
selector.openNewTab(generateUrlParamsForSearch(tab, query),
TabLaunchType.FROM_LONGPRESS_FOREGROUND, tab, tab.isIncognito());
}, mShareDelegateSupplier);
mVrModeObserver = new VrModeObserver() {
......@@ -396,7 +390,7 @@ public class RootUiCoordinator
} else if (id == R.id.share_menu_button_id || id == R.id.share_menu_id
|| id == R.id.direct_share_menu_id) {
onShareMenuItemSelected(id == R.id.direct_share_menu_id,
mTabModelSelectorSupplier.get().isIncognitoSelected());
mActivity.getTabModelSelector().isIncognitoSelected());
} else if (id == R.id.paint_preview_show_id) {
Tab tab = mActivityTabProvider.get();
PaintPreviewTabHelper paintPreviewTabHelper = PaintPreviewTabHelper.get(tab);
......@@ -518,7 +512,7 @@ public class RootUiCoordinator
mActivityTabProvider, mScrimCoordinator, mActionModeControllerCallback,
mFindToolbarManager, mProfileSupplier, mBookmarkBridgeSupplier,
mCanAnimateBrowserControls, mOverviewModeBehaviorSupplier, mAppMenuSupplier,
shouldShowMenuUpdateBadge(), mTabModelSelectorSupplier);
shouldShowMenuUpdateBadge());
if (!mActivity.supportsAppMenu()) {
mToolbarManager.getToolbar().disableMenuButton();
}
......@@ -615,7 +609,7 @@ public class RootUiCoordinator
}
mFindToolbarManager = new FindToolbarManager(
new DeferredViewStubInflationProvider<FindToolbar>(mActivity.findViewById(stubId)),
mTabModelSelectorSupplier.get(), mActivity.getWindowAndroid(),
mActivity.getTabModelSelector(), mActivity.getWindowAndroid(),
mActionModeControllerCallback);
mFindToolbarObserver = new FindToolbarObserver() {
......@@ -735,8 +729,9 @@ public class RootUiCoordinator
private void initDirectActionInitializer() {
@ActivityType
int activityType = mActivity.getActivityType();
TabModelSelector tabModelSelector = mActivity.getTabModelSelector();
mDirectActionInitializer = new DirectActionInitializer(mActivity, activityType, mActivity,
mActivity::onBackPressed, mTabModelSelectorSupplier.get(), mFindToolbarManager,
mActivity::onBackPressed, tabModelSelector, mFindToolbarManager,
getBottomSheetController(), mActivity.getBrowserControlsManager(),
mActivity.getCompositorViewHolder(), mActivity.getActivityTabProvider());
mActivity.getLifecycleDispatcher().register(mDirectActionInitializer);
......
......@@ -170,7 +170,7 @@ public class ShareIntentTest {
RootUiCoordinator rootUiCoordinator = TestThreadUtils.runOnUiThreadBlocking(() -> {
return new RootUiCoordinator(mockActivity, null,
mockActivity.getShareDelegateSupplier(), mockActivity.getActivityTabProvider(),
null, null, mockActivity.getOverviewModeBehaviorSupplier(), null, null);
null, null, mockActivity.getOverviewModeBehaviorSupplier(), null);
});
ShareHelper.setLastShareComponentName(new ComponentName("test.package", "test.activity"));
// Skips the capture of screenshot and notifies with an empty file.
......
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