From 3db976b11e8eddeb1154c9db23fd91f43341275c Mon Sep 17 00:00:00 2001 From: FongMi Date: Mon, 16 Jan 2023 00:44:57 +0800 Subject: [PATCH] Support live playerType --- .../tv/ui/activity/DetailActivity.java | 5 +++-- .../android/tv/ui/activity/LiveActivity.java | 13 ++++++++++- .../tv/ui/activity/SettingActivity.java | 6 ++--- .../java/com/fongmi/android/tv/Github.java | 2 +- .../java/com/fongmi/android/tv/bean/Live.java | 6 +++++ .../com/fongmi/android/tv/player/Players.java | 1 - .../com/fongmi/android/tv/utils/Prefers.java | 22 +++++++++++++------ 7 files changed, 40 insertions(+), 15 deletions(-) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java index 56e65b8e6..447e2b6fb 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java @@ -509,7 +509,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis private void onScale() { int index = mHistory.getScale(); - if (index == -1) index = Prefers.getVodScale(); + if (index == -1) index = Prefers.getScale(); String[] array = ResUtil.getStringArray(R.array.select_scale); mHistory.setScale(index = index == array.length - 1 ? 0 : ++index); setScale(index); @@ -567,6 +567,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis private void onPlayer() { mPlayers.stop(); mPlayers.togglePlayer(); + Prefers.putPlayer(mPlayers.getPlayer()); mHistory.setPlayer(mPlayers.getPlayer()); getPlayer(false); setPlayerView(); @@ -681,7 +682,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis mHistory = mHistory == null ? createHistory() : mHistory; setFlagActivated(mHistory.getFlag()); if (mHistory.isRevSort()) reverseEpisode(); - setScale(mHistory.getScale() == -1 ? Prefers.getVodScale() : mHistory.getScale()); + setScale(mHistory.getScale() == -1 ? Prefers.getScale() : mHistory.getScale()); mBinding.control.opening.setText(mPlayers.stringToTime(mHistory.getOpening())); mBinding.control.ending.setText(mPlayers.stringToTime(mHistory.getEnding())); mBinding.control.speed.setText(mPlayers.setSpeed(mHistory.getSpeed())); diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java index 45c24e00e..61fa0b231 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java @@ -104,6 +104,14 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick return (Group) mGroupAdapter.get(0); } + private Live getHome() { + return LiveConfig.get().getHome(); + } + + private int getPlayerType() { + return getHome().getPlayerType() != -1 ? getHome().getPlayerType() : Prefers.getLivePlayer(); + } + private boolean isVisible(View view) { return view.getVisibility() == View.VISIBLE; } @@ -171,6 +179,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick } private void setPlayerView() { + mPlayers.setPlayer(getPlayerType()); mBinding.control.player.setText(mPlayers.getPlayerText()); getExo().setVisibility(mPlayers.isExo() ? View.VISIBLE : View.GONE); getIjk().setVisibility(mPlayers.isIjk() ? View.VISIBLE : View.GONE); @@ -207,7 +216,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick } private void getLive() { - mViewModel.getLive(LiveConfig.get().getHome()); + mViewModel.getLive(getHome()); showProgress(); } @@ -303,6 +312,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick private void onPlayer() { mPlayers.stop(); mPlayers.togglePlayer(); + Prefers.putLivePlayer(mPlayers.getPlayer()); setPlayerView(); getUrl(); } @@ -638,6 +648,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick @Override public void setLive(Live item) { LiveConfig.get().setHome(item); + setPlayerView(); mHides.clear(); hideControl(); getLive(); diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java index 4a9c04270..bf626b0ff 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java @@ -52,7 +52,7 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit mBinding.wallUrl.setText(WallConfig.getUrl()); mBinding.versionText.setText(BuildConfig.VERSION_NAME); mBinding.sizeText.setText(ResUtil.getStringArray(R.array.select_size)[Prefers.getSize()]); - mBinding.scaleText.setText(ResUtil.getStringArray(R.array.select_scale)[Prefers.getVodScale()]); + mBinding.scaleText.setText(ResUtil.getStringArray(R.array.select_scale)[Prefers.getScale()]); mBinding.playerText.setText(ResUtil.getStringArray(R.array.select_player)[Prefers.getPlayer()]); mBinding.decodeText.setText(ResUtil.getStringArray(R.array.select_decode)[Prefers.getDecode()]); mBinding.renderText.setText(ResUtil.getStringArray(R.array.select_render)[Prefers.getRender()]); @@ -187,9 +187,9 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit } private void setScale() { - int index = Prefers.getVodScale(); + int index = Prefers.getScale(); String[] array = ResUtil.getStringArray(R.array.select_scale); - Prefers.putVodScale(index = index == array.length - 1 ? 0 : ++index); + Prefers.putScale(index = index == array.length - 1 ? 0 : ++index); mBinding.scaleText.setText(array[index]); } diff --git a/app/src/main/java/com/fongmi/android/tv/Github.java b/app/src/main/java/com/fongmi/android/tv/Github.java index ed4727c3c..8bd56cb30 100644 --- a/app/src/main/java/com/fongmi/android/tv/Github.java +++ b/app/src/main/java/com/fongmi/android/tv/Github.java @@ -11,7 +11,7 @@ import okhttp3.Request; public class Github { public static final String A = "https://raw.githubusercontent.com/"; - public static final String B = "https://ghproxy.com/"; + public static final String B = "https://gh-proxy.com/"; public static final String C = "https://raw.iqiq.io/"; public static final String REPO = "FongMi/TV/"; public static final String RELEASE = "release"; diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Live.java b/app/src/main/java/com/fongmi/android/tv/bean/Live.java index 7cd202b94..42f4123c3 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Live.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Live.java @@ -28,6 +28,8 @@ public class Live { private String epg; @SerializedName("ua") private String ua; + @SerializedName("playerType") + private Integer playerType; @SerializedName("channels") private List channels; @SerializedName("groups") @@ -86,6 +88,10 @@ public class Live { return TextUtils.isEmpty(ua) ? "" : ua; } + public int getPlayerType() { + return playerType == null ? -1 : playerType == 1 ? 1 : 0; + } + private List getChannels() { return channels = channels == null ? new ArrayList<>() : channels; } diff --git a/app/src/main/java/com/fongmi/android/tv/player/Players.java b/app/src/main/java/com/fongmi/android/tv/player/Players.java index ee0391a14..b4a5a5bfe 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/Players.java +++ b/app/src/main/java/com/fongmi/android/tv/player/Players.java @@ -185,7 +185,6 @@ public class Players implements Player.Listener, IMediaPlayer.OnInfoListener, IM public void togglePlayer() { setPlayer(player == 0 ? 1 : 0); - Prefers.putPlayer(player); } public void toggleDecode() { diff --git a/app/src/main/java/com/fongmi/android/tv/utils/Prefers.java b/app/src/main/java/com/fongmi/android/tv/utils/Prefers.java index 40d5e59e7..fd5c51857 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/Prefers.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/Prefers.java @@ -83,6 +83,14 @@ public class Prefers { put("player", player); } + public static int getLivePlayer() { + return getInt("player_live", getPlayer()); + } + + public static void putLivePlayer(int player) { + put("player_live", player); + } + public static int getDecode() { return getInt("decode", 1); } @@ -131,24 +139,24 @@ public class Prefers { put("keyword", keyword); } - public static int getVodScale() { - return getInt("vodScale"); + public static int getScale() { + return getInt("scale"); } - public static void putVodScale(int scale) { - put("vodScale", scale); + public static void putScale(int scale) { + put("scale", scale); } public static int getLiveScale() { - return getInt("liveScale", getVodScale()); + return getInt("scale_live", getScale()); } public static void putLiveScale(int scale) { - put("liveScale", scale); + put("scale_live", scale); } public static boolean isInvert() { - return getBoolean("invert", false); + return getBoolean("invert"); } public static void putInvert(boolean invert) {