| Index: chrome/android/java/src/org/chromium/chrome/browser/firstrun/ForcedSigninProcessor.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ForcedSigninProcessor.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ForcedSigninProcessor.java
|
| index 82ac3ab9a72d3920d660eac49f77ed1e1a302dc5..85247823c4c787753be1215ded4e8dbbdb89a137 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ForcedSigninProcessor.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ForcedSigninProcessor.java
|
| @@ -19,6 +19,8 @@ import org.chromium.chrome.browser.util.FeatureUtilities;
|
| import org.chromium.components.signin.AccountManagerHelper;
|
| import org.chromium.components.signin.ChromeSigninController;
|
|
|
| +import javax.annotation.Nullable;
|
| +
|
| /**
|
| * A helper to perform all necessary steps for forced sign in.
|
| * The helper performs:
|
| @@ -44,7 +46,7 @@ public final class ForcedSigninProcessor {
|
| * This is triggered once per Chrome Application lifetime and everytime the Account state
|
| * changes with early exit if an account has already been signed in.
|
| */
|
| - public static void start(final Context appContext) {
|
| + public static void start(final Context appContext, @Nullable final Runnable onComplete) {
|
| if (ChromeSigninController.get(appContext).isSignedIn()) return;
|
| new AndroidEduAndChildAccountHelper() {
|
| @Override
|
| @@ -55,7 +57,7 @@ public final class ForcedSigninProcessor {
|
| if (!isAndroidEduDevice && !hasChildAccount) return;
|
| // Child account and EDU device at the same time is not supported.
|
| assert !(isAndroidEduDevice && hasChildAccount);
|
| - processForcedSignIn(appContext);
|
| + processForcedSignIn(appContext, onComplete);
|
| }
|
| }.start(appContext);
|
| }
|
| @@ -64,7 +66,8 @@ public final class ForcedSigninProcessor {
|
| * Processes the fully automatic non-FRE-related forced sign-in.
|
| * This is used to enforce the environment for Android EDU and child accounts.
|
| */
|
| - private static void processForcedSignIn(final Context appContext) {
|
| + private static void processForcedSignIn(
|
| + final Context appContext, @Nullable final Runnable onComplete) {
|
| final SigninManager signinManager = SigninManager.get(appContext);
|
| // By definition we have finished all the checks for first run.
|
| signinManager.onFirstRunCheckDone();
|
| @@ -85,10 +88,17 @@ public final class ForcedSigninProcessor {
|
| // Since this is a forced signin, signout is not allowed.
|
| AccountManagementFragment.setSignOutAllowedPreferenceValue(
|
| appContext, false);
|
| + if (onComplete != null) {
|
| + onComplete.run();
|
| + }
|
| }
|
|
|
| @Override
|
| - public void onSignInAborted() {}
|
| + public void onSignInAborted() {
|
| + if (onComplete != null) {
|
| + onComplete.run();
|
| + }
|
| + }
|
| });
|
| }
|
| });
|
|
|