From b7a46bbcd2f8963acef8e7da10d649fd102e186b Mon Sep 17 00:00:00 2001 From: FongMi Date: Sun, 10 Dec 2023 00:40:39 +0800 Subject: [PATCH] Fix bug --- app/build.gradle | 2 +- .../com/fongmi/android/tv/utils/FileChooser.java | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index a94a1c2db..a9e0694a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,7 +11,7 @@ android { minSdk 21 targetSdk 28 versionCode 210 - versionName "20231209" + versionName "20231210" javaCompileOptions { annotationProcessorOptions { arguments = ["room.schemaLocation": "$projectDir/schemas".toString()] diff --git a/app/src/main/java/com/fongmi/android/tv/utils/FileChooser.java b/app/src/main/java/com/fongmi/android/tv/utils/FileChooser.java index b4163147e..40950110a 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/FileChooser.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/FileChooser.java @@ -47,7 +47,7 @@ public class FileChooser { } public void show(String mimeType, String[] mimeTypes, int code) { - Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT); + Intent intent = new Intent(getAction()); intent.setType(mimeType); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes); @@ -57,6 +57,17 @@ public class FileChooser { if (fragment != null) fragment.startActivityForResult(Intent.createChooser(intent, ""), code); } + private String getAction() { + return hasSAFChooser() ? Intent.ACTION_OPEN_DOCUMENT : Intent.ACTION_GET_CONTENT; + } + + private boolean hasSAFChooser() { + Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT); + intent.addCategory(Intent.CATEGORY_OPENABLE); + intent.setType("video/*"); + return intent.resolveActivity(App.get().getPackageManager()) != null; + } + public static boolean isValid(Context context, Uri uri) { try { return DocumentsContract.isDocumentUri(context, uri) || ContentResolver.SCHEME_CONTENT.equals(uri.getScheme()) || ContentResolver.SCHEME_FILE.equalsIgnoreCase(uri.getScheme());