From 90ae44269b815d254f23f595da24fffadb4aadcd Mon Sep 17 00:00:00 2001 From: FongMi Date: Thu, 10 Aug 2023 10:51:58 +0800 Subject: [PATCH 1/3] Fix bug --- app/src/main/java/com/fongmi/android/tv/bean/Vod.java | 2 +- .../com/fongmi/android/tv/player/extractor/Magnet.java | 3 ++- app/src/mobile/java/com/fongmi/android/tv/Product.java | 4 ++++ .../com/fongmi/android/tv/ui/adapter/EpisodeAdapter.java | 8 +++++--- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Vod.java b/app/src/main/java/com/fongmi/android/tv/bean/Vod.java index 0e3aa92b2..adfea1e18 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Vod.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Vod.java @@ -456,7 +456,7 @@ public class Vod { public static class Sorter implements Comparator { public static List sort(List items) { - Collections.sort(items, new Sorter()); + if (items.size() > 1) Collections.sort(items, new Sorter()); return items; } diff --git a/app/src/main/java/com/fongmi/android/tv/player/extractor/Magnet.java b/app/src/main/java/com/fongmi/android/tv/player/extractor/Magnet.java index 6b5162e0a..f5f26dc1c 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/extractor/Magnet.java +++ b/app/src/main/java/com/fongmi/android/tv/player/extractor/Magnet.java @@ -51,7 +51,8 @@ public class Magnet implements Callable> { public static void addAll(List items, Future> future) { try { items.addAll(Vod.Flag.Episode.Sorter.sort(future.get())); - } catch (Exception ignored) { + } catch (Exception e) { + e.printStackTrace(); } } } diff --git a/app/src/mobile/java/com/fongmi/android/tv/Product.java b/app/src/mobile/java/com/fongmi/android/tv/Product.java index cbe207918..cfae91205 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/Product.java +++ b/app/src/mobile/java/com/fongmi/android/tv/Product.java @@ -40,4 +40,8 @@ public class Product { int height = (int) (width / style.getRatio()); return new int[]{width, height}; } + + public static int getEms() { + return Math.min(ResUtil.getScreenWidth() / ResUtil.sp2px(18), 35); + } } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/EpisodeAdapter.java b/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/EpisodeAdapter.java index 216bc27ce..86c7fe33c 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/EpisodeAdapter.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/EpisodeAdapter.java @@ -7,6 +7,7 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; +import com.fongmi.android.tv.Product; import com.fongmi.android.tv.bean.Vod; import com.fongmi.android.tv.databinding.AdapterEpisodeGridBinding; import com.fongmi.android.tv.databinding.AdapterEpisodeListBinding; @@ -84,8 +85,8 @@ public class EpisodeAdapter extends RecyclerView.Adapter mListener.onItemClick(item)); } } From d8da402721f54da0b05b8bb3c9ffc8a37d7afecb Mon Sep 17 00:00:00 2001 From: FongMi Date: Thu, 10 Aug 2023 13:33:21 +0800 Subject: [PATCH 2/3] Update SiteViewModel.java --- .../main/java/com/fongmi/android/tv/model/SiteViewModel.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/fongmi/android/tv/model/SiteViewModel.java b/app/src/main/java/com/fongmi/android/tv/model/SiteViewModel.java index 950ee8575..d32c70d4c 100644 --- a/app/src/main/java/com/fongmi/android/tv/model/SiteViewModel.java +++ b/app/src/main/java/com/fongmi/android/tv/model/SiteViewModel.java @@ -167,7 +167,7 @@ public class SiteViewModel extends ViewModel { Result result = new Result(); result.setParse(0); result.setFlag(flag); - result.setUrl(Source.get().fetch(result.getUrl())); + result.setUrl(Source.get().fetch(id)); return result; } else { String url = id; From 956d84d4591207860c4e0e18b9572e4e411efa68 Mon Sep 17 00:00:00 2001 From: FongMi Date: Thu, 10 Aug 2023 14:18:44 +0800 Subject: [PATCH 3/3] Clean code --- .../com/fongmi/android/tv/bean/Channel.java | 10 ------ .../java/com/fongmi/android/tv/bean/Drm.java | 33 ------------------- .../com/fongmi/android/tv/player/ExoUtil.java | 14 ++++---- 3 files changed, 6 insertions(+), 51 deletions(-) delete mode 100644 app/src/main/java/com/fongmi/android/tv/bean/Drm.java diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Channel.java b/app/src/main/java/com/fongmi/android/tv/bean/Channel.java index 55a69645f..500e4fe8e 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Channel.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Channel.java @@ -37,8 +37,6 @@ public class Channel { private String referer; @SerializedName("header") private JsonElement header; - @SerializedName("drm") - private Drm drm; private boolean selected; private Group group; @@ -133,14 +131,6 @@ public class Channel { this.header = header; } - public Drm getDrm() { - return drm; - } - - public void setDrm(Drm drm) { - this.drm = drm; - } - public Group getGroup() { return group; } diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Drm.java b/app/src/main/java/com/fongmi/android/tv/bean/Drm.java deleted file mode 100644 index aec17a08d..000000000 --- a/app/src/main/java/com/fongmi/android/tv/bean/Drm.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.fongmi.android.tv.bean; - -import androidx.media3.common.C; -import androidx.media3.common.MediaItem; - -import com.google.gson.annotations.SerializedName; - -import java.nio.charset.StandardCharsets; - -public class Drm { - - @SerializedName("licenseType") - private String licenseType; - @SerializedName("licenseKey") - private String licenseKey; - - public Drm(String licenseType, String licenseKey) { - this.licenseType = licenseType; - this.licenseKey = licenseKey; - } - - public String getLicenseType() { - return licenseType; - } - - public String getLicenseKey() { - return licenseKey; - } - - public MediaItem.DrmConfiguration get() { - return new MediaItem.DrmConfiguration.Builder(C.CLEARKEY_UUID).setKeySetId(getLicenseKey().getBytes(StandardCharsets.UTF_8)).build(); - } -} diff --git a/app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java b/app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java index 9b249dd76..b9e1b2ebb 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java +++ b/app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java @@ -37,7 +37,6 @@ import androidx.media3.ui.CaptionStyleCompat; import com.fongmi.android.tv.App; import com.fongmi.android.tv.Setting; import com.fongmi.android.tv.bean.Channel; -import com.fongmi.android.tv.bean.Drm; import com.fongmi.android.tv.bean.Result; import com.fongmi.android.tv.bean.Sub; import com.fongmi.android.tv.utils.Sniffer; @@ -99,28 +98,27 @@ public class ExoUtil { } public static MediaSource getSource(Result result, int errorCode) { - return getSource(result.getHeaders(), result.getRealUrl(), result.getFormat(), result.getSubs(), null, errorCode); + return getSource(result.getHeaders(), result.getRealUrl(), result.getFormat(), result.getSubs(), errorCode); } public static MediaSource getSource(Channel channel, int errorCode) { - return getSource(channel.getHeaders(), channel.getUrl(), null, Collections.emptyList(), channel.getDrm(), errorCode); + return getSource(channel.getHeaders(), channel.getUrl(), null, Collections.emptyList(), errorCode); } public static MediaSource getSource(Map headers, String url, int errorCode) { - return getSource(headers, url, null, Collections.emptyList(), null, errorCode); + return getSource(headers, url, null, Collections.emptyList(), errorCode); } - private static MediaSource getSource(Map headers, String url, String format, List subs, Drm drm, int errorCode) { + private static MediaSource getSource(Map headers, String url, String format, List subs, int errorCode) { Uri uri = Uri.parse(url.trim().replace("\\", "")); String mimeType = getMimeType(format, errorCode); if (uri.getUserInfo() != null) headers.put(HttpHeaders.AUTHORIZATION, "Basic " + Util.base64(uri.getUserInfo())); - return new DefaultMediaSourceFactory(getDataSourceFactory(headers), getExtractorsFactory()).createMediaSource(getMediaItem(uri, mimeType, subs, drm)); + return new DefaultMediaSourceFactory(getDataSourceFactory(headers), getExtractorsFactory()).createMediaSource(getMediaItem(uri, mimeType, subs)); } - private static MediaItem getMediaItem(Uri uri, String mimeType, List subs, Drm drm) { + private static MediaItem getMediaItem(Uri uri, String mimeType, List subs) { MediaItem.Builder builder = new MediaItem.Builder().setUri(uri); if (subs.size() > 0) builder.setSubtitleConfigurations(getSubtitles(subs)); - if (drm != null) builder.setDrmConfiguration(drm.get()); builder.setAllowChunklessPreparation(Players.isHard()); if (mimeType != null) builder.setMimeType(mimeType); builder.setAds(Sniffer.getRegex(uri));