From 4fc75124fe90daff88f213ba204a157e40ba2b96 Mon Sep 17 00:00:00 2001 From: Andrey Epin Date: Tue, 21 Mar 2023 10:56:58 -0700 Subject: Do not crash on reading URI metadata Do not crash if content resolver throws an exception while trying to read an URI metadata. Bug: 273890881 Test: check that the Chooser is not failing Change-Id: I161e29246bfcb1081a500b90c88c8c06c1d0df72 --- .../contentpreview/ChooserContentPreviewUi.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'java/src') diff --git a/java/src/com/android/intentresolver/contentpreview/ChooserContentPreviewUi.java b/java/src/com/android/intentresolver/contentpreview/ChooserContentPreviewUi.java index 08cebf68..de454cfd 100644 --- a/java/src/com/android/intentresolver/contentpreview/ChooserContentPreviewUi.java +++ b/java/src/com/android/intentresolver/contentpreview/ChooserContentPreviewUi.java @@ -28,11 +28,11 @@ import android.content.res.Resources; import android.database.Cursor; import android.media.MediaMetadata; import android.net.Uri; -import android.os.RemoteException; import android.provider.DocumentsContract; import android.provider.Downloads; import android.provider.OpenableColumns; import android.text.TextUtils; +import android.util.Log; import android.view.LayoutInflater; import android.view.ViewGroup; @@ -351,7 +351,8 @@ public final class ChooserContentPreviewUi { private static String getType(ContentInterface resolver, Uri uri) { try { return resolver.getType(uri); - } catch (RemoteException e) { + } catch (Throwable t) { + Log.e(ContentPreviewUi.TAG, "Failed to read content type, uri: " + uri, t); return null; } } @@ -360,7 +361,8 @@ public final class ChooserContentPreviewUi { private static Cursor query(ContentInterface resolver, Uri uri) { try { return resolver.query(uri, null, null, null); - } catch (RemoteException e) { + } catch (Throwable t) { + Log.e(ContentPreviewUi.TAG, "Failed to read metadata, uri: " + uri, t); return null; } } @@ -369,7 +371,8 @@ public final class ChooserContentPreviewUi { private static String[] getStreamTypes(ContentInterface resolver, Uri uri) { try { return resolver.getStreamTypes(uri, "*/*"); - } catch (RemoteException e) { + } catch (Throwable t) { + Log.e(ContentPreviewUi.TAG, "Failed to read stream types, uri: " + uri, t); return null; } } -- cgit v1.2.3-59-g8ed1b