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/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/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; 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 18a9784a0..2eb9d6add 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.Utils; @@ -98,28 +97,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()); if (mimeType != null) builder.setMimeType(mimeType); return builder.build(); } 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)); } }