diff options
| author | 2023-04-25 21:38:58 +0000 | |
|---|---|---|
| committer | 2023-04-25 21:38:58 +0000 | |
| commit | a7cdbede1abcaf7ec39c1868a4a575ef18ef2be4 (patch) | |
| tree | 78ff7af78ba3f5fe70620f156a69830cfb5ea661 /java/src | |
| parent | ae0a670a079254108423601f17174958e0cb5703 (diff) | |
| parent | fb81ae4c3caacdd3ffc06200513a44dda0ab3745 (diff) | |
Merge "Null-check mime types in content preview handling" into udc-dev
Diffstat (limited to 'java/src')
4 files changed, 18 insertions, 23 deletions
diff --git a/java/src/com/android/intentresolver/contentpreview/ContentPreviewUi.java b/java/src/com/android/intentresolver/contentpreview/ContentPreviewUi.java index fcafe752..4e343a17 100644 --- a/java/src/com/android/intentresolver/contentpreview/ContentPreviewUi.java +++ b/java/src/com/android/intentresolver/contentpreview/ContentPreviewUi.java @@ -35,6 +35,7 @@ import android.widget.TextView; import com.android.intentresolver.R; import com.android.intentresolver.widget.ActionRow; +import com.android.intentresolver.widget.ScrollableImagePreviewView; import java.util.ArrayList; import java.util.List; @@ -122,4 +123,18 @@ abstract class ContentPreviewUi { } } } + + protected static ScrollableImagePreviewView.PreviewType getPreviewType( + MimeTypeClassifier typeClassifier, String mimeType) { + if (mimeType == null) { + return ScrollableImagePreviewView.PreviewType.File; + } + if (typeClassifier.isImageType(mimeType)) { + return ScrollableImagePreviewView.PreviewType.Image; + } + if (typeClassifier.isVideoType(mimeType)) { + return ScrollableImagePreviewView.PreviewType.Video; + } + return ScrollableImagePreviewView.PreviewType.File; + } } diff --git a/java/src/com/android/intentresolver/contentpreview/FilesPlusTextContentPreviewUi.java b/java/src/com/android/intentresolver/contentpreview/FilesPlusTextContentPreviewUi.java index 12843e0a..e15d53c4 100644 --- a/java/src/com/android/intentresolver/contentpreview/FilesPlusTextContentPreviewUi.java +++ b/java/src/com/android/intentresolver/contentpreview/FilesPlusTextContentPreviewUi.java @@ -70,7 +70,7 @@ class FilesPlusTextContentPreviewUi extends ContentPreviewUi { boolean allVideos = true; for (FileInfo fileInfo : mFiles) { ScrollableImagePreviewView.PreviewType previewType = - getPreviewType(fileInfo.getMimeType()); + getPreviewType(mTypeClassifier, fileInfo.getMimeType()); allImages = allImages && previewType == ScrollableImagePreviewView.PreviewType.Image; allVideos = allVideos && previewType == ScrollableImagePreviewView.PreviewType.Video; } @@ -180,14 +180,4 @@ class FilesPlusTextContentPreviewUi extends ContentPreviewUi { }); includeText.setVisibility(View.VISIBLE); } - - private ScrollableImagePreviewView.PreviewType getPreviewType(String mimeType) { - if (mTypeClassifier.isImageType(mimeType)) { - return ScrollableImagePreviewView.PreviewType.Image; - } - if (mTypeClassifier.isVideoType(mimeType)) { - return ScrollableImagePreviewView.PreviewType.Video; - } - return ScrollableImagePreviewView.PreviewType.File; - } } diff --git a/java/src/com/android/intentresolver/contentpreview/MimeTypeClassifier.java b/java/src/com/android/intentresolver/contentpreview/MimeTypeClassifier.java index 5172dd29..44cbd52e 100644 --- a/java/src/com/android/intentresolver/contentpreview/MimeTypeClassifier.java +++ b/java/src/com/android/intentresolver/contentpreview/MimeTypeClassifier.java @@ -33,6 +33,6 @@ public interface MimeTypeClassifier { /** @return whether the specified {@code mimeType} is classified as an "video" type */ default boolean isVideoType(@Nullable String mimeType) { - return ClipDescription.compareMimeTypes(mimeType, "video/*"); + return (mimeType != null) && ClipDescription.compareMimeTypes(mimeType, "video/*"); } } diff --git a/java/src/com/android/intentresolver/contentpreview/UnifiedContentPreviewUi.java b/java/src/com/android/intentresolver/contentpreview/UnifiedContentPreviewUi.java index 8d3e6031..f0ffc65c 100644 --- a/java/src/com/android/intentresolver/contentpreview/UnifiedContentPreviewUi.java +++ b/java/src/com/android/intentresolver/contentpreview/UnifiedContentPreviewUi.java @@ -105,7 +105,7 @@ class UnifiedContentPreviewUi extends ContentPreviewUi { boolean allVideos = !mFiles.isEmpty(); for (FileInfo fileInfo : mFiles) { ScrollableImagePreviewView.PreviewType previewType = - getPreviewType(fileInfo.getMimeType()); + getPreviewType(mTypeClassifier, fileInfo.getMimeType()); allImages = allImages && previewType == ScrollableImagePreviewView.PreviewType.Image; allVideos = allVideos && previewType == ScrollableImagePreviewView.PreviewType.Video; @@ -153,14 +153,4 @@ class UnifiedContentPreviewUi extends ContentPreviewUi { } return actions; } - - private ScrollableImagePreviewView.PreviewType getPreviewType(String mimeType) { - if (mTypeClassifier.isImageType(mimeType)) { - return ScrollableImagePreviewView.PreviewType.Image; - } - if (mTypeClassifier.isVideoType(mimeType)) { - return ScrollableImagePreviewView.PreviewType.Video; - } - return ScrollableImagePreviewView.PreviewType.File; - } } |