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

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

Issue 1554103002: Notify the lack of Google Play Services only if the user tries to Signin. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix test Created 4 years, 11 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 fdf71c740df72bafc58cb8fbf3d724124872c1be..d1ac844d89ec308de7c66dbedd214265c32b717d 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
@@ -18,6 +18,8 @@ import org.chromium.base.Log;
import org.chromium.base.ObserverList;
import org.chromium.base.ThreadUtils;
import org.chromium.base.annotations.CalledByNative;
+import org.chromium.chrome.browser.externalauth.ExternalAuthUtils;
+import org.chromium.chrome.browser.externalauth.UserRecoverableErrorHandler;
import org.chromium.sync.signin.ChromeSigninController;
import javax.annotation.Nullable;
@@ -257,7 +259,7 @@ public class SigninManager implements AccountTrackerService.OnSystemAccountsSeed
* @param passive If passive is true then this operation should not interact with the user.
* @param observer The Observer to notify when the sign-in process is finished.
*/
- public void startSignIn(Activity activity, final Account account, boolean passive,
+ public void startSignIn(@Nullable Activity activity, final Account account, boolean passive,
final SignInFlowObserver observer) {
if (mSignInAccount != null) {
Log.w(TAG, "Ignoring sign-in request as another sign-in request is pending.");
@@ -277,7 +279,16 @@ public class SigninManager implements AccountTrackerService.OnSystemAccountsSeed
notifySignInAllowedChanged();
if (!AccountTrackerService.get(mContext).checkAndSeedSystemAccounts()) {
- mHasPendingSignin = true;
+ if (AccountIdProvider.getInstance().canBeUsed(mContext)) {
+ mHasPendingSignin = true;
+ } else {
+ UserRecoverableErrorHandler errorHandler = activity != null
+ ? new UserRecoverableErrorHandler.ModalDialog(activity)
+ : new UserRecoverableErrorHandler.SystemNotification();
+ ExternalAuthUtils.getInstance().canUseGooglePlayServices(mContext, errorHandler);
+ Log.w(TAG, "Cancelling the sign-in process as Google Play services is unavailable");
+ cancelSignIn();
+ }
return;
}

Powered by Google App Engine
This is Rietveld 408576698