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 306bd7ed6d64..b6fca8072fc4 100644 --- a/core/java/com/android/internal/app/ChooserActivity.java +++ b/core/java/com/android/internal/app/ChooserActivity.java @@ -3023,6 +3023,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 b82f0dfcbe12..f96f560fc60f 100644 --- a/core/java/com/android/internal/app/ResolverActivity.java +++ b/core/java/com/android/internal/app/ResolverActivity.java @@ -1235,8 +1235,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); @@ -1250,6 +1250,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 |