Java Code Examples for org.chromium.chrome.browser.signin.SigninManager#onFirstRunCheckDone()

The following examples show how to use org.chromium.chrome.browser.signin.SigninManager#onFirstRunCheckDone() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: SyncController.java    From android-chromium with BSD 2-Clause "Simplified" License 6 votes vote down vote up
/**
 * Trigger Chromium sign in of the given account.
 *
 * This also ensure that sync setup is not in progress anymore, so sync will start after
 * sync initialization has happened.
 *
 * @param activity the current activity.
 * @param accountName the full account name.
 */
public void signIn(Activity activity, String accountName) {
    final Account account = AccountManagerHelper.createAccountFromName(accountName);

    // The SigninManager handles most of the sign-in flow, and doFinishSignIn handles the
    // Chromium testshell specific details.
    SigninManager signinManager = SigninManager.get(mContext);
    signinManager.onFirstRunCheckDone();
    final boolean passive = false;
    signinManager.startSignIn(activity, account, passive, new SigninManager.Observer() {
        @Override
        public void onSigninComplete() {
            SigninManager.get(mContext).logInSignedInUser();
            mProfileSyncService.setSetupInProgress(false);
            mProfileSyncService.syncSignIn();
            start();
        }

        @Override
        public void onSigninCancelled() {
            stop();
        }
    });
}
 
Example 2
Source File: SyncController.java    From android-chromium with BSD 2-Clause "Simplified" License 6 votes vote down vote up
/**
 * Trigger Chromium sign in of the given account.
 *
 * This also ensure that sync setup is not in progress anymore, so sync will start after
 * sync initialization has happened.
 *
 * @param activity the current activity.
 * @param accountName the full account name.
 */
public void signIn(Activity activity, String accountName) {
    final Account account = AccountManagerHelper.createAccountFromName(accountName);

    // The SigninManager handles most of the sign-in flow, and doFinishSignIn handles the
    // Chromium testshell specific details.
    SigninManager signinManager = SigninManager.get(mContext);
    signinManager.onFirstRunCheckDone();
    final boolean passive = false;
    signinManager.startSignIn(activity, account, passive, new SigninManager.Observer() {
        @Override
        public void onSigninComplete() {
            SigninManager.get(mContext).logInSignedInUser();
            mProfileSyncService.setSetupInProgress(false);
            mProfileSyncService.syncSignIn();
            start();
        }

        @Override
        public void onSigninCancelled() {
            stop();
        }
    });
}
 
Example 3
Source File: FirstRunSignInProcessor.java    From delion with Apache License 2.0 5 votes vote down vote up
/**
 * Allows the user to sign-in if there are no pending FRE sign-in requests.
 * @param context A context
 */
public static void updateSigninManagerFirstRunCheckDone(Context context) {
    SigninManager manager = SigninManager.get(context);
    if (manager.isSignInAllowed()) return;
    if (!FirstRunStatus.getFirstRunFlowComplete(context)) return;
    if (!getFirstRunFlowSignInComplete(context)) return;
    manager.onFirstRunCheckDone();
}
 
Example 4
Source File: ForcedSigninProcessor.java    From delion with Apache License 2.0 5 votes vote down vote up
/**
 * 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) {
    final SigninManager signinManager = SigninManager.get(appContext);
    // By definition we have finished all the checks for first run.
    signinManager.onFirstRunCheckDone();
    if (!FeatureUtilities.canAllowSync(appContext) || !signinManager.isSignInAllowed()) {
        Log.d(TAG, "Sign in disallowed");
        return;
    }
    AccountManagerHelper.get(appContext).getGoogleAccounts(new Callback<Account[]>() {
        @Override
        public void onResult(Account[] accounts) {
            if (accounts.length != 1) {
                Log.d(TAG, "Incorrect number of accounts (%d)", accounts.length);
                return;
            }
            signinManager.signIn(accounts[0], null, new SigninManager.SignInCallback() {
                @Override
                public void onSignInComplete() {
                    // Since this is a forced signin, signout is not allowed.
                    AccountManagementFragment.setSignOutAllowedPreferenceValue(
                            appContext, false);
                }

                @Override
                public void onSignInAborted() {}
            });
        }
    });
}
 
Example 5
Source File: FirstRunSignInProcessor.java    From AndroidChromium with Apache License 2.0 5 votes vote down vote up
/**
 * Allows the user to sign-in if there are no pending FRE sign-in requests.
 * @param context A context
 */
public static void updateSigninManagerFirstRunCheckDone(Context context) {
    SigninManager manager = SigninManager.get(context);
    if (manager.isSignInAllowed()) return;
    if (!FirstRunStatus.getFirstRunFlowComplete()) return;
    if (!getFirstRunFlowSignInComplete(context)) return;
    manager.onFirstRunCheckDone();
}
 
Example 6
Source File: ForcedSigninProcessor.java    From AndroidChromium with Apache License 2.0 5 votes vote down vote up
/**
 * 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) {
    final SigninManager signinManager = SigninManager.get(appContext);
    // By definition we have finished all the checks for first run.
    signinManager.onFirstRunCheckDone();
    if (!FeatureUtilities.canAllowSync(appContext) || !signinManager.isSignInAllowed()) {
        Log.d(TAG, "Sign in disallowed");
        return;
    }
    AccountManagerHelper.get(appContext).getGoogleAccounts(new Callback<Account[]>() {
        @Override
        public void onResult(Account[] accounts) {
            if (accounts.length != 1) {
                Log.d(TAG, "Incorrect number of accounts (%d)", accounts.length);
                return;
            }
            signinManager.signIn(accounts[0], null, new SigninManager.SignInCallback() {
                @Override
                public void onSignInComplete() {
                    // Since this is a forced signin, signout is not allowed.
                    AccountManagementFragment.setSignOutAllowedPreferenceValue(
                            appContext, false);
                }

                @Override
                public void onSignInAborted() {}
            });
        }
    });
}
 
Example 7
Source File: FirstRunSignInProcessor.java    From 365browser with Apache License 2.0 5 votes vote down vote up
/**
 * Allows the user to sign-in if there are no pending FRE sign-in requests.
 * @param context A context
 */
public static void updateSigninManagerFirstRunCheckDone(Context context) {
    SigninManager manager = SigninManager.get(context);
    if (manager.isSignInAllowed()) return;
    if (!FirstRunStatus.getFirstRunFlowComplete()) return;
    if (!getFirstRunFlowSignInComplete(context)) return;
    manager.onFirstRunCheckDone();
}
 
Example 8
Source File: ForcedSigninProcessor.java    From 365browser with Apache License 2.0 5 votes vote down vote up
/**
 * 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, @Nullable final Runnable onComplete) {
    final SigninManager signinManager = SigninManager.get(appContext);
    // By definition we have finished all the checks for first run.
    signinManager.onFirstRunCheckDone();
    if (!FeatureUtilities.canAllowSync(appContext) || !signinManager.isSignInAllowed()) {
        Log.d(TAG, "Sign in disallowed");
        return;
    }
    AccountManagerHelper.get().getGoogleAccounts(new Callback<Account[]>() {
        @Override
        public void onResult(Account[] accounts) {
            if (accounts.length != 1) {
                Log.d(TAG, "Incorrect number of accounts (%d)", accounts.length);
                return;
            }
            signinManager.signIn(accounts[0], null, new SigninManager.SignInCallback() {
                @Override
                public void onSignInComplete() {
                    // Since this is a forced signin, signout is not allowed.
                    AccountManagementFragment.setSignOutAllowedPreferenceValue(false);
                    if (onComplete != null) {
                        onComplete.run();
                    }
                }

                @Override
                public void onSignInAborted() {
                    if (onComplete != null) {
                        onComplete.run();
                    }
                }
            });
        }
    });
}
 
Example 9
Source File: FirstRunSignInProcessor.java    From delion with Apache License 2.0 4 votes vote down vote up
/**
 * Initiates the automatic sign-in process in background.
 *
 * @param activity The context for the FRE parameters processor.
 */
public static void start(final Activity activity) {
    SigninManager signinManager = SigninManager.get(activity.getApplicationContext());
    signinManager.onFirstRunCheckDone();

    boolean firstRunFlowComplete = FirstRunStatus.getFirstRunFlowComplete(activity);
    // We skip signin and the FRE only if
    // - FRE is disabled, or
    // - FRE hasn't been completed, but the user has already seen the ToS in the Setup Wizard.
    if (CommandLine.getInstance().hasSwitch(ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE)
            || (!firstRunFlowComplete && ToSAckedReceiver.checkAnyUserHasSeenToS(activity))) {
        return;
    }

    // Skip sign in if Chrome is neither started via Chrome icon nor GSA (Google Search App).
    if (!TextUtils.equals(activity.getIntent().getAction(), Intent.ACTION_MAIN)
            && IntentHandler.determineExternalIntentSource(
                       activity.getPackageName(), activity.getIntent())
                    != ExternalAppId.GSA) {
        return;
    }

    // Otherwise, force trigger the FRE.
    if (!firstRunFlowComplete) {
        requestToFireIntentAndFinish(activity);
        return;
    }

    // We are only processing signin from the FRE.
    if (getFirstRunFlowSignInComplete(activity)) {
        return;
    }
    final String accountName = getFirstRunFlowSignInAccountName(activity);
    if (!FeatureUtilities.canAllowSync(activity) || !signinManager.isSignInAllowed()
            || TextUtils.isEmpty(accountName)) {
        setFirstRunFlowSignInComplete(activity, true);
        return;
    }

    final boolean setUp = getFirstRunFlowSignInSetup(activity);
    signinManager.signIn(accountName, activity, new SignInCallback() {
        @Override
        public void onSignInComplete() {
            // Show sync settings if user pressed the "Settings" button.
            if (setUp) {
                openSignInSettings(activity);
            }
            setFirstRunFlowSignInComplete(activity, true);
        }

        @Override
        public void onSignInAborted() {
            // Set FRE as complete even if signin fails because the user has already seen and
            // accepted the terms of service.
            setFirstRunFlowSignInComplete(activity, true);
        }
    });
}
 
Example 10
Source File: FirstRunSignInProcessor.java    From AndroidChromium with Apache License 2.0 4 votes vote down vote up
/**
 * Initiates the automatic sign-in process in background.
 *
 * @param activity The context for the FRE parameters processor.
 */
public static void start(final Activity activity) {
    SigninManager signinManager = SigninManager.get(activity.getApplicationContext());
    signinManager.onFirstRunCheckDone();

    boolean firstRunFlowComplete = FirstRunStatus.getFirstRunFlowComplete();
    // We skip signin and the FRE if
    // - FRE is disabled, or
    // - FRE hasn't been completed, but the user has already seen the ToS in the Setup Wizard.
    if (CommandLine.getInstance().hasSwitch(ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE)
            || ApiCompatibilityUtils.isDemoUser(activity)
            || (!firstRunFlowComplete && ToSAckedReceiver.checkAnyUserHasSeenToS(activity))) {
        return;
    }

    // Force trigger the FRE if the Lightweight FRE is disabled or Chrome is started via Chrome
    // icon or via intent from GSA. Otherwise, skip signin.
    if (!firstRunFlowComplete) {
        if (!CommandLine.getInstance().hasSwitch(
                    ChromeSwitches.ENABLE_LIGHTWEIGHT_FIRST_RUN_EXPERIENCE)
                || TextUtils.equals(activity.getIntent().getAction(), Intent.ACTION_MAIN)
                || IntentHandler.determineExternalIntentSource(
                           activity.getPackageName(), activity.getIntent())
                        == ExternalAppId.GSA) {
            requestToFireIntentAndFinish(activity);
        }
        return;
    }

    // We are only processing signin from the FRE.
    if (getFirstRunFlowSignInComplete(activity)) {
        return;
    }
    final String accountName = getFirstRunFlowSignInAccountName(activity);
    if (!FeatureUtilities.canAllowSync(activity) || !signinManager.isSignInAllowed()
            || TextUtils.isEmpty(accountName)) {
        setFirstRunFlowSignInComplete(activity, true);
        return;
    }

    final boolean setUp = getFirstRunFlowSignInSetup(activity);
    signinManager.signIn(accountName, activity, new SignInCallback() {
        @Override
        public void onSignInComplete() {
            // Show sync settings if user pressed the "Settings" button.
            if (setUp) {
                openSignInSettings(activity);
            }
            setFirstRunFlowSignInComplete(activity, true);
        }

        @Override
        public void onSignInAborted() {
            // Set FRE as complete even if signin fails because the user has already seen and
            // accepted the terms of service.
            setFirstRunFlowSignInComplete(activity, true);
        }
    });
}
 
Example 11
Source File: FirstRunSignInProcessor.java    From 365browser with Apache License 2.0 4 votes vote down vote up
/**
 * Initiates the automatic sign-in process in background.
 *
 * @param activity The context for the FRE parameters processor.
 */
public static void start(final Activity activity) {
    SigninManager signinManager = SigninManager.get(activity.getApplicationContext());
    signinManager.onFirstRunCheckDone();

    boolean firstRunFlowComplete = FirstRunStatus.getFirstRunFlowComplete();
    // We skip signin and the FRE if
    // - FRE is disabled, or
    // - FRE hasn't been completed, but the user has already seen the ToS in the Setup Wizard.
    if (CommandLine.getInstance().hasSwitch(ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE)
            || ApiCompatibilityUtils.isDemoUser(activity)
            || (!firstRunFlowComplete && ToSAckedReceiver.checkAnyUserHasSeenToS(activity))) {
        return;
    }

    // Force trigger the FRE if the Lightweight FRE is disabled or Chrome is started via Chrome
    // icon or via intent from GSA. Otherwise, skip signin.
    if (!firstRunFlowComplete) {
        if (!CommandLine.getInstance().hasSwitch(
                    ChromeSwitches.ENABLE_LIGHTWEIGHT_FIRST_RUN_EXPERIENCE)
                || TextUtils.equals(activity.getIntent().getAction(), Intent.ACTION_MAIN)
                || IntentHandler.determineExternalIntentSource(
                           activity.getPackageName(), activity.getIntent())
                        == ExternalAppId.GSA) {
            requestToFireIntentAndFinish(activity);
        }
        return;
    }

    // We are only processing signin from the FRE.
    if (getFirstRunFlowSignInComplete(activity)) {
        return;
    }
    final String accountName = getFirstRunFlowSignInAccountName(activity);
    if (!FeatureUtilities.canAllowSync(activity) || !signinManager.isSignInAllowed()
            || TextUtils.isEmpty(accountName)) {
        setFirstRunFlowSignInComplete(activity, true);
        return;
    }

    final boolean setUp = getFirstRunFlowSignInSetup(activity);
    signinManager.signIn(accountName, activity, new SignInCallback() {
        @Override
        public void onSignInComplete() {
            // Show sync settings if user pressed the "Settings" button.
            if (setUp) {
                openSignInSettings(activity);
            }
            setFirstRunFlowSignInComplete(activity, true);
        }

        @Override
        public void onSignInAborted() {
            // Set FRE as complete even if signin fails because the user has already seen and
            // accepted the terms of service.
            setFirstRunFlowSignInComplete(activity, true);
        }
    });
}