Commit 8315bbca authored by Brandon Wylie's avatar Brandon Wylie Committed by Commit Bot

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/+/2382958Reviewed-by: default avatarPatrick Noland <pnoland@chromium.org>
Reviewed-by: default avatarTed Choc <tedchoc@chromium.org>
Reviewed-by: default avatarTomasz Wiszkowski <ender@google.com>
Commit-Queue: Brandon Wylie <wylieb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#804419}
parent ca20efec
......@@ -1438,7 +1438,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
return new TabbedRootUiCoordinator(this, this::onOmniboxFocusChanged,
mIntentWithEffectSupplier, getShareDelegateSupplier(), getActivityTabProvider(),
mEphemeralTabCoordinatorSupplier, mTabModelProfileSupplier, mBookmarkBridgeSupplier,
getOverviewModeBehaviorSupplier(), this::getContextualSearchManager);
getOverviewModeBehaviorSupplier(), this::getContextualSearchManager,
mTabModelSelectorSupplier);
}
@Override
......
......@@ -277,9 +277,6 @@ 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",
],
......
......@@ -377,7 +377,8 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
// a recommended pattern.
return new RootUiCoordinator(this, null, getShareDelegateSupplier(),
getActivityTabProvider(), mTabModelProfileSupplier, mBookmarkBridgeSupplier,
getOverviewModeBehaviorSupplier(), this::getContextualSearchManager);
getOverviewModeBehaviorSupplier(), this::getContextualSearchManager,
mTabModelSelectorSupplier);
}
private C createComponent() {
......
......@@ -150,9 +150,13 @@ public abstract class BaseCustomTabActivity extends ChromeActivity<BaseCustomTab
@Override
protected RootUiCoordinator createRootUiCoordinator() {
return new BaseCustomTabRootUiCoordinator(this, getShareDelegateSupplier(),
() -> mToolbarCoordinator, () -> mNavigationController, getActivityTabProvider(),
mTabModelProfileSupplier, mBookmarkBridgeSupplier, mOverviewModeBehaviorSupplier,
this::getContextualSearchManager);
()
-> mToolbarCoordinator,
()
-> mNavigationController,
getActivityTabProvider(), mTabModelProfileSupplier, mBookmarkBridgeSupplier,
mOverviewModeBehaviorSupplier, this::getContextualSearchManager,
mTabModelSelectorSupplier);
}
@Override
......
......@@ -20,6 +20,7 @@ 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;
......@@ -38,10 +39,11 @@ public class BaseCustomTabRootUiCoordinator
ActivityTabProvider tabProvider, ObservableSupplier<Profile> profileSupplier,
ObservableSupplier<BookmarkBridge> bookmarkBridgeSupplier,
ObservableSupplier<OverviewModeBehavior> overviewModeBehaviorSupplier,
Supplier<ContextualSearchManager> contextualSearchManagerSupplier) {
Supplier<ContextualSearchManager> contextualSearchManagerSupplier,
ObservableSupplier<TabModelSelector> tabModelSelectorSupplier) {
super(activity, null, shareDelegateSupplier, tabProvider, profileSupplier,
bookmarkBridgeSupplier, overviewModeBehaviorSupplier,
contextualSearchManagerSupplier);
contextualSearchManagerSupplier, tabModelSelectorSupplier);
mToolbarCoordinator = customTabToolbarCoordinator;
mNavigationController = customTabNavigationController;
}
......
......@@ -11,6 +11,7 @@ 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;
......@@ -20,6 +21,7 @@ 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;
......@@ -142,16 +144,19 @@ 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.
*/
void initializeControls(WindowDelegate windowDelegate, WindowAndroid windowAndroid,
default 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,6 +34,7 @@ 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;
......@@ -62,6 +63,7 @@ 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;
......@@ -301,6 +303,7 @@ 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) {
......@@ -310,6 +313,7 @@ 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,6 +8,7 @@ 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;
......@@ -16,6 +17,7 @@ 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;
......@@ -58,6 +60,11 @@ 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,6 +17,7 @@ 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;
......@@ -38,6 +39,7 @@ 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;
......@@ -233,6 +235,12 @@ 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,6 +52,7 @@ 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;
......@@ -146,6 +147,9 @@ 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;
......@@ -354,6 +358,15 @@ 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.
*/
......@@ -579,7 +592,8 @@ class AutocompleteMediator implements OnSuggestionsReceivedListener, StartStopWi
@Override
public void onSwitchToTab(OmniboxSuggestion suggestion, int position) {
Tab tab = mAutocomplete.findMatchingTabWithUrl(suggestion.getUrl());
if (tab == null) {
if (tab == null || mTabModelSelectorSupplier == null
|| mTabModelSelectorSupplier.get() == null) {
onSelection(suggestion, position);
return;
}
......@@ -589,14 +603,9 @@ 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(
chromeActivity.getTabModelSelector().getModel(tab.isIncognito()), tab.getId());
chromeActivity.getTabModelSelector()
mTabModelSelectorSupplier.get().getModel(tab.isIncognito()), tab.getId());
mTabModelSelectorSupplier.get()
.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);
new WindowDelegate(getWindow()), getWindowAndroid(), null, null, null, null, null);
// Kick off everything needed for the user to type into the box.
beginQuery();
......
......@@ -45,6 +45,7 @@ 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;
......@@ -103,10 +104,11 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator implements Native
ObservableSupplier<Profile> profileSupplier,
ObservableSupplier<BookmarkBridge> bookmarkBridgeSupplier,
ObservableSupplier<OverviewModeBehavior> overviewModeBehaviorSupplier,
Supplier<ContextualSearchManager> contextualSearchManagerSupplier) {
Supplier<ContextualSearchManager> contextualSearchManagerSupplier,
ObservableSupplier<TabModelSelector> tabModelSelectorSupplier) {
super(activity, onOmniboxFocusChangedListener, shareDelegateSupplier, tabProvider,
profileSupplier, bookmarkBridgeSupplier, overviewModeBehaviorSupplier,
contextualSearchManagerSupplier);
contextualSearchManagerSupplier, tabModelSelectorSupplier);
mIntentWithEffect = intentWithEffect;
mEphemeralTabCoordinatorSupplier = ephemeralTabCoordinatorSupplier;
mCanAnimateBrowserControls = () -> {
......
......@@ -223,6 +223,7 @@ 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,
......@@ -238,7 +239,8 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
@Nullable Supplier<Boolean> canAnimateNativeBrowserControls,
ObservableSupplier<OverviewModeBehavior> overviewModeBehaviorSupplier,
ObservableSupplier<AppMenuCoordinator> appMenuCoordinatorSupplier,
boolean shouldShowUpdateBadge) {
boolean shouldShowUpdateBadge,
ObservableSupplier<TabModelSelector> tabModelSelectorSupplier) {
TraceEvent.begin("ToolbarManager.ToolbarManager");
mActivity = activity;
mBrowserControlsSizer = controlsSizer;
......@@ -332,7 +334,7 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
mLocationBar.setDefaultTextEditActionModeCallback(
mActionModeController.getActionModeCallback());
mLocationBar.initializeControls(new WindowDelegate(mActivity.getWindow()),
mActivity.getWindowAndroid(), mActivityTabProvider,
mActivity.getWindowAndroid(), mActivityTabProvider, tabModelSelectorSupplier,
mActivity::getModalDialogManager, mActivity.getShareDelegateSupplier(),
mIncognitoStateProvider);
Runnable clickDelegate =
......
......@@ -41,11 +41,8 @@ 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;
......@@ -59,10 +56,8 @@ 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;
......@@ -78,9 +73,7 @@ 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;
......@@ -746,13 +739,6 @@ 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,6 +149,8 @@ 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):
......@@ -162,6 +164,7 @@ 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,
......@@ -169,7 +172,8 @@ public class RootUiCoordinator
ActivityTabProvider tabProvider, ObservableSupplier<Profile> profileSupplier,
ObservableSupplier<BookmarkBridge> bookmarkBridgeSupplier,
ObservableSupplier<OverviewModeBehavior> overviewModeBehaviorSupplier,
Supplier<ContextualSearchManager> contextualSearchManagerSupplier) {
Supplier<ContextualSearchManager> contextualSearchManagerSupplier,
ObservableSupplier<TabModelSelector> tabModelSelectorSupplier) {
mCallbackController = new CallbackController();
mActivity = activity;
mOnOmniboxFocusChangedListener = onOmniboxFocusChangedListener;
......@@ -192,6 +196,8 @@ public class RootUiCoordinator
mContextualSearchManagerSupplier = contextualSearchManagerSupplier;
mActionModeControllerCallback = new ToolbarActionModeCallback();
mTabModelSelectorSupplier = tabModelSelectorSupplier;
mOmniboxFocusStateSupplier.set(false);
mOverviewModeBehaviorSupplier = overviewModeBehaviorSupplier;
......@@ -309,8 +315,7 @@ public class RootUiCoordinator
}
mChromeActionModeHandler = new ChromeActionModeHandler(mActivity.getActivityTabProvider(),
mToolbarManager::onActionBarVisibilityChanged, (searchText) -> {
TabModelSelector selector = mActivity.getTabModelSelector();
if (selector == null) return;
if (mTabModelSelectorSupplier.get() == null) return;
String query = ActionModeCallbackHelper.sanitizeQuery(
searchText, ActionModeCallbackHelper.MAX_SEARCH_QUERY_LENGTH);
......@@ -321,7 +326,8 @@ public class RootUiCoordinator
.getTrackerForProfile(Profile.fromWebContents(tab.getWebContents()))
.notifyEvent(EventConstants.WEB_SEARCH_PERFORMED);
selector.openNewTab(generateUrlParamsForSearch(tab, query),
mTabModelSelectorSupplier.get().openNewTab(
generateUrlParamsForSearch(tab, query),
TabLaunchType.FROM_LONGPRESS_FOREGROUND, tab, tab.isIncognito());
}, mShareDelegateSupplier);
mVrModeObserver = new VrModeObserver() {
......@@ -390,7 +396,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,
mActivity.getTabModelSelector().isIncognitoSelected());
mTabModelSelectorSupplier.get().isIncognitoSelected());
} else if (id == R.id.paint_preview_show_id) {
Tab tab = mActivityTabProvider.get();
PaintPreviewTabHelper paintPreviewTabHelper = PaintPreviewTabHelper.get(tab);
......@@ -512,7 +518,7 @@ public class RootUiCoordinator
mActivityTabProvider, mScrimCoordinator, mActionModeControllerCallback,
mFindToolbarManager, mProfileSupplier, mBookmarkBridgeSupplier,
mCanAnimateBrowserControls, mOverviewModeBehaviorSupplier, mAppMenuSupplier,
shouldShowMenuUpdateBadge());
shouldShowMenuUpdateBadge(), mTabModelSelectorSupplier);
if (!mActivity.supportsAppMenu()) {
mToolbarManager.getToolbar().disableMenuButton();
}
......@@ -609,7 +615,7 @@ public class RootUiCoordinator
}
mFindToolbarManager = new FindToolbarManager(
new DeferredViewStubInflationProvider<FindToolbar>(mActivity.findViewById(stubId)),
mActivity.getTabModelSelector(), mActivity.getWindowAndroid(),
mTabModelSelectorSupplier.get(), mActivity.getWindowAndroid(),
mActionModeControllerCallback);
mFindToolbarObserver = new FindToolbarObserver() {
......@@ -729,9 +735,8 @@ public class RootUiCoordinator
private void initDirectActionInitializer() {
@ActivityType
int activityType = mActivity.getActivityType();
TabModelSelector tabModelSelector = mActivity.getTabModelSelector();
mDirectActionInitializer = new DirectActionInitializer(mActivity, activityType, mActivity,
mActivity::onBackPressed, tabModelSelector, mFindToolbarManager,
mActivity::onBackPressed, mTabModelSelectorSupplier.get(), 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, mockActivity.getOverviewModeBehaviorSupplier(), null, 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