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 904d76bc0..150680a25 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
@@ -123,6 +123,5 @@ public class SettingPlayerActivity extends BaseActivity implements UaCallback, B
@Override
public void setSubtitle(int size) {
mBinding.subtitleText.setText(String.valueOf(size));
- Setting.putSubtitle(size);
}
}
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 b558a3563..6823e2ea9 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
@@ -56,6 +56,7 @@ import com.fongmi.android.tv.event.ErrorEvent;
import com.fongmi.android.tv.event.PlayerEvent;
import com.fongmi.android.tv.event.RefreshEvent;
import com.fongmi.android.tv.impl.Callback;
+import com.fongmi.android.tv.impl.SubtitleCallback;
import com.fongmi.android.tv.model.SiteViewModel;
import com.fongmi.android.tv.player.ExoUtil;
import com.fongmi.android.tv.player.Players;
@@ -111,7 +112,7 @@ import okhttp3.Call;
import okhttp3.Response;
import tv.danmaku.ijk.media.player.ui.IjkVideoView;
-public class VideoActivity extends BaseActivity implements CustomKeyDownVod.Listener, TrackDialog.Listener, ArrayPresenter.OnClickListener, Clock.Callback {
+public class VideoActivity extends BaseActivity implements CustomKeyDownVod.Listener, TrackDialog.Listener, ArrayPresenter.OnClickListener, Clock.Callback, SubtitleCallback {
private ActivityVideoBinding mBinding;
private ViewGroup.LayoutParams mFrameParams;
@@ -424,11 +425,6 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
mBinding.control.decode.setText(mPlayers.getDecodeText());
}
- private void setSubtitle(int size) {
- getExo().getSubtitleView().setFixedTextSize(Dimension.SP, size);
- getIjk().getSubtitleView().setFixedTextSize(Dimension.SP, size);
- }
-
private void setScale(int scale) {
getExo().setResizeMode(scale);
getIjk().setResizeMode(scale);
@@ -1161,7 +1157,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
}
private void setTrackVisible(boolean visible) {
- mBinding.control.text.setVisibility(visible && mPlayers.haveTrack(C.TRACK_TYPE_TEXT) ? View.VISIBLE : View.GONE);
+ mBinding.control.text.setVisibility(visible && (mPlayers.haveTrack(C.TRACK_TYPE_TEXT) || mPlayers.isExo()) ? View.VISIBLE : View.GONE);
mBinding.control.audio.setVisibility(visible && mPlayers.haveTrack(C.TRACK_TYPE_AUDIO) ? View.VISIBLE : View.GONE);
mBinding.control.video.setVisibility(visible && mPlayers.haveTrack(C.TRACK_TYPE_VIDEO) ? View.VISIBLE : View.GONE);
}
@@ -1501,6 +1497,12 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
if (isFullscreen()) onKeyCenter();
}
+ @Override
+ public void setSubtitle(int size) {
+ getExo().getSubtitleView().setFixedTextSize(Dimension.SP, size);
+ getIjk().getSubtitleView().setFixedTextSize(Dimension.SP, size);
+ }
+
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/dialog/SubtitleDialog.java b/app/src/leanback/java/com/fongmi/android/tv/ui/dialog/SubtitleDialog.java
index 72d798036..cc90ece28 100644
--- a/app/src/leanback/java/com/fongmi/android/tv/ui/dialog/SubtitleDialog.java
+++ b/app/src/leanback/java/com/fongmi/android/tv/ui/dialog/SubtitleDialog.java
@@ -23,6 +23,7 @@ public class SubtitleDialog {
private final DialogSubtitleBinding binding;
private final SubtitleCallback callback;
private final AlertDialog dialog;
+ private boolean listen;
private int value;
public static SubtitleDialog create(FragmentActivity activity) {
@@ -35,6 +36,11 @@ public class SubtitleDialog {
this.dialog = new MaterialAlertDialogBuilder(activity).setView(binding.getRoot()).create();
}
+ public SubtitleDialog listen(boolean listen) {
+ this.listen = listen;
+ return this;
+ }
+
public void show() {
initDialog();
initView();
@@ -52,6 +58,7 @@ public class SubtitleDialog {
private void initView() {
binding.slider.setValue(Setting.getSubtitle());
binding.preview.setStyle(ExoUtil.getCaptionStyle());
+ binding.preview.setVisibility(listen ? View.GONE : View.VISIBLE);
binding.preview.setFixedTextSize(Dimension.SP, value = Setting.getSubtitle());
binding.preview.setCues(Arrays.asList(new Cue.Builder().setText("影視天下第一").build()));
}
@@ -59,11 +66,13 @@ public class SubtitleDialog {
private void initEvent() {
binding.positive.setOnClickListener(this::onPositive);
binding.negative.setOnClickListener(this::onNegative);
- binding.slider.addOnChangeListener((slider, value, fromUser) -> binding.preview.setFixedTextSize(Dimension.SP, value));
+ if (listen) binding.slider.addOnChangeListener((slider, value, fromUser) -> callback.setSubtitle((int) value));
+ else binding.slider.addOnChangeListener((slider, value, fromUser) -> binding.preview.setFixedTextSize(Dimension.SP, value));
}
private void onPositive(View view) {
callback.setSubtitle((int) binding.slider.getValue());
+ Setting.putSubtitle((int) binding.slider.getValue());
dialog.dismiss();
}
diff --git a/app/src/leanback/res/drawable/ic_action_choose.xml b/app/src/leanback/res/drawable/ic_action_choose.xml
new file mode 100644
index 000000000..a56e7056a
--- /dev/null
+++ b/app/src/leanback/res/drawable/ic_action_choose.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/leanback/res/drawable/ic_action_size.xml b/app/src/leanback/res/drawable/ic_action_size.xml
new file mode 100644
index 000000000..f218cf121
--- /dev/null
+++ b/app/src/leanback/res/drawable/ic_action_size.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/leanback/res/layout/dialog_track.xml b/app/src/leanback/res/layout/dialog_track.xml
index 852701927..396725f06 100644
--- a/app/src/leanback/res/layout/dialog_track.xml
+++ b/app/src/leanback/res/layout/dialog_track.xml
@@ -1,10 +1,60 @@
-
\ No newline at end of file
+ android:orientation="vertical">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/fongmi/android/tv/ui/dialog/TrackDialog.java b/app/src/main/java/com/fongmi/android/tv/ui/dialog/TrackDialog.java
index 7b585a92f..856e85519 100644
--- a/app/src/main/java/com/fongmi/android/tv/ui/dialog/TrackDialog.java
+++ b/app/src/main/java/com/fongmi/android/tv/ui/dialog/TrackDialog.java
@@ -90,7 +90,7 @@ public final class TrackDialog extends BaseDialog implements TrackAdapter.OnClic
}
private void showSubtitle(View view) {
- SubtitleDialog.create(activity).show();
+ SubtitleDialog.create(activity).listen(true).show();
dismiss();
}
diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/SubtitleDialog.java b/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/SubtitleDialog.java
index a1b398a92..adaff03fb 100644
--- a/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/SubtitleDialog.java
+++ b/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/SubtitleDialog.java
@@ -65,6 +65,7 @@ public class SubtitleDialog {
private void onPositive(DialogInterface dialog, int which) {
callback.setSubtitle((int) binding.slider.getValue());
+ Setting.putSubtitle((int) binding.slider.getValue());
dialog.dismiss();
}
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 948b0e02c..29da95c35 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
@@ -135,7 +135,6 @@ public class SettingPlayerFragment extends BaseFragment implements UaCallback, B
@Override
public void setSubtitle(int size) {
mBinding.subtitleText.setText(String.valueOf(size));
- Setting.putSubtitle(size);
}
private void setBackground(View view) {
diff --git a/app/src/mobile/res/layout/dialog_track.xml b/app/src/mobile/res/layout/dialog_track.xml
index 84a95bcea..be8743736 100644
--- a/app/src/mobile/res/layout/dialog_track.xml
+++ b/app/src/mobile/res/layout/dialog_track.xml
@@ -54,7 +54,7 @@
android:paddingEnd="16dp"
android:paddingBottom="16dp"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
- app:maxHeight="228dp"
+ app:maxHeight="212dp"
tools:listitem="@layout/adapter_track" />
\ No newline at end of file