Commit 901e3fa3 authored by Alice Wang's avatar Alice Wang Committed by Chromium LUCI CQ

[Signin] Make SigninPromoController independent of SigninActivityLauncherImpl

This CL breaks the dependency of SigninPromoController on
SigninActivityLauncherImpl to facilitate the modularization of
SigninPromoController in the future.

Bug: 1159833
Change-Id: I68edf1c70326984372ab881cf0f661febc8fe7c3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2600736Reviewed-by: default avatarBoris Sazonov <bsazonov@chromium.org>
Commit-Queue: Alice Wang <aliceywang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#839095}
parent 9afc45a6
......@@ -20,6 +20,7 @@ import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.signin.SigninActivityLauncherImpl;
import org.chromium.chrome.browser.signin.SigninPromoController;
import org.chromium.chrome.browser.signin.SigninPromoUtil;
import org.chromium.chrome.browser.signin.SyncPromoView;
......@@ -101,7 +102,8 @@ class BookmarkPromoHeader implements ProfileSyncService.SyncStateChangedListener
SigninAccessPoint.BOOKMARK_MANAGER)) {
mProfileDataCache = ProfileDataCache.createProfileDataCache(mContext);
mProfileDataCache.addObserver(this);
mSigninPromoController = new SigninPromoController(SigninAccessPoint.BOOKMARK_MANAGER);
mSigninPromoController = new SigninPromoController(
SigninAccessPoint.BOOKMARK_MANAGER, SigninActivityLauncherImpl.get());
mAccountManagerFacade.addObserver(this);
} else {
mProfileDataCache = null;
......
......@@ -17,6 +17,7 @@ import org.chromium.chrome.browser.invalidation.SessionsInvalidationManager;
import org.chromium.chrome.browser.ntp.ForeignSessionHelper.ForeignSession;
import org.chromium.chrome.browser.ntp.ForeignSessionHelper.ForeignSessionTab;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.signin.SigninActivityLauncherImpl;
import org.chromium.chrome.browser.signin.SigninPromoController;
import org.chromium.chrome.browser.signin.SigninPromoUtil;
import org.chromium.chrome.browser.signin.services.IdentityServicesProvider;
......@@ -109,7 +110,8 @@ public class RecentTabsManager implements ProfileSyncService.SyncStateChangedLis
mSignInManager = IdentityServicesProvider.get().getSigninManager(mProfile);
mProfileDataCache = ProfileDataCache.createProfileDataCache(context);
mSigninPromoController = new SigninPromoController(SigninAccessPoint.RECENT_TABS);
mSigninPromoController = new SigninPromoController(
SigninAccessPoint.RECENT_TABS, SigninActivityLauncherImpl.get());
mProfileSyncService = ProfileSyncService.get();
mRecentlyClosedTabManager.setTabsUpdatedRunnable(() -> {
......
......@@ -16,6 +16,7 @@ import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.signin.SigninActivityLauncherImpl;
import org.chromium.chrome.browser.signin.SigninPromoController;
import org.chromium.chrome.browser.signin.services.IdentityServicesProvider;
import org.chromium.chrome.browser.signin.services.ProfileDataCache;
......@@ -80,8 +81,8 @@ public abstract class SignInPromo extends OptionalLeaf {
updateVisibility();
mProfileDataCache = ProfileDataCache.createProfileDataCache(context);
mSigninPromoController =
new SigninPromoController(SigninAccessPoint.NTP_CONTENT_SUGGESTIONS);
mSigninPromoController = new SigninPromoController(
SigninAccessPoint.NTP_CONTENT_SUGGESTIONS, SigninActivityLauncherImpl.get());
mSigninObserver = new SigninObserver(signinManager);
}
......
......@@ -23,6 +23,7 @@ import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
import org.chromium.chrome.browser.signin.SigninActivity.AccessPoint;
import org.chromium.chrome.browser.signin.services.DisplayableProfileData;
import org.chromium.chrome.browser.signin.ui.PersonalizedSigninPromoView;
import org.chromium.chrome.browser.signin.ui.SigninActivityLauncher;
import org.chromium.components.browser_ui.widget.impression.ImpressionTracker;
import org.chromium.components.browser_ui.widget.impression.OneShotImpressionListener;
import org.chromium.components.signin.metrics.SigninAccessPoint;
......@@ -64,6 +65,7 @@ public class SigninPromoController {
private final @Nullable String mImpressionsTilXButtonHistogramName;
private final @StringRes int mDescriptionStringId;
private final @StringRes int mDescriptionStringIdNoAccount;
private final SigninActivityLauncher mSigninActivityLauncher;
private boolean mWasDisplayed;
private boolean mWasUsed;
......@@ -99,10 +101,12 @@ public class SigninPromoController {
/**
* Creates a new SigninPromoController.
* @param accessPoint Specifies the AccessPoint from which the promo is to be shown.
* @param signinActivityLauncher Launcher of {@link SigninActivity}.
*/
public SigninPromoController(@AccessPoint int accessPoint) {
public SigninPromoController(
@AccessPoint int accessPoint, SigninActivityLauncher signinActivityLauncher) {
mAccessPoint = accessPoint;
mSigninActivityLauncher = signinActivityLauncher;
switch (mAccessPoint) {
case SigninAccessPoint.BOOKMARK_MANAGER:
mImpressionCountName =
......@@ -311,21 +315,20 @@ public class SigninPromoController {
private void signinWithNewAccount(Context context) {
recordSigninButtonUsed();
RecordUserAction.record(mSigninNewAccountUserActionName);
SigninActivityLauncherImpl.get().launchActivityForPromoAddAccountFlow(
context, mAccessPoint);
mSigninActivityLauncher.launchActivityForPromoAddAccountFlow(context, mAccessPoint);
}
private void signinWithDefaultAccount(Context context) {
recordSigninButtonUsed();
RecordUserAction.record(mSigninWithDefaultUserActionName);
SigninActivityLauncherImpl.get().launchActivityForPromoDefaultFlow(
mSigninActivityLauncher.launchActivityForPromoDefaultFlow(
context, mAccessPoint, mProfileData.getAccountEmail());
}
private void signinWithNotDefaultAccount(Context context) {
recordSigninButtonUsed();
RecordUserAction.record(mSigninNotDefaultUserActionName);
SigninActivityLauncherImpl.get().launchActivityForPromoChooseAccountFlow(
mSigninActivityLauncher.launchActivityForPromoChooseAccountFlow(
context, mAccessPoint, mProfileData.getAccountEmail());
}
......
......@@ -17,6 +17,7 @@ import org.chromium.chrome.browser.firstrun.FirstRunSignInProcessor;
import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.signin.SigninActivityLauncherImpl;
import org.chromium.chrome.browser.signin.SigninPromoController;
import org.chromium.chrome.browser.signin.SigninPromoUtil;
import org.chromium.chrome.browser.signin.services.IdentityServicesProvider;
......@@ -165,7 +166,8 @@ public class SyncPromoPreference
setVisible(true);
if (mSigninPromoController == null) {
mSigninPromoController = new SigninPromoController(SigninAccessPoint.SETTINGS);
mSigninPromoController = new SigninPromoController(
SigninAccessPoint.SETTINGS, SigninActivityLauncherImpl.get());
}
notifyChanged();
......
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