diff options
| author | 2023-03-30 01:39:18 +0000 | |
|---|---|---|
| committer | 2023-03-30 01:39:18 +0000 | |
| commit | 383080a4f23222265a58d0f5a227078359eeabc0 (patch) | |
| tree | bb012ff8b56a0d545d23eb3531500a069c7c508e /java/src/com | |
| parent | 35828ea4afb4e23fa47c3c6e7c5772c0e59b15ea (diff) | |
| parent | 4c421ccd6e61636dca7fddc58f0f7205d092623a (diff) | |
Merge "Print special logcat warning SecurityException" into udc-dev
Diffstat (limited to 'java/src/com')
| -rw-r--r-- | java/src/com/android/intentresolver/contentpreview/ChooserContentPreviewUi.java | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/java/src/com/android/intentresolver/contentpreview/ChooserContentPreviewUi.java b/java/src/com/android/intentresolver/contentpreview/ChooserContentPreviewUi.java index 6892b32c..3509c67d 100644 --- a/java/src/com/android/intentresolver/contentpreview/ChooserContentPreviewUi.java +++ b/java/src/com/android/intentresolver/contentpreview/ChooserContentPreviewUi.java @@ -369,30 +369,36 @@ public final class ChooserContentPreviewUi { private static String getType(ContentInterface resolver, Uri uri) { try { return resolver.getType(uri); + } catch (SecurityException e) { + logProviderPermissionWarning(uri, "mime type"); } catch (Throwable t) { Log.e(ContentPreviewUi.TAG, "Failed to read content type, uri: " + uri, t); - return null; } + return null; } @Nullable private static Cursor query(ContentInterface resolver, Uri uri) { try { return resolver.query(uri, null, null, null); + } catch (SecurityException e) { + logProviderPermissionWarning(uri, "metadata"); } catch (Throwable t) { Log.e(ContentPreviewUi.TAG, "Failed to read metadata, uri: " + uri, t); - return null; } + return null; } @Nullable private static String[] getStreamTypes(ContentInterface resolver, Uri uri) { try { return resolver.getStreamTypes(uri, "*/*"); + } catch (SecurityException e) { + logProviderPermissionWarning(uri, "stream types"); } catch (Throwable t) { Log.e(ContentPreviewUi.TAG, "Failed to read stream types, uri: " + uri, t); - return null; } + return null; } private static String getFileName(Uri uri) { @@ -404,4 +410,11 @@ public final class ChooserContentPreviewUi { } return fileName; } + + private static void logProviderPermissionWarning(Uri uri, String dataName) { + // The ContentResolver already logs the exception. Log something more informative. + Log.w(ContentPreviewUi.TAG, "Could not read " + uri + " " + dataName + "." + + " If a preview is desired, call Intent#setClipData() to ensure that the" + + " sharesheet is given permission."); + } } |