From 40e69d3ac38d86f621d36d23bb02f98eb5796c3b Mon Sep 17 00:00:00 2001 From: okjack Date: Tue, 1 Oct 2024 15:31:00 +0800 Subject: [PATCH 01/12] Fix bug --- app/src/main/java/com/fongmi/android/tv/bean/Channel.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 5a2f03d6c..b9a2812f0 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 @@ -336,8 +336,8 @@ public class Channel { if (!live.getCatchup().isEmpty() && getCatchup().isEmpty()) setCatchup(live.getCatchup()); if (!live.getReferer().isEmpty() && getReferer().isEmpty()) setReferer(live.getReferer()); if (live.getPlayerType() != -1 && getPlayerType() == -1) setPlayerType(live.getPlayerType()); - if (live.getEpg().contains("{") && !getEpg().isEmpty() && !getEpg().startsWith("http")) setEpg(live.getEpg().replace("{name}", getTvgName()).replace("{epg}", getEpg())); - if (live.getLogo().contains("{") && !getLogo().isEmpty() && !getLogo().startsWith("http")) setLogo(live.getLogo().replace("{name}", getTvgName()).replace("{logo}", getLogo())); + if (live.getEpg().contains("{") && !getEpg().startsWith("http")) setEpg(live.getEpg().replace("{name}", getTvgName()).replace("{epg}", getEpg())); + if (live.getLogo().contains("{") && !getLogo().startsWith("http")) setLogo(live.getLogo().replace("{name}", getTvgName()).replace("{logo}", getLogo())); } public void setLine(String line) { From c7abb6e5110d607af6712e129d62687b1ab5f1af Mon Sep 17 00:00:00 2001 From: okjack Date: Tue, 1 Oct 2024 15:33:33 +0800 Subject: [PATCH 02/12] Fix clipboard bug --- .../java/com/fongmi/android/tv/utils/Util.java | 15 +++++++++++---- .../android/tv/ui/activity/VideoActivity.java | 1 - .../fongmi/android/tv/ui/dialog/InfoDialog.java | 3 --- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/fongmi/android/tv/utils/Util.java b/app/src/main/java/com/fongmi/android/tv/utils/Util.java index 2e941be5d..1d98308b6 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/Util.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/Util.java @@ -22,6 +22,7 @@ import android.view.WindowManager; import android.view.inputmethod.InputMethodManager; import com.fongmi.android.tv.App; +import com.fongmi.android.tv.R; import com.github.catvod.Init; import java.text.SimpleDateFormat; @@ -68,13 +69,19 @@ public class Util { public static CharSequence getClipText() { ClipboardManager manager = (ClipboardManager) App.get().getSystemService(Context.CLIPBOARD_SERVICE); - if (manager.getPrimaryClip() == null || manager.getPrimaryClip().getItemCount() == 0) return ""; - return manager.getPrimaryClip().getItemAt(0).getText(); + ClipData clipData = manager == null ? null : manager.getPrimaryClip(); + if (clipData == null || clipData.getItemCount() == 0) return ""; + return clipData.getItemAt(0).getText(); } public static void copy(String text) { - ClipboardManager manager = (ClipboardManager) App.get().getSystemService(Context.CLIPBOARD_SERVICE); - manager.setPrimaryClip(ClipData.newPlainText("", text)); + try { + ClipboardManager manager = (ClipboardManager) App.get().getSystemService(Context.CLIPBOARD_SERVICE); + manager.setPrimaryClip(ClipData.newPlainText("", text)); + Notify.show(R.string.copied); + } catch (Exception e) { + e.printStackTrace(); + } } public static int getDigit(String text) { 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 473658dcd..7c26c0a80 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 @@ -774,7 +774,6 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo } private boolean onCopy() { - Notify.show(R.string.copied); Util.copy(mBinding.content.getText().toString()); return true; } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/InfoDialog.java b/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/InfoDialog.java index 7e86f59dd..9fa7bc87e 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/InfoDialog.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/InfoDialog.java @@ -7,9 +7,7 @@ import android.view.View; import androidx.appcompat.app.AlertDialog; -import com.fongmi.android.tv.R; import com.fongmi.android.tv.databinding.DialogInfoBinding; -import com.fongmi.android.tv.utils.Notify; import com.fongmi.android.tv.utils.Util; import com.google.android.material.dialog.MaterialAlertDialogBuilder; @@ -86,7 +84,6 @@ public class InfoDialog { } private boolean onCopy(String text) { - Notify.show(R.string.copied); Util.copy(text); return true; } From 74a78ea15bbddfe703c13288f61964067b7accf2 Mon Sep 17 00:00:00 2001 From: okjack Date: Tue, 1 Oct 2024 15:35:13 +0800 Subject: [PATCH 03/12] Clean code --- .../android/tv/ui/activity/VideoActivity.java | 36 +++++++------------ 1 file changed, 13 insertions(+), 23 deletions(-) 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 7c26c0a80..9a5867fb1 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 @@ -154,9 +154,9 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo private boolean fullscreen; private boolean initTrack; private boolean initAuto; - private boolean redirect; private boolean autoMode; private boolean useParse; + private boolean redirect; private boolean rotate; private boolean stop; private boolean lock; @@ -1291,20 +1291,10 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo @Subscribe(threadMode = ThreadMode.MAIN) public void onRefreshEvent(RefreshEvent event) { if (isRedirect()) return; - switch (event.getType()) { - case DETAIL: - getDetail(); - break; - case PLAYER: - onRefresh(); - break; - case DANMAKU: - checkDanmu(event.getPath()); - break; - case SUBTITLE: - mPlayers.setSub(Sub.from(event.getPath())); - break; - } + if (event.getType() == RefreshEvent.Type.DETAIL) getDetail(); + else if (event.getType() == RefreshEvent.Type.PLAYER) onRefresh(); + else if (event.getType() == RefreshEvent.Type.DANMAKU) checkDanmu(event.getPath()); + else if (event.getType() == RefreshEvent.Type.SUBTITLE) mPlayers.setSub(Sub.from(event.getPath())); } @Subscribe(threadMode = ThreadMode.MAIN) @@ -1582,14 +1572,6 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo this.initAuto = initAuto; } - public boolean isRedirect() { - return redirect; - } - - public void setRedirect(boolean redirect) { - this.redirect = redirect; - } - private boolean isAutoMode() { return autoMode; } @@ -1606,6 +1588,14 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo this.useParse = useParse; } + public boolean isRedirect() { + return redirect; + } + + public void setRedirect(boolean redirect) { + this.redirect = redirect; + } + public boolean isRotate() { return rotate; } From 50e87ee291042c75309969ca42c753d64a669e05 Mon Sep 17 00:00:00 2001 From: okjack Date: Tue, 1 Oct 2024 15:37:04 +0800 Subject: [PATCH 04/12] Fix crash --- app/src/main/AndroidManifest.xml | 8 -------- app/src/mobile/AndroidManifest.xml | 8 ++++++++ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 27648779b..ad6b27a46 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -69,14 +69,6 @@ android:name=".ui.activity.CrashActivity" android:process=":error_activity" /> - - - - - - diff --git a/app/src/mobile/AndroidManifest.xml b/app/src/mobile/AndroidManifest.xml index 564c2d853..1d243f431 100644 --- a/app/src/mobile/AndroidManifest.xml +++ b/app/src/mobile/AndroidManifest.xml @@ -127,6 +127,14 @@ android:name=".receiver.ShortcutReceiver" android:exported="false" /> + + + + + + From 5e326b65aa90db47d860ad6b7a857a08479b62bf Mon Sep 17 00:00:00 2001 From: okjack Date: Tue, 1 Oct 2024 15:37:37 +0800 Subject: [PATCH 05/12] Add stop event for session --- .../java/com/fongmi/android/tv/impl/SessionCallback.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/src/main/java/com/fongmi/android/tv/impl/SessionCallback.java b/app/src/main/java/com/fongmi/android/tv/impl/SessionCallback.java index fd0a3c320..f24f8d303 100644 --- a/app/src/main/java/com/fongmi/android/tv/impl/SessionCallback.java +++ b/app/src/main/java/com/fongmi/android/tv/impl/SessionCallback.java @@ -41,4 +41,9 @@ public class SessionCallback extends MediaSessionCompat.Callback { public void onSkipToNext() { ActionEvent.send(ActionEvent.NEXT); } + + @Override + public void onStop() { + ActionEvent.send(ActionEvent.STOP); + } } From ee8a5320007844c427773fb12d60512038120de7 Mon Sep 17 00:00:00 2001 From: okjack Date: Tue, 1 Oct 2024 15:43:13 +0800 Subject: [PATCH 06/12] Fix bug --- .../fongmi/android/tv/ui/activity/CastActivity.java | 11 +++++------ .../fongmi/android/tv/ui/activity/VideoActivity.java | 8 ++++---- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java index 1951c0aeb..e16da401e 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java @@ -367,13 +367,12 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List onStopped(); } - private void onPaused(boolean visible) { + private void onPaused() { mBinding.widget.exoDuration.setText(mPlayers.getDurationTime()); mBinding.widget.exoPosition.setText(mPlayers.getPositionTime(0)); setState(RenderState.PAUSED); - if (visible) showInfo(); - else hideInfo(); mPlayers.pause(); + showInfo(); } private void onPlay() { @@ -441,7 +440,7 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List @Override public void pause() { - App.post(() -> onPaused(true)); + App.post(this::onPaused); } @Override @@ -506,7 +505,7 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List @Override public void onKeyCenter() { - if (mPlayers.isPlaying()) onPaused(true); + if (mPlayers.isPlaying()) onPaused(); else onPlay(); hideControl(); } @@ -544,7 +543,7 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List @Override protected void onPause() { super.onPause(); - onPaused(false); + mPlayers.pause(); mClock.stop(); } 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 4e1277b9c..51ba3778d 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 @@ -1580,11 +1580,11 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List getDetail(item); } - private void onPaused(boolean visible) { + private void onPaused() { getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); mBinding.widget.exoDuration.setText(mPlayers.getDurationTime()); mBinding.widget.exoPosition.setText(mPlayers.getPositionTime(0)); - if (visible) showInfoAndCenter(); + if (isFullscreen()) showInfoAndCenter(); else hideInfoAndCenter(); mPlayers.pause(); } @@ -1768,7 +1768,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List @Override public void onKeyCenter() { if (mPlayers.isPlaying()) { - onPaused(true); + onPaused(); hideControl(false); } else { onPlay(); @@ -1826,7 +1826,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List protected void onPause() { super.onPause(); setBackground(true); - onPaused(false); + mPlayers.pause(); mClock.stop(); } From 17d68244f75a61ffb9515c3382f60515dd365604 Mon Sep 17 00:00:00 2001 From: okjack Date: Tue, 1 Oct 2024 15:43:41 +0800 Subject: [PATCH 07/12] Clean code --- app/src/main/java/com/fongmi/android/tv/utils/Util.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/src/main/java/com/fongmi/android/tv/utils/Util.java b/app/src/main/java/com/fongmi/android/tv/utils/Util.java index 1d98308b6..500dc1506 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/Util.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/Util.java @@ -1,7 +1,6 @@ package com.fongmi.android.tv.utils; import android.app.Activity; -import android.app.UiModeManager; import android.content.ClipData; import android.content.ClipboardManager; import android.content.ComponentName; @@ -9,7 +8,6 @@ import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; -import android.content.res.Configuration; import android.os.BatteryManager; import android.os.Build; import android.os.IBinder; From 4c2ac22d87e8bc8daf07f297615791979bbf4d0a Mon Sep 17 00:00:00 2001 From: okjack Date: Tue, 1 Oct 2024 15:45:04 +0800 Subject: [PATCH 08/12] Clean code --- zlive/src/main/AndroidManifest.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zlive/src/main/AndroidManifest.xml b/zlive/src/main/AndroidManifest.xml index 599c7db02..568741e54 100644 --- a/zlive/src/main/AndroidManifest.xml +++ b/zlive/src/main/AndroidManifest.xml @@ -1,2 +1,2 @@ - \ No newline at end of file + \ No newline at end of file From 76c90f98db7c6cde3fe565c90537bc2f461310f1 Mon Sep 17 00:00:00 2001 From: okjack Date: Tue, 1 Oct 2024 15:46:09 +0800 Subject: [PATCH 09/12] Update HistoryAdapter.java --- .../com/fongmi/android/tv/ui/adapter/HistoryAdapter.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/adapter/HistoryAdapter.java b/app/src/leanback/java/com/fongmi/android/tv/ui/adapter/HistoryAdapter.java index 01456faf9..43b89adc5 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/adapter/HistoryAdapter.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/adapter/HistoryAdapter.java @@ -106,7 +106,10 @@ public class HistoryAdapter extends RecyclerView.Adapter binding.name.setSelected(hasFocus)); + binding.getRoot().setOnFocusChangeListener((v, hasFocus) -> { + binding.name.setSelected(hasFocus); + binding.remark.setSelected(hasFocus); + }); } private void setClickListener(View root, History item) { From ee5d5f052b5b37a9c58bce25a162abd669b93ce7 Mon Sep 17 00:00:00 2001 From: okjack Date: Tue, 1 Oct 2024 15:48:13 +0800 Subject: [PATCH 10/12] Fix showDisplayInfo --- .../java/com/fongmi/android/tv/ui/activity/VideoActivity.java | 2 +- .../java/com/fongmi/android/tv/ui/activity/VideoActivity.java | 2 +- 2 files changed, 2 insertions(+), 2 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 51ba3778d..f0afc074e 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 @@ -810,7 +810,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List mBinding.display.clock.setVisibility(Setting.isDisplayTime() || isVisible(mBinding.widget.info) ? View.VISIBLE : View.GONE); mBinding.display.titleLayout.setVisibility(Setting.isDisplayVideoTitle() && !isVisible(mBinding.control.getRoot()) ? View.VISIBLE : View.GONE); mBinding.display.netspeed.setVisibility(Setting.isDisplaySpeed() && !isVisible(mBinding.control.getRoot()) && !hasDialog ? View.VISIBLE : View.GONE); - mBinding.display.duration.setVisibility(Setting.isDisplayDuration() && !isVisible(mBinding.control.getRoot()) && !hasDialog ? View.VISIBLE : View.GONE); + mBinding.display.duration.setVisibility(Setting.isDisplayDuration() && !isVisible(mBinding.control.getRoot()) && (mPlayers.isVod()) && !hasDialog ? View.VISIBLE : View.GONE); mBinding.display.progress.setVisibility(Setting.isDisplayMiniProgress() && !isVisible(mBinding.control.getRoot()) && (mPlayers.isVod()) && !hasDialog ? View.VISIBLE : View.GONE); } 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 9a5867fb1..c517f08e7 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 @@ -989,7 +989,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo boolean visible = (!controlVisible || isLock()) && !pictureMode && !hasDialog; mBinding.display.clock.setVisibility(Setting.isDisplayTime() && visible ? View.VISIBLE : View.GONE); mBinding.display.netspeed.setVisibility(Setting.isDisplaySpeed() && visible ? View.VISIBLE : View.GONE); - mBinding.display.duration.setVisibility(Setting.isDisplayDuration() && visible ? View.VISIBLE : View.GONE); + mBinding.display.duration.setVisibility(Setting.isDisplayDuration() && visible && (mPlayers.isVod()) ? View.VISIBLE : View.GONE); mBinding.display.progress.setVisibility(Setting.isDisplayMiniProgress() && visible && (mPlayers.isVod()) ? View.VISIBLE : View.GONE); mBinding.display.titleLayout.setVisibility(Setting.isDisplayVideoTitle()&& visible ? View.VISIBLE : View.GONE); } From bcafc12b135c99df927c5d41d79e9dd0abc7a885 Mon Sep 17 00:00:00 2001 From: okjack Date: Tue, 1 Oct 2024 15:49:34 +0800 Subject: [PATCH 11/12] Fix bug --- app/src/main/java/com/fongmi/android/tv/bean/Result.java | 1 + .../java/com/fongmi/android/tv/player/extractor/Youtube.java | 2 ++ 2 files changed, 3 insertions(+) diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Result.java b/app/src/main/java/com/fongmi/android/tv/bean/Result.java index 8507bc05c..74098c616 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Result.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Result.java @@ -120,6 +120,7 @@ public class Result implements Parcelable { public static Result error(String msg) { Result result = new Result(); + result.setParse(0); result.setMsg(msg); return result; } diff --git a/app/src/main/java/com/fongmi/android/tv/player/extractor/Youtube.java b/app/src/main/java/com/fongmi/android/tv/player/extractor/Youtube.java index 674a58151..bcd9180b8 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/extractor/Youtube.java +++ b/app/src/main/java/com/fongmi/android/tv/player/extractor/Youtube.java @@ -4,6 +4,7 @@ import android.net.Uri; import android.util.Base64; import com.fongmi.android.tv.bean.Episode; +import com.fongmi.android.tv.exception.ExtractException; import com.fongmi.android.tv.player.Source; import com.github.catvod.net.OkHttp; import com.github.kiulian.downloader.YoutubeDownloader; @@ -48,6 +49,7 @@ public class Youtube implements Source.Extractor { String videoId = matcher.group(); RequestVideoInfo request = new RequestVideoInfo(videoId); VideoInfo info = getDownloader().getVideoInfo(request).data(); + if (info == null || info.details() == null) throw new ExtractException(""); return info.details().isLive() ? info.details().liveUrl() : getMpdWithBase64(info); } From 3d43780d2525caf7609eb82dc73daede7f8c0c7b Mon Sep 17 00:00:00 2001 From: okjack Date: Tue, 1 Oct 2024 15:51:01 +0800 Subject: [PATCH 12/12] build.gradle --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 143285dfb..ddac95c2a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -13,8 +13,8 @@ android { minSdk 21 //noinspection ExpiredTargetSdkVersion targetSdk 28 - versionCode 253 - versionName "2.5.3" + versionCode 258 + versionName "2.5.8" javaCompileOptions { annotationProcessorOptions { arguments = ["room.schemaLocation": "$projectDir/schemas".toString()]