summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/com/android/internal/app/ChooserActivity.java4
-rw-r--r--core/java/com/android/internal/app/ResolverActivity.java11
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