diff --git a/app/build.gradle b/app/build.gradle index 21b2ce07a..8238b3cb6 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -21,12 +21,12 @@ android { leanback { dimension "mode" versionCode 205 - versionName "20230918" + versionName "20230918#2" } mobile { dimension "mode" versionCode 205 - versionName "20230918" + versionName "20230918#2" } java { dimension "api" 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 bacf4dac6..bbd057753 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 @@ -535,7 +535,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List private void seamless(Flag flag, boolean force) { if (Setting.getFlag() == 1 && (mHistory.isNew() || !force)) return; Episode episode = flag.find(mHistory.getVodRemarks(), getMark().isEmpty()); - setQualityVisible(episode != null && episode.isActivated() && mQualityAdapter.getItemCount() > 0); + setQualityVisible(episode != null && episode.isActivated() && mQualityAdapter.getItemCount() > 1); if (episode == null || episode.isActivated()) return; mHistory.setVodRemarks(episode.getName()); setEpisodeActivated(episode); diff --git a/app/src/main/java/com/fongmi/android/tv/player/IjkUtil.java b/app/src/main/java/com/fongmi/android/tv/player/IjkUtil.java index b9cd6ff82..e6d16a3ff 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/IjkUtil.java +++ b/app/src/main/java/com/fongmi/android/tv/player/IjkUtil.java @@ -25,7 +25,8 @@ public class IjkUtil { public static MediaSource getSource(Map headers, String url) { Uri uri = Uri.parse(url.trim().replace("\\", "")); - if (Sniffer.isAds(uri)) uri = Uri.parse(Server.get().getAddress().concat("/m3u8?url=").concat(URLEncoder.encode(url))); + boolean local = Sniffer.getRegex(uri).size() > 0; + if (local) uri = Uri.parse(Server.get().getAddress().concat("/m3u8?url=").concat(URLEncoder.encode(url))); return new MediaSource(Utils.checkUa(headers), uri); } } diff --git a/app/src/main/java/com/fongmi/android/tv/server/Nano.java b/app/src/main/java/com/fongmi/android/tv/server/Nano.java index 08717e3a3..03f154a12 100644 --- a/app/src/main/java/com/fongmi/android/tv/server/Nano.java +++ b/app/src/main/java/com/fongmi/android/tv/server/Nano.java @@ -1,6 +1,5 @@ package com.fongmi.android.tv.server; -import android.net.Uri; import android.util.Base64; import com.fongmi.android.tv.api.ApiConfig; @@ -10,7 +9,6 @@ import com.fongmi.android.tv.server.process.Action; import com.fongmi.android.tv.server.process.Local; import com.fongmi.android.tv.server.process.Process; import com.fongmi.android.tv.utils.M3U8; -import com.fongmi.android.tv.utils.Sniffer; import com.github.catvod.Init; import java.io.ByteArrayInputStream; @@ -89,7 +87,6 @@ public class Nano extends NanoHTTPD { try { String url = session.getParms().get("url"); String result = M3U8.get(url, session.getHeaders()); - for (String ad : Sniffer.getRegex(Uri.parse(url))) result = result.replaceAll(ad, ""); return newChunkedResponse(Response.Status.OK, MIME_PLAINTEXT, new ByteArrayInputStream(result.getBytes(StandardCharsets.UTF_8))); } catch (Exception e) { return error(e.getMessage()); 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 07d74e90b..293ff2827 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 @@ -35,11 +35,6 @@ public class Sniffer { return url.split(";")[0].endsWith(".torrent"); } - public static boolean isAds(Uri uri) { - for (String regex : getRegex(uri)) if (regex.contains("#EXTINF")) return true; - return false; - } - public static boolean isVideoFormat(String url) { return isVideoFormat(url, new HashMap<>()); } 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 98e411c4e..1dff9af69 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 @@ -590,7 +590,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo private void seamless(Flag flag, boolean force) { if (Setting.getFlag() == 1 && (mHistory.isNew() || !force)) return; Episode episode = flag.find(mHistory.getVodRemarks(), getMark().isEmpty()); - setQualityVisible(episode != null && episode.isActivated() && mQualityAdapter.getItemCount() > 0); + setQualityVisible(episode != null && episode.isActivated() && mQualityAdapter.getItemCount() > 1); if (episode == null || episode.isActivated()) return; mHistory.setVodRemarks(episode.getName()); onItemClick(episode);