Search in sources :

Example 1 with SigninManager

use of org.chromium.chrome.browser.signin.SigninManager in project AndroidChromium by JackyAndroid.

the class SignInPreference method unregisterForUpdates.

/**
     * Stops listening for updates to the sign-in and sync state. Every call to registerForUpdates()
     * must be matched with a call to this method.
     */
public void unregisterForUpdates() {
    SigninManager manager = SigninManager.get(getContext());
    manager.removeSignInAllowedObserver(this);
    ProfileDownloader.removeObserver(this);
    AndroidSyncSettings.unregisterObserver(getContext(), this);
    ProfileSyncService syncService = ProfileSyncService.get();
    if (syncService != null) {
        syncService.removeSyncStateChangedListener(this);
    }
}
Also used : ProfileSyncService(org.chromium.chrome.browser.sync.ProfileSyncService) SigninManager(org.chromium.chrome.browser.signin.SigninManager)

Example 2 with SigninManager

use of org.chromium.chrome.browser.signin.SigninManager in project AndroidChromium by JackyAndroid.

the class SignInPreference method registerForUpdates.

/**
     * Starts listening for updates to the sign-in and sync state.
     */
public void registerForUpdates() {
    SigninManager manager = SigninManager.get(getContext());
    manager.addSignInAllowedObserver(this);
    ProfileDownloader.addObserver(this);
    FirstRunSignInProcessor.updateSigninManagerFirstRunCheckDone(getContext());
    AndroidSyncSettings.registerObserver(getContext(), this);
    ProfileSyncService syncService = ProfileSyncService.get();
    if (syncService != null) {
        syncService.addSyncStateChangedListener(this);
    }
}
Also used : ProfileSyncService(org.chromium.chrome.browser.sync.ProfileSyncService) SigninManager(org.chromium.chrome.browser.signin.SigninManager)

Example 3 with SigninManager

use of org.chromium.chrome.browser.signin.SigninManager in project AndroidChromium by JackyAndroid.

the class ForcedSigninProcessor method processForcedSignIn.

/**
     * 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() {
                }
            });
        }
    });
}
Also used : Account(android.accounts.Account) SigninManager(org.chromium.chrome.browser.signin.SigninManager)

Example 4 with SigninManager

use of org.chromium.chrome.browser.signin.SigninManager in project AndroidChromium by JackyAndroid.

the class FirstRunSignInProcessor method start.

/**
     * 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);
    // - 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;
    }
    // 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);
        }
    });
}
Also used : SignInCallback(org.chromium.chrome.browser.signin.SigninManager.SignInCallback) SigninManager(org.chromium.chrome.browser.signin.SigninManager)

Example 5 with SigninManager

use of org.chromium.chrome.browser.signin.SigninManager in project AndroidChromium by JackyAndroid.

the class FirstRunSignInProcessor method updateSigninManagerFirstRunCheckDone.

/**
     * 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();
}
Also used : SigninManager(org.chromium.chrome.browser.signin.SigninManager)

Aggregations

SigninManager (org.chromium.chrome.browser.signin.SigninManager)5 ProfileSyncService (org.chromium.chrome.browser.sync.ProfileSyncService)2 Account (android.accounts.Account)1 SignInCallback (org.chromium.chrome.browser.signin.SigninManager.SignInCallback)1