Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1088)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java

Issue 2014833002: Show dialogs for syncing to managed accounts. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Replace getContext with getActivity in AccountManagementFragment. Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java
index cfdb33b07a8bccd9a1ca274eedcd19fbfd4e7ae6..f992f5780a4155bb32d5c72551bc381ecd936c5f 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java
@@ -6,7 +6,6 @@ package org.chromium.chrome.browser.signin;
import android.accounts.Account;
import android.app.Activity;
-import android.app.DialogFragment;
import android.content.Context;
import android.os.Handler;
@@ -18,7 +17,6 @@ import org.chromium.base.Log;
import org.chromium.base.ObserverList;
import org.chromium.base.Promise;
import org.chromium.base.ThreadUtils;
-import org.chromium.base.VisibleForTesting;
import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.metrics.RecordHistogram;
import org.chromium.base.metrics.RecordUserAction;
@@ -43,12 +41,6 @@ import javax.annotation.Nullable;
public class SigninManager implements AccountTrackerService.OnSystemAccountsSeededListener {
private static final String TAG = "SigninManager";
- private static final String CONFIRM_ACCOUNT_CHANGED_DIALOG_TAG =
- "confirm_account_changed_dialog_tag";
- @VisibleForTesting
- public static final String CONFIRM_MANAGED_SIGNIN_DIALOG_TAG =
- "confirm_managed_signin_dialog_tag";
-
private static SigninManager sSigninManager;
private static int sSignInAccessPoint = SigninAccessPoint.UNKNOWN;
@@ -146,11 +138,6 @@ public class SigninManager implements AccountTrackerService.OnSystemAccountsSeed
public final SignInCallback callback;
/**
- * The dialog currently being displayed to the user, if any.
- */
- public DialogFragment displayedDialog = null;
-
- /**
* If the system accounts need to be seeded, the sign in flow will block for that to occur.
* This boolean should be set to true during that time and then reset back to false
* afterwards. This allows the manager to know if it should progress the flow when the
@@ -426,30 +413,7 @@ public class SigninManager implements AccountTrackerService.OnSystemAccountsSeed
return;
}
- if (!mSignInState.isInteractive()) {
- // If this is a forced sign-in then don't show the confirmation dialog.
- // This will call back to onPolicyFetchedBeforeSignIn.
- nativeFetchPolicyBeforeSignIn(mNativeSigninManagerAndroid);
- return;
- }
-
- // TODO(peconn): Move this and other UI interactions into AccountSigninView.
- Log.d(TAG, "Account has policy management");
- mSignInState.displayedDialog = ConfirmManagedSigninFragment.newInstance(managementDomain);
- mSignInState.displayedDialog.show(
- mSignInState.activity.getFragmentManager(), CONFIRM_MANAGED_SIGNIN_DIALOG_TAG);
- }
-
- /**
- * Called from ConfirmManagedSigninFragment if the managed account was confirmed.
- */
- void progressInteractiveSignInFlowManagedConfirmed() {
- if (mSignInState == null || mSignInState.displayedDialog == null) {
- // Stop if sign-in was cancelled or this is a duplicate click event.
- return;
- }
- mSignInState.displayedDialog = null;
-
+ // The user has already been notified that they are signing into a managed account.
// This will call back to onPolicyFetchedBeforeSignIn.
nativeFetchPolicyBeforeSignIn(mNativeSigninManagerAndroid);
}
@@ -586,10 +550,6 @@ public class SigninManager implements AccountTrackerService.OnSystemAccountsSeed
assert signInState != null;
mSignInState = null;
- if (signInState.displayedDialog != null) {
- signInState.displayedDialog.dismiss();
- }
-
if (signInState.callback != null) {
signInState.callback.onSignInAborted();
}
@@ -671,10 +631,37 @@ public class SigninManager implements AccountTrackerService.OnSystemAccountsSeed
notifySignInAllowedChanged();
}
+ /**
+ * Performs an asynchronous check to see if the user is a managed user.
+ * @param callback A callback to be called with true if the user is a managed user and false
+ * otherwise.
+ */
+ public static void isUserManaged(String email, final Callback<Boolean> callback) {
+ if (nativeShouldLoadPolicyForUser(email)) {
+ nativeIsUserManaged(email, callback);
+ } else {
+ // Although we know the result immediately, the caller may not be able to handle the
+ // callback being executed during this method call. So we post the callback on the
+ // looper.
+ ThreadUtils.postOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ callback.onResult(false);
+ }
+ });
+ }
+ }
+
+ public static String extractDomainName(String email) {
+ return nativeExtractDomainName(email);
+ }
+
// Native methods.
+ private static native String nativeExtractDomainName(String email);
+ private static native boolean nativeShouldLoadPolicyForUser(String username);
+ private static native void nativeIsUserManaged(String username, Callback<Boolean> callback);
private native long nativeInit();
private native boolean nativeIsSigninAllowedByPolicy(long nativeSigninManagerAndroid);
- private native boolean nativeShouldLoadPolicyForUser(String username);
private native void nativeCheckPolicyBeforeSignIn(
long nativeSigninManagerAndroid, String username);
private native void nativeFetchPolicyBeforeSignIn(long nativeSigninManagerAndroid);

Powered by Google App Engine
This is Rietveld 408576698