diff options
| -rw-r--r-- | core/java/com/android/internal/app/ChooserActivity.java | 4 | ||||
| -rw-r--r-- | core/java/com/android/internal/app/ResolverActivity.java | 11 |
2 files changed, 13 insertions, 2 deletions
diff --git a/core/java/com/android/internal/app/ChooserActivity.java b/core/java/com/android/internal/app/ChooserActivity.java index 9950e55f1415..d49abcfb72a3 100644 --- a/core/java/com/android/internal/app/ChooserActivity.java +++ b/core/java/com/android/internal/app/ChooserActivity.java @@ -3024,6 +3024,10 @@ public class ChooserActivity extends ResolverActivity implements currentRootAdapter.updateDirectShareExpansion(); } + void prepareIntentForCrossProfileLaunch(Intent intent) { + intent.fixUris(UserHandle.myUserId()); + } + /** * Adapter for all types of items and targets in ShareSheet. * Note that ranked sections like Direct Share - while appearing grid-like - are handled on the diff --git a/core/java/com/android/internal/app/ResolverActivity.java b/core/java/com/android/internal/app/ResolverActivity.java index 4b5735ce34ed..cbcf3b9e17b8 100644 --- a/core/java/com/android/internal/app/ResolverActivity.java +++ b/core/java/com/android/internal/app/ResolverActivity.java @@ -1246,8 +1246,8 @@ public class ResolverActivity extends Activity implements } if (target != null) { - if (intent != null) { - intent.fixUris(UserHandle.myUserId()); + if (intent != null && isLaunchingTargetInOtherProfile()) { + prepareIntentForCrossProfileLaunch(intent); } safelyStartActivity(target); @@ -1261,6 +1261,13 @@ public class ResolverActivity extends Activity implements return true; } + void prepareIntentForCrossProfileLaunch(Intent intent) {} + + private boolean isLaunchingTargetInOtherProfile() { + return mMultiProfilePagerAdapter.getCurrentUserHandle().getIdentifier() + != UserHandle.myUserId(); + } + @VisibleForTesting public void safelyStartActivity(TargetInfo cti) { // We're dispatching intents that might be coming from legacy apps, so |