summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/accounts/AccountManagerService.java12
1 files changed, 9 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/accounts/AccountManagerService.java b/services/core/java/com/android/server/accounts/AccountManagerService.java
index 85abf87b4b2e..130a7333959d 100644
--- a/services/core/java/com/android/server/accounts/AccountManagerService.java
+++ b/services/core/java/com/android/server/accounts/AccountManagerService.java
@@ -3152,6 +3152,7 @@ public class AccountManagerService
new AccountAuthenticatorResponse(this),
authTokenType,
true);
+ mCanStartAccountManagerActivity = true;
Bundle bundle = new Bundle();
bundle.putParcelable(AccountManager.KEY_INTENT, intent);
onResult(bundle);
@@ -4933,6 +4934,7 @@ public class AccountManagerService
IAccountAuthenticator mAuthenticator = null;
private final boolean mStripAuthTokenFromResult;
+ protected boolean mCanStartAccountManagerActivity = false;
protected final UserAccounts mAccounts;
public Session(UserAccounts accounts, IAccountManagerResponse response, String accountType,
@@ -5068,9 +5070,13 @@ public class AccountManagerService
private boolean isExportedSystemActivity(ActivityInfo activityInfo) {
String className = activityInfo.name;
- return "android".equals(activityInfo.packageName) &&
- (GrantCredentialsPermissionActivity.class.getName().equals(className)
- || CantAddAccountActivity.class.getName().equals(className));
+ if (!"android".equals(activityInfo.packageName)) {
+ return false;
+
+ }
+ return (mCanStartAccountManagerActivity
+ && GrantCredentialsPermissionActivity.class.getName().equals(className))
+ || CantAddAccountActivity.class.getName().equals(className);
}
private void close() {