From e6fe0b42a29be702101f2ab70fd1c3ec801f211d Mon Sep 17 00:00:00 2001 From: FongMi Date: Tue, 23 May 2023 12:46:06 +0800 Subject: [PATCH] [mobile] fix speed and ending bug --- .../android/tv/ui/activity/DetailActivity.java | 2 +- .../android/tv/ui/activity/DetailActivity.java | 16 +++------------- .../tv/ui/custom/dialog/ControlDialog.java | 15 ++++++++++++++- 3 files changed, 18 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 734e82519..91efad141 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 @@ -1109,7 +1109,6 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis @Override protected void onPause() { super.onPause(); - RefreshEvent.history(); onPause(false); Clock.stop(); } @@ -1132,6 +1131,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis protected void onDestroy() { super.onDestroy(); mPlayers.release(); + RefreshEvent.history(); App.removeCallbacks(mR1, mR2); } } 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 848deea45..892252d36 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 @@ -529,7 +529,7 @@ public class DetailActivity extends BaseActivity implements Clock.Callback, Cust } private void onSetting() { - mControlDialog = ControlDialog.create().detail(mBinding).players(mPlayers).parse(isUseParse()).show(this); + mControlDialog = ControlDialog.create().detail(mBinding).history(mHistory).players(mPlayers).parse(isUseParse()).show(this); } private void onTrack(View view) { @@ -1227,6 +1227,7 @@ public class DetailActivity extends BaseActivity implements Clock.Callback, Cust super.onStart(); mPlayers.play(); setStop(false); + Clock.start(); } @Override @@ -1234,18 +1235,6 @@ public class DetailActivity extends BaseActivity implements Clock.Callback, Cust super.onStop(); mPlayers.pause(); setStop(true); - } - - @Override - protected void onResume() { - super.onResume(); - Clock.start(); - } - - @Override - protected void onPause() { - super.onPause(); - RefreshEvent.history(); Clock.stop(); } @@ -1265,6 +1254,7 @@ public class DetailActivity extends BaseActivity implements Clock.Callback, Cust protected void onDestroy() { super.onDestroy(); mPlayers.release(); + RefreshEvent.history(); App.removeCallbacks(mR1, mR2, mR3); } } 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 288e1bcb5..23650bb2b 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 @@ -13,6 +13,7 @@ import androidx.viewbinding.ViewBinding; import com.fongmi.android.tv.App; import com.fongmi.android.tv.R; +import com.fongmi.android.tv.bean.History; import com.fongmi.android.tv.bean.Parse; import com.fongmi.android.tv.databinding.ActivityDetailBinding; import com.fongmi.android.tv.databinding.DialogControlBinding; @@ -22,6 +23,7 @@ import com.fongmi.android.tv.ui.base.ViewType; import com.fongmi.android.tv.ui.custom.SpaceItemDecoration; import com.fongmi.android.tv.utils.ResUtil; import com.google.android.material.bottomsheet.BottomSheetDialogFragment; +import com.google.android.material.slider.Slider; import java.util.Arrays; import java.util.List; @@ -34,6 +36,7 @@ public class ControlDialog extends BaseDialog implements ParseAdapter.OnClickLis private final String[] scale; private Listener listener; private Players players; + private History history; private boolean parse; public static ControlDialog create() { @@ -49,6 +52,11 @@ public class ControlDialog extends BaseDialog implements ParseAdapter.OnClickLis return this; } + public ControlDialog history(History history) { + this.history = history; + return this; + } + public ControlDialog players(Players players) { this.players = players; return this; @@ -88,6 +96,7 @@ public class ControlDialog extends BaseDialog implements ParseAdapter.OnClickLis @Override protected void initEvent() { + binding.speed.addOnChangeListener(this::setSpeed); for (TextView view : scales) view.setOnClickListener(this::setScale); binding.text.setOnClickListener(v -> dismiss(detail.control.action.text)); binding.audio.setOnClickListener(v -> dismiss(detail.control.action.audio)); @@ -99,7 +108,11 @@ public class ControlDialog extends BaseDialog implements ParseAdapter.OnClickLis binding.opening.setOnClickListener(v -> click(binding.opening, detail.control.action.opening)); binding.ending.setOnLongClickListener(v -> longClick(binding.ending, detail.control.action.ending)); binding.opening.setOnLongClickListener(v -> longClick(binding.opening, detail.control.action.opening)); - binding.speed.addOnChangeListener((slider, value, fromUser) -> detail.control.action.speed.setText(players.setSpeed(value))); + } + + private void setSpeed(@NonNull Slider slider, float value, boolean fromUser) { + detail.control.action.speed.setText(players.setSpeed(value)); + if (history != null) history.setSpeed(players.getSpeed()); } private void setScaleText() {