Fix opening and ending bug

pull/590/head
FongMi 11 months ago
parent 567351bb1b
commit 449b2c8f8c
  1. 29
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
  2. 30
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java

@ -783,17 +783,13 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
private void onOpening() {
long current = mPlayers.getPosition();
long duration = mPlayers.getDuration();
if (current > TimeUnit.MINUTES.toMillis(10)) return;
if (current < 0 || duration < 0 || current > duration / 2) return;
if (current < 0 || duration < 0) return;
if (current > TimeUnit.MINUTES.toMillis(5)) return;
setOpening(current);
}
private void onOpeningAdd() {
long current = mPlayers.getPosition();
long duration = mPlayers.getDuration();
if (current < 0 || duration < 0) return;
if (mHistory.getOpening() < 0) mHistory.setOpening(0);
setOpening(Math.min(mHistory.getOpening() + 1000, duration / 2));
setOpening(Math.max(0, mHistory.getOpening() + 1000));
}
private void onOpeningSub() {
@ -813,16 +809,13 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
private void onEnding() {
long current = mPlayers.getPosition();
long duration = mPlayers.getDuration();
if (duration - current > TimeUnit.MINUTES.toMillis(10)) return;
if (current < 0 || duration < 0 || current < duration / 2) return;
if (current < 0 || duration < 0) return;
if (duration - current > TimeUnit.MINUTES.toMillis(5)) return;
setEnding(duration - current);
}
private void onEndingAdd() {
long current = mPlayers.getPosition();
long duration = mPlayers.getDuration();
if (current < 0 || duration < 0) return;
setEnding(Math.min(duration / 2, mHistory.getEnding() + 1000));
setEnding(Math.max(0, mHistory.getEnding() + 1000));
}
private void onEndingSub() {
@ -1348,8 +1341,14 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
@Override
public void onKeyUp() {
long current = mPlayers.getPosition();
long half = mPlayers.getDuration() / 2;
showControl(current < half ? mBinding.control.opening : mBinding.control.ending);
long duration = mPlayers.getDuration();
if (duration - current < TimeUnit.MINUTES.toMillis(5)) {
showControl(mBinding.control.ending);
} else if (current < TimeUnit.MINUTES.toMillis(5)) {
showControl(mBinding.control.opening);
} else {
showControl(getFocus2());
}
}
@Override

@ -803,37 +803,43 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
private void onEnding() {
long current = mPlayers.getPosition();
long duration = mPlayers.getDuration();
if (duration - current > TimeUnit.MINUTES.toMillis(10)) return;
if (current < 0 || duration < 0 || current < duration / 2) return;
mHistory.setEnding(duration - current);
mBinding.control.action.ending.setText(mPlayers.stringToTime(mHistory.getEnding()));
if (current < 0 || duration < 0) return;
if (duration - current > TimeUnit.MINUTES.toMillis(5)) return;
setEnding(duration - current);
setR1Callback();
}
private boolean onEndingReset() {
mHistory.setEnding(0);
mBinding.control.action.ending.setText(R.string.play_ed);
setR1Callback();
setEnding(0);
return true;
}
private void setEnding(long ending) {
mHistory.setEnding(ending);
mBinding.control.action.ending.setText(ending <= 0 ? getString(R.string.play_ed) : mPlayers.stringToTime(mHistory.getEnding()));
}
private void onOpening() {
long current = mPlayers.getPosition();
long duration = mPlayers.getDuration();
if (current > TimeUnit.MINUTES.toMillis(10)) return;
if (current < 0 || duration < 0 || current > duration / 2) return;
mHistory.setOpening(current);
mBinding.control.action.opening.setText(mPlayers.stringToTime(mHistory.getOpening()));
if (current < 0 || duration < 0) return;
if (current > TimeUnit.MINUTES.toMillis(5)) return;
setOpening(current);
setR1Callback();
}
private boolean onOpeningReset() {
mHistory.setOpening(0);
mBinding.control.action.opening.setText(R.string.play_op);
setR1Callback();
setOpening(0);
return true;
}
private void setOpening(long opening) {
mHistory.setOpening(opening);
mBinding.control.action.opening.setText(opening <= 0 ? getString(R.string.play_op) : mPlayers.stringToTime(mHistory.getOpening()));
}
private void onEpisodes() {
mDialogs.add(EpisodeListDialog.create(this).episodes(mEpisodeAdapter.getItems()).show());
}

Loading…
Cancel
Save