From 8cd15be2b0961d358f2cc12b2943e4be6bd51b5b Mon Sep 17 00:00:00 2001 From: FongMi Date: Tue, 28 Mar 2023 22:26:14 +0800 Subject: [PATCH] Create FileChooser.java --- .../fongmi/android/tv/utils/FileChooser.java | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 app/src/mobile/java/com/fongmi/android/tv/utils/FileChooser.java diff --git a/app/src/mobile/java/com/fongmi/android/tv/utils/FileChooser.java b/app/src/mobile/java/com/fongmi/android/tv/utils/FileChooser.java new file mode 100644 index 000000000..7d539baea --- /dev/null +++ b/app/src/mobile/java/com/fongmi/android/tv/utils/FileChooser.java @@ -0,0 +1,45 @@ +package com.fongmi.android.tv.utils; + +import android.content.Context; +import android.content.Intent; +import android.net.Uri; + +import androidx.fragment.app.Fragment; + +public class FileChooser { + + public static final int REQUEST_PICK_FILE = 9999; + + private final Fragment fragment; + + public static FileChooser from(Fragment fragment) { + return new FileChooser(fragment); + } + + private FileChooser(Fragment fragment) { + this.fragment = fragment; + } + + public void show() { + show("*/*"); + } + + public void show(String mimeType) { + show(mimeType, REQUEST_PICK_FILE); + } + + public void show(String mimeType, int code) { + String[] mimeTypes = mimeType.split(" "); + Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT); + intent.setType(mimeTypes[0]); + intent.putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes); + intent.putExtra(Intent.EXTRA_LOCAL_ONLY, true); + intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, false); + Intent destIntent = Intent.createChooser(intent, ""); + if (fragment != null) fragment.startActivityForResult(destIntent, code); + } + + public static String getPathFromUri(Context context, Uri uri) { + return uri.toString(); + } +}