| Index: chrome/android/java/src/org/chromium/chrome/browser/signin/AccountSigninActivity.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/AccountSigninActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/AccountSigninActivity.java
|
| index 365e1b167ee0961af42d141287d98294c975d180..4717325e329ea0b2e7b52bcea9cd4b4f4c9b7243 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/signin/AccountSigninActivity.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/AccountSigninActivity.java
|
| @@ -18,6 +18,7 @@
|
| import org.chromium.chrome.R;
|
| import org.chromium.chrome.browser.firstrun.ProfileDataCache;
|
| import org.chromium.chrome.browser.init.ChromeBrowserInitializer;
|
| +import org.chromium.chrome.browser.preferences.ManagedPreferencesUtils;
|
| import org.chromium.chrome.browser.preferences.PreferencesLauncher;
|
| import org.chromium.chrome.browser.profiles.Profile;
|
| import org.chromium.chrome.browser.signin.SigninManager.SignInCallback;
|
| @@ -39,7 +40,8 @@
|
| private ProfileDataCache mProfileDataCache;
|
|
|
| @IntDef({SigninAccessPoint.SETTINGS, SigninAccessPoint.BOOKMARK_MANAGER,
|
| - SigninAccessPoint.RECENT_TABS, SigninAccessPoint.SIGNIN_PROMO})
|
| + SigninAccessPoint.RECENT_TABS, SigninAccessPoint.SIGNIN_PROMO,
|
| + SigninAccessPoint.NTP_LINK})
|
| @Retention(RetentionPolicy.SOURCE)
|
| public @interface AccessPoint {}
|
| @AccessPoint private int mAccessPoint;
|
| @@ -55,6 +57,24 @@ public static void startAccountSigninActivity(Context context, @AccessPoint int
|
| context.startActivity(intent);
|
| }
|
|
|
| + /**
|
| + * A convenience method to create a AccountSigninActivity passing the access point as an
|
| + * intent. Checks if the sign in flow can be started before showing the activity.
|
| + * @param accessPoint - A SigninAccessPoint designating where the activity is created from.
|
| + * @return {@code true} if sign in has been allowed.
|
| + */
|
| + public static boolean startIfAllowed(Context context, @AccessPoint int accessPoint) {
|
| + if (!SigninManager.get(context).isSignInAllowed()) {
|
| + if (SigninManager.get(context).isSigninDisabledByPolicy()) {
|
| + ManagedPreferencesUtils.showManagedByAdministratorToast(context);
|
| + }
|
| + return false;
|
| + }
|
| +
|
| + startAccountSigninActivity(context, accessPoint);
|
| + return true;
|
| + }
|
| +
|
| @Override
|
| @SuppressFBWarnings("DM_EXIT")
|
| protected void onCreate(Bundle savedInstanceState) {
|
|
|