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) { |