diff options
| author | 2023-03-31 01:19:37 +0000 | |
|---|---|---|
| committer | 2023-04-05 21:49:25 +0000 | |
| commit | cf066d77629043b51b52ba915e904c73c4466b00 (patch) | |
| tree | 3528d29d60e907662b1dd8eba94837560e228459 | |
| parent | e24735cae15d6ad6d6ca20d4d30ddce601bfaef4 (diff) | |
Revert "Prevent sharesheet from previewing unowned URIs [RESTRICT AUTOMERGE]"
This reverts commit cef32a8b8ad109cd3066e4ad249fadbb72aa5574.
Reason for revert: incomplete cherry pick
Bug: 276129326
Bug: 261036568
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:2864439551d1c86636ecfd3fa466328512b9ead5)
Merged-In: I493c610e60bb3c60851d09c85340822039723829
Change-Id: I493c610e60bb3c60851d09c85340822039723829
| -rw-r--r-- | core/java/com/android/internal/app/ChooserActivity.java | 35 |
1 files changed, 2 insertions, 33 deletions
diff --git a/core/java/com/android/internal/app/ChooserActivity.java b/core/java/com/android/internal/app/ChooserActivity.java index 09c1efb2c638..1fcfe7dd5b6f 100644 --- a/core/java/com/android/internal/app/ChooserActivity.java +++ b/core/java/com/android/internal/app/ChooserActivity.java @@ -21,7 +21,6 @@ import static android.app.admin.DevicePolicyResources.Strings.Core.RESOLVER_CANT import static android.app.admin.DevicePolicyResources.Strings.Core.RESOLVER_CANT_SHARE_WITH_PERSONAL; import static android.app.admin.DevicePolicyResources.Strings.Core.RESOLVER_CANT_SHARE_WITH_WORK; import static android.app.admin.DevicePolicyResources.Strings.Core.RESOLVER_CROSS_PROFILE_BLOCKED_TITLE; -import static android.content.ContentProvider.getUserIdFromUri; import static android.stats.devicepolicy.DevicePolicyEnums.RESOLVER_EMPTY_STATE_NO_SHARING_TO_PERSONAL; import static android.stats.devicepolicy.DevicePolicyEnums.RESOLVER_EMPTY_STATE_NO_SHARING_TO_WORK; @@ -162,7 +161,6 @@ import java.util.List; import java.util.Map; import java.util.Objects; import java.util.function.Supplier; -import java.util.stream.Collectors; /** * The Chooser Activity handles intent resolution specifically for sharing intents - @@ -1426,11 +1424,7 @@ public class ChooserActivity extends ResolverActivity implements String action = targetIntent.getAction(); if (Intent.ACTION_SEND.equals(action)) { - Uri uri = targetIntent.getParcelableExtra(Intent.EXTRA_STREAM, android.net.Uri.class); - if (!validForContentPreview(uri)) { - contentPreviewLayout.setVisibility(View.GONE); - return contentPreviewLayout; - } + Uri uri = targetIntent.getParcelableExtra(Intent.EXTRA_STREAM); imagePreview.findViewById(R.id.content_preview_image_1_large) .setTransitionName(ChooserActivity.FIRST_IMAGE_PREVIEW_TRANSITION_NAME); mPreviewCoord.loadUriIntoView(R.id.content_preview_image_1_large, uri, 0); @@ -1440,7 +1434,7 @@ public class ChooserActivity extends ResolverActivity implements List<Uri> uris = targetIntent.getParcelableArrayListExtra(Intent.EXTRA_STREAM); List<Uri> imageUris = new ArrayList<>(); for (Uri uri : uris) { - if (validForContentPreview(uri) && isImageType(resolver.getType(uri))) { + if (isImageType(resolver.getType(uri))) { imageUris.add(uri); } } @@ -1550,16 +1544,9 @@ public class ChooserActivity extends ResolverActivity implements String action = targetIntent.getAction(); if (Intent.ACTION_SEND.equals(action)) { Uri uri = targetIntent.getParcelableExtra(Intent.EXTRA_STREAM); - if (!validForContentPreview(uri)) { - contentPreviewLayout.setVisibility(View.GONE); - return contentPreviewLayout; - } loadFileUriIntoView(uri, contentPreviewLayout); } else { List<Uri> uris = targetIntent.getParcelableArrayListExtra(Intent.EXTRA_STREAM); - uris = uris.stream() - .filter(ChooserActivity::validForContentPreview) - .collect(Collectors.toList()); int uriCount = uris.size(); if (uriCount == 0) { @@ -1618,24 +1605,6 @@ public class ChooserActivity extends ResolverActivity implements } } - /** - * Indicate if the incoming content URI should be allowed. - * - * @param uri the uri to test - * @return true if the URI is allowed for content preview - */ - private static boolean validForContentPreview(Uri uri) throws SecurityException { - if (uri == null) { - return false; - } - int userId = getUserIdFromUri(uri, UserHandle.USER_CURRENT); - if (userId != UserHandle.USER_CURRENT && userId != UserHandle.myUserId()) { - Log.e(TAG, "dropped invalid content URI belonging to user " + userId); - return false; - } - return true; - } - @VisibleForTesting protected boolean isImageType(String mimeType) { return mimeType != null && mimeType.startsWith("image/"); |