diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 577c4ad1e..efdac0b5d 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -31,21 +31,22 @@ 播放 + 片头 + 片尾 下集 上集 - 准备播放:%s - 字幕 - 音轨 - 视轨 + 循环 + + 反转 跨类 - 片头 - 片尾 倒序 - - + 字幕 + 音轨 + 视轨 已切换正序播放 已切换倒序播放 + 准备播放:%s 正在切换解析至「%s 正在切换线路至「%s 正在切换站源至「%s diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 3e030edb4..9f2e800a9 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -31,21 +31,22 @@ 播放 + 片頭 + 片尾 下集 上集 - 準備播放:%s - 字幕 - 音軌 - 視軌 + 循環 + + 反轉 跨類 - 片頭 - 片尾 倒序 - - + 字幕 + 音軌 + 視軌 已切換正序播放 已切換倒序播放 + 準備播放:%s 正在切换解析至「%s 正在切換線路至「%s 正在切換站源至「%s diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 12ef297b7..0a1f3776b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -32,21 +32,22 @@ Play + OP + ED Next Prev - Ready to play: %s - Text - Audio - Video + Loop + + Invert Across - OP - ED Reverse - - + Text + Audio + Video Normal play switched Reverse play switched + Ready to play: %s Switching parse to %s Switching flag to %s Switching site to %s diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java index 26086a49e..9e22765e1 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java @@ -244,6 +244,7 @@ public class DetailActivity extends BaseActivity implements Clock.Callback, Cust mBinding.control.action.text.setOnClickListener(this::onTrack); mBinding.control.action.audio.setOnClickListener(this::onTrack); mBinding.control.action.video.setOnClickListener(this::onTrack); + mBinding.control.action.loop.setOnClickListener(view -> onLoop()); mBinding.control.action.scale.setOnClickListener(view -> onScale()); mBinding.control.action.speed.setOnClickListener(view -> onSpeed()); mBinding.control.action.player.setOnClickListener(view -> onPlayer()); @@ -534,6 +535,10 @@ public class DetailActivity extends BaseActivity implements Clock.Callback, Cust hideControl(); } + private void onLoop() { + mBinding.control.action.loop.setActivated(!mBinding.control.action.loop.isActivated()); + } + private void onScale() { int index = getScale(); String[] array = ResUtil.getStringArray(R.array.select_scale); @@ -562,6 +567,13 @@ public class DetailActivity extends BaseActivity implements Clock.Callback, Cust getPlayer(getFlag(), getEpisode(), false); } + private void onReset() { + Clock.get().setCallback(null); + if (mFlagAdapter.getItemCount() == 0) return; + if (mEpisodeAdapter.getItemCount() == 0) return; + getPlayer(getFlag(), getEpisode(), true); + } + private void onPlayer() { mPlayers.togglePlayer(); Prefers.putPlayer(mPlayers.getPlayer()); @@ -832,7 +844,7 @@ public class DetailActivity extends BaseActivity implements Clock.Callback, Cust mBinding.control.size.setText(mPlayers.getSizeText()); break; case Player.STATE_ENDED: - checkNext(); + checkEnded(); break; } } @@ -850,6 +862,14 @@ public class DetailActivity extends BaseActivity implements Clock.Callback, Cust } } + private void checkEnded() { + if (mBinding.control.action.loop.isActivated()) { + onReset(); + } else { + checkNext(); + } + } + private void setTrackVisible(boolean visible) { mBinding.control.action.text.setVisibility(visible && mPlayers.haveTrack(C.TRACK_TYPE_TEXT) ? View.VISIBLE : View.GONE); mBinding.control.action.audio.setVisibility(visible && mPlayers.haveTrack(C.TRACK_TYPE_AUDIO) ? View.VISIBLE : View.GONE); diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/custom/dialog/ControlDialog.java b/app/src/mobile/java/com/fongmi/android/tv/ui/custom/dialog/ControlDialog.java index 52c64f77f..6ac745eea 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/custom/dialog/ControlDialog.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/custom/dialog/ControlDialog.java @@ -79,6 +79,7 @@ public class ControlDialog extends BaseDialog implements ParseAdapter.OnClickLis binding.decode.setText(detail.control.action.decode.getText()); binding.ending.setText(detail.control.action.ending.getText()); binding.opening.setText(detail.control.action.opening.getText()); + binding.loop.setActivated(detail.control.action.loop.isActivated()); setTrackVisible(); setScaleText(); setParse(); @@ -90,6 +91,7 @@ public class ControlDialog extends BaseDialog implements ParseAdapter.OnClickLis binding.text.setOnClickListener(v -> dismiss(detail.control.action.text)); binding.audio.setOnClickListener(v -> dismiss(detail.control.action.audio)); binding.video.setOnClickListener(v -> dismiss(detail.control.action.video)); + binding.loop.setOnClickListener(v -> active(binding.loop, detail.control.action.loop)); binding.player.setOnClickListener(v -> click(binding.player, detail.control.action.player)); binding.decode.setOnClickListener(v -> click(binding.decode, detail.control.action.decode)); binding.ending.setOnClickListener(v -> click(binding.ending, detail.control.action.ending)); @@ -120,6 +122,11 @@ public class ControlDialog extends BaseDialog implements ParseAdapter.OnClickLis view.setActivated(true); } + private void active(View view, TextView target) { + target.performClick(); + view.setActivated(target.isActivated()); + } + private void click(TextView view, TextView target) { target.performClick(); view.setText(target.getText()); diff --git a/app/src/mobile/res/layout/dialog_control.xml b/app/src/mobile/res/layout/dialog_control.xml index ea7efe495..ed0174fa9 100644 --- a/app/src/mobile/res/layout/dialog_control.xml +++ b/app/src/mobile/res/layout/dialog_control.xml @@ -169,6 +169,18 @@ android:textSize="14sp" tools:text="硬解" /> + + + +