pull/178/head
FongMi 2 years ago
parent 3a4ce8abac
commit b7a46bbcd2
  1. 2
      app/build.gradle
  2. 13
      app/src/main/java/com/fongmi/android/tv/utils/FileChooser.java

@ -11,7 +11,7 @@ android {
minSdk 21 minSdk 21
targetSdk 28 targetSdk 28
versionCode 210 versionCode 210
versionName "20231209" versionName "20231210"
javaCompileOptions { javaCompileOptions {
annotationProcessorOptions { annotationProcessorOptions {
arguments = ["room.schemaLocation": "$projectDir/schemas".toString()] arguments = ["room.schemaLocation": "$projectDir/schemas".toString()]

@ -47,7 +47,7 @@ public class FileChooser {
} }
public void show(String mimeType, String[] mimeTypes, int code) { 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.setType(mimeType);
intent.addCategory(Intent.CATEGORY_OPENABLE); intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes); intent.putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes);
@ -57,6 +57,17 @@ public class FileChooser {
if (fragment != null) fragment.startActivityForResult(Intent.createChooser(intent, ""), code); 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) { public static boolean isValid(Context context, Uri uri) {
try { try {
return DocumentsContract.isDocumentUri(context, uri) || ContentResolver.SCHEME_CONTENT.equals(uri.getScheme()) || ContentResolver.SCHEME_FILE.equalsIgnoreCase(uri.getScheme()); return DocumentsContract.isDocumentUri(context, uri) || ContentResolver.SCHEME_CONTENT.equals(uri.getScheme()) || ContentResolver.SCHEME_FILE.equalsIgnoreCase(uri.getScheme());

Loading…
Cancel
Save