From 03a6f6fdf86d2b8be5a28b72bde85a53478b025d Mon Sep 17 00:00:00 2001 From: FongMi Date: Fri, 9 Jun 2023 17:50:11 +0800 Subject: [PATCH] Fix exo track bug --- .../tv/ui/activity/SettingPlayerActivity.java | 9 +++------ .../java/com/fongmi/android/tv/bean/Track.java | 5 +++-- .../java/com/fongmi/android/tv/player/Players.java | 14 +++++++++++--- .../java/com/fongmi/android/tv/utils/Prefers.java | 3 ++- .../tv/ui/fragment/SettingPlayerFragment.java | 9 +++------ 5 files changed, 22 insertions(+), 18 deletions(-) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingPlayerActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingPlayerActivity.java index 222061e22..b0b4f3a6c 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingPlayerActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingPlayerActivity.java @@ -10,6 +10,7 @@ import com.fongmi.android.tv.R; import com.fongmi.android.tv.databinding.ActivitySettingPlayerBinding; import com.fongmi.android.tv.impl.UaCallback; import com.fongmi.android.tv.player.ExoUtil; +import com.fongmi.android.tv.player.Players; import com.fongmi.android.tv.ui.base.BaseActivity; import com.fongmi.android.tv.ui.custom.dialog.UaDialog; import com.fongmi.android.tv.utils.Prefers; @@ -28,10 +29,6 @@ public class SettingPlayerActivity extends BaseActivity implements UaCallback { return getString(value ? R.string.setting_on : R.string.setting_off); } - private boolean isExo() { - return Prefers.getPlayer() == 2; - } - @Override protected ViewBinding getBinding() { return mBinding = ActivitySettingPlayerBinding.inflate(getLayoutInflater()); @@ -42,8 +39,8 @@ public class SettingPlayerActivity extends BaseActivity implements UaCallback { mBinding.uaText.setText(Prefers.getUa()); mBinding.tunnelText.setText(getSwitch(Prefers.isTunnel())); mBinding.httpText.setText((http = ResUtil.getStringArray(R.array.select_player_http))[Prefers.getHttp()]); - mBinding.tunnel.setVisibility(isExo() ? View.VISIBLE : View.GONE); - mBinding.http.setVisibility(isExo() ? View.VISIBLE : View.GONE); + mBinding.tunnel.setVisibility(Players.isExo(Prefers.getPlayer()) ? View.VISIBLE : View.GONE); + mBinding.http.setVisibility(Players.isExo(Prefers.getPlayer()) ? View.VISIBLE : View.GONE); } @Override diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Track.java b/app/src/main/java/com/fongmi/android/tv/bean/Track.java index 6f8a3e84e..38d20797c 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Track.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Track.java @@ -6,6 +6,7 @@ import androidx.room.Index; import androidx.room.PrimaryKey; import com.fongmi.android.tv.db.AppDatabase; +import com.fongmi.android.tv.player.Players; import java.util.List; @@ -92,11 +93,11 @@ public class Track { } public boolean isExo(int player) { - return getPlayer() == player && player == 0; + return getPlayer() == player && player == Players.EXO; } public boolean isIjk(int player) { - return getPlayer() == player && player == 1; + return getPlayer() == player && player != Players.EXO; } public Track toggle() { 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 55d157353..c8bc381b8 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 @@ -33,6 +33,10 @@ import tv.danmaku.ijk.media.player.ui.IjkVideoView; public class Players implements Player.Listener, IMediaPlayer.Listener, AnalyticsListener, ParseCallback { + public static final int SYS = 0; + public static final int IJK = 1; + public static final int EXO = 2; + private IjkVideoView ijkPlayer; private StringBuilder builder; private Formatter formatter; @@ -45,12 +49,16 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic private int decode; private int player; + public static boolean isExo(int type) { + return type == EXO; + } + public boolean isExo() { - return player == 2; + return player == EXO; } public boolean isIjk() { - return player != 2; + return player == SYS || player == IJK; } public Players init() { @@ -189,7 +197,7 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic public void togglePlayer() { stop(); - setPlayer(player == 2 ? 0 : ++player); + setPlayer(player == EXO ? SYS : ++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 42b2c7ee7..9beaff8d6 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 @@ -5,6 +5,7 @@ import android.content.SharedPreferences; import androidx.preference.PreferenceManager; import com.fongmi.android.tv.App; +import com.fongmi.android.tv.player.Players; public class Prefers { @@ -92,7 +93,7 @@ public class Prefers { } public static int getPlayer() { - return getInt("player", 2); + return getInt("player", Players.EXO); } public static void putPlayer(int player) { diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingPlayerFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingPlayerFragment.java index c7bbaa739..12eeab74d 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingPlayerFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingPlayerFragment.java @@ -12,6 +12,7 @@ import com.fongmi.android.tv.R; import com.fongmi.android.tv.databinding.FragmentSettingPlayerBinding; import com.fongmi.android.tv.impl.UaCallback; import com.fongmi.android.tv.player.ExoUtil; +import com.fongmi.android.tv.player.Players; import com.fongmi.android.tv.ui.base.BaseFragment; import com.fongmi.android.tv.ui.custom.dialog.UaDialog; import com.fongmi.android.tv.utils.Prefers; @@ -30,10 +31,6 @@ public class SettingPlayerFragment extends BaseFragment implements UaCallback { return getString(value ? R.string.setting_on : R.string.setting_off); } - private boolean isExo() { - return Prefers.getPlayer() == 2; - } - @Override protected ViewBinding getBinding(@NonNull LayoutInflater inflater, @Nullable ViewGroup container) { return mBinding = FragmentSettingPlayerBinding.inflate(inflater, container, false); @@ -55,8 +52,8 @@ public class SettingPlayerFragment extends BaseFragment implements UaCallback { } private void setVisible() { - mBinding.http.setVisibility(isExo() ? View.VISIBLE : View.GONE); - mBinding.tunnel.setVisibility(isExo() ? View.VISIBLE : View.GONE); + mBinding.http.setVisibility(Players.isExo(Prefers.getPlayer()) ? View.VISIBLE : View.GONE); + mBinding.tunnel.setVisibility(Players.isExo(Prefers.getPlayer()) ? View.VISIBLE : View.GONE); } private void onUa(View view) {