diff options
| -rw-r--r-- | services/core/java/com/android/server/accounts/AccountManagerService.java | 9 | 
1 files changed, 6 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 36ffc40bf5f7..5f434ee267d4 100644 --- a/services/core/java/com/android/server/accounts/AccountManagerService.java +++ b/services/core/java/com/android/server/accounts/AccountManagerService.java @@ -4916,6 +4916,8 @@ public class AccountManagerService                      Log.e(TAG, String.format(tmpl, activityName, pkgName, mAccountType));                      return false;                  } +                intent.setComponent(targetActivityInfo.getComponentName()); +                bundle.putParcelable(AccountManager.KEY_INTENT, intent);                  return true;              } finally {                  Binder.restoreCallingIdentity(bid); @@ -4937,13 +4939,14 @@ public class AccountManagerService              Bundle simulateBundle = p.readBundle();              p.recycle();              Intent intent = bundle.getParcelable(AccountManager.KEY_INTENT); -            if (intent != null && intent.getClass() != Intent.class) { -                return false; -            }              Intent simulateIntent = simulateBundle.getParcelable(AccountManager.KEY_INTENT);              if (intent == null) {                  return (simulateIntent == null);              } +            if (intent.getClass() != Intent.class || simulateIntent.getClass() != Intent.class) { +                return false; +            } +              if (!intent.filterEquals(simulateIntent)) {                  return false;              } |