From 4be49250914f3932982e8ba6c29fc7362e04e50b Mon Sep 17 00:00:00 2001 From: FongMi Date: Fri, 8 Dec 2023 20:32:29 +0800 Subject: [PATCH] Fix bug --- .../com/fongmi/android/tv/ui/activity/VideoActivity.java | 5 ++--- .../java/com/fongmi/android/tv/utils/FileChooser.java | 8 ++++++++ .../main/java/com/fongmi/android/tv/utils/Sniffer.java | 2 +- .../com/fongmi/android/tv/ui/activity/VideoActivity.java | 5 ++--- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java index 0e82e3b4a..179787746 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java @@ -149,9 +149,8 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List private View mFocus2; public static void push(FragmentActivity activity, String text) { - String url = Sniffer.getUrl(text); - if (url.length() > 0) start(activity, url); - else file(activity, FileChooser.getPathFromUri(activity, Uri.parse(text))); + if (FileChooser.isValid(activity, Uri.parse(text))) file(activity, FileChooser.getPathFromUri(activity, Uri.parse(text))); + else start(activity, Sniffer.getUrl(text)); } public static void file(FragmentActivity activity, String path) { 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 b38ad143d..e57ddb745 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 @@ -58,6 +58,14 @@ public class FileChooser { if (fragment != null) fragment.startActivityForResult(Intent.createChooser(intent, ""), code); } + 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()); + } catch (Exception e) { + return false; + } + } + public static String getPathFromUri(Context context, Uri uri) { if (uri == null) return null; String path = null; diff --git a/app/src/main/java/com/fongmi/android/tv/utils/Sniffer.java b/app/src/main/java/com/fongmi/android/tv/utils/Sniffer.java index bca8fe717..5b2fe9208 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/Sniffer.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/Sniffer.java @@ -31,7 +31,7 @@ public class Sniffer { if (Json.valid(text)) return text; Matcher m = AI_PUSH.matcher(text); if (m.find()) return m.group(0); - return ""; + return text; } public static boolean isThunder(String url) { diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java index 3fe9e9328..ff676f4a8 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java @@ -159,9 +159,8 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo private PiP mPiP; public static void push(FragmentActivity activity, String text) { - String url = Sniffer.getUrl(text); - if (url.length() > 0) start(activity, url); - else file(activity, FileChooser.getPathFromUri(activity, Uri.parse(text))); + if (FileChooser.isValid(activity, Uri.parse(text))) file(activity, FileChooser.getPathFromUri(activity, Uri.parse(text))); + else start(activity, Sniffer.getUrl(text)); } public static void file(FragmentActivity activity, String path) {