diff options
author | Nicolas Prevot <nprevot@google.com> | 2015-07-02 10:27:55 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-07-02 10:27:58 +0000 |
commit | 60373e8060cf6de2d293a758c33cc5f610122657 (patch) | |
tree | f30bc5f59a798d1d643d27533d63cb902ba178fd /core/java | |
parent | 00f0716a9521c668e0e42c36ee19a5f58e62f00f (diff) | |
parent | 107f7b7becdb5fe6d735a4f1355eb3421f068fb0 (diff) | |
download | frameworks_base-60373e8060cf6de2d293a758c33cc5f610122657.zip frameworks_base-60373e8060cf6de2d293a758c33cc5f610122657.tar.gz frameworks_base-60373e8060cf6de2d293a758c33cc5f610122657.tar.bz2 |
Merge "Fix the case where an intent bounces several times between users." into mnc-dev
Diffstat (limited to 'core/java')
-rw-r--r-- | core/java/android/content/Intent.java | 8 | ||||
-rw-r--r-- | core/java/com/android/internal/app/IntentForwarderActivity.java | 4 |
2 files changed, 8 insertions, 4 deletions
diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java index b1d80f0..c9f9b56 100644 --- a/core/java/android/content/Intent.java +++ b/core/java/android/content/Intent.java @@ -6181,8 +6181,12 @@ public class Intent implements Parcelable, Cloneable { * who sent the intent. * @hide */ - public void setContentUserHint(int contentUserHint) { - mContentUserHint = contentUserHint; + public void prepareToLeaveUser(int userId) { + // If mContentUserHint is not UserHandle.USER_CURRENT, the intent has already left a user. + // We want mContentUserHint to refer to the original user, so don't do anything. + if (mContentUserHint == UserHandle.USER_CURRENT) { + mContentUserHint = userId; + } } /** diff --git a/core/java/com/android/internal/app/IntentForwarderActivity.java b/core/java/com/android/internal/app/IntentForwarderActivity.java index f598828..233bee3 100644 --- a/core/java/com/android/internal/app/IntentForwarderActivity.java +++ b/core/java/com/android/internal/app/IntentForwarderActivity.java @@ -87,9 +87,9 @@ public class IntentForwarderActivity extends Activity { if (canForward(newIntent, targetUserId)) { if (newIntent.getAction().equals(Intent.ACTION_CHOOSER)) { Intent innerIntent = (Intent) newIntent.getParcelableExtra(Intent.EXTRA_INTENT); - innerIntent.setContentUserHint(callingUserId); + innerIntent.prepareToLeaveUser(callingUserId); } else { - newIntent.setContentUserHint(callingUserId); + newIntent.prepareToLeaveUser(callingUserId); } final android.content.pm.ResolveInfo ri = getPackageManager().resolveActivityAsUser( |