Optimize position

release
FongMi 1 year ago
parent 083755ff35
commit bfb91d8882
  1. 11
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
  2. 9
      app/src/main/java/com/fongmi/android/tv/bean/History.java
  3. 11
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java

@ -941,8 +941,8 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
mHistory = mHistory == null ? createHistory(item) : mHistory;
if (!TextUtils.isEmpty(getMark())) mHistory.setVodRemarks(getMark());
if (Setting.isIncognito() && mHistory.getKey().equals(getHistoryKey())) mHistory.delete();
mBinding.control.opening.setText(mHistory.getOpening() == 0 ? getString(R.string.play_op) : mPlayers.stringToTime(mHistory.getOpening()));
mBinding.control.ending.setText(mHistory.getEnding() == 0 ? getString(R.string.play_ed) : mPlayers.stringToTime(mHistory.getEnding()));
mBinding.control.opening.setText(mHistory.getOpening() <= 0 ? getString(R.string.play_op) : mPlayers.stringToTime(mHistory.getOpening()));
mBinding.control.ending.setText(mHistory.getEnding() <= 0 ? getString(R.string.play_ed) : mPlayers.stringToTime(mHistory.getEnding()));
mBinding.control.speed.setText(mPlayers.setSpeed(mHistory.getSpeed()));
mHistory.setVodPic(item.getVodPic());
setScale(getScale());
@ -959,12 +959,11 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
private void updateHistory(Episode item, boolean replay) {
replay = replay || !item.equals(mHistory.getEpisode());
long position = replay ? C.TIME_UNSET : mHistory.getPosition();
mHistory.setPosition(position);
mHistory.setEpisodeUrl(item.getUrl());
mHistory.setVodRemarks(item.getName());
mHistory.setVodFlag(getFlag().getFlag());
mHistory.setCreateTime(System.currentTimeMillis());
mHistory.setPosition(replay ? C.TIME_UNSET : mHistory.getPosition());
}
private void checkKeep() {
@ -1059,7 +1058,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
}
private void setPosition() {
if (mHistory != null) mPlayers.seekTo(Math.max(mHistory.getOpening(), mHistory.getPosition()));
if (mHistory != null) mPlayers.seekTo(mHistory.getOpening() > 0 ? mHistory.getOpening() : mHistory.getPosition());
}
private void checkEnded() {
@ -1237,9 +1236,9 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
}
private void onPlay() {
if (mHistory != null && mPlayers.isEnded()) mPlayers.seekTo(mHistory.getOpening());
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
if (!mPlayers.isEmpty() && mPlayers.isIdle()) mPlayers.prepare();
if (mHistory != null && mPlayers.isEnded()) setPosition();
mPlayers.play();
hideCenter();
}

@ -4,6 +4,7 @@ import android.text.TextUtils;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.media3.common.C;
import androidx.room.Entity;
import androidx.room.PrimaryKey;
@ -71,6 +72,10 @@ public class History {
public History() {
this.speed = 1;
this.scale = -1;
this.ending = C.TIME_UNSET;
this.opening = C.TIME_UNSET;
this.position = C.TIME_UNSET;
this.duration = C.TIME_UNSET;
}
@NonNull
@ -251,8 +256,8 @@ public class History {
}
private void checkParam(History item) {
if (getOpening() == 0) setOpening(item.getOpening());
if (getEnding() == 0) setEnding(item.getEnding());
if (getOpening() <= 0) setOpening(item.getOpening());
if (getEnding() <= 0) setEnding(item.getEnding());
if (getSpeed() == 1) setSpeed(item.getSpeed());
}

@ -972,8 +972,8 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
mHistory = mHistory == null ? createHistory(item) : mHistory;
if (!TextUtils.isEmpty(getMark())) mHistory.setVodRemarks(getMark());
if (Setting.isIncognito() && mHistory.getKey().equals(getHistoryKey())) mHistory.delete();
mBinding.control.action.opening.setText(mHistory.getOpening() == 0 ? getString(R.string.play_op) : mPlayers.stringToTime(mHistory.getOpening()));
mBinding.control.action.ending.setText(mHistory.getEnding() == 0 ? getString(R.string.play_ed) : mPlayers.stringToTime(mHistory.getEnding()));
mBinding.control.action.opening.setText(mHistory.getOpening() <= 0 ? getString(R.string.play_op) : mPlayers.stringToTime(mHistory.getOpening()));
mBinding.control.action.ending.setText(mHistory.getEnding() <= 0 ? getString(R.string.play_ed) : mPlayers.stringToTime(mHistory.getEnding()));
mBinding.control.action.speed.setText(mPlayers.setSpeed(mHistory.getSpeed()));
mHistory.setVodPic(item.getVodPic());
setScale(getScale());
@ -990,12 +990,11 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
private void updateHistory(Episode item, boolean replay) {
replay = replay || !item.equals(mHistory.getEpisode());
long position = replay ? C.TIME_UNSET : mHistory.getPosition();
mHistory.setPosition(position);
mHistory.setEpisodeUrl(item.getUrl());
mHistory.setVodRemarks(item.getName());
mHistory.setVodFlag(getFlag().getFlag());
mHistory.setCreateTime(System.currentTimeMillis());
mHistory.setPosition(replay ? C.TIME_UNSET : mHistory.getPosition());
}
private void checkPlayImg(boolean playing) {
@ -1108,7 +1107,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
}
private void setPosition() {
if (mHistory != null) mPlayers.seekTo(Math.max(mHistory.getOpening(), mHistory.getPosition()));
if (mHistory != null) mPlayers.seekTo(mHistory.getOpening() > 0 ? mHistory.getOpening() : mHistory.getPosition());
}
private void checkPortrait() {
@ -1288,9 +1287,9 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
}
private void onPlay() {
if (mHistory != null && mPlayers.isEnded()) mPlayers.seekTo(mHistory.getOpening());
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
if (!mPlayers.isEmpty() && mPlayers.isIdle()) mPlayers.prepare();
if (mHistory != null && mPlayers.isEnded()) setPosition();
checkPlayImg(true);
mPlayers.play();
}

Loading…
Cancel
Save