Fix history bug

pull/21/head
FongMi 3 years ago
parent 04b30d5adf
commit 8414b758b9
  1. 17
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java

@ -118,7 +118,7 @@ public class DetailActivity extends BaseActivity implements KeyDown.Listener {
mControl.next.setOnClickListener(view -> onNext());
mControl.prev.setOnClickListener(view -> onPrev());
mControl.scale.setOnClickListener(view -> onScale());
mControl.reset.setOnClickListener(view -> getPlayer());
mControl.reset.setOnClickListener(view -> getPlayer(true));
mControl.speed.setOnClickListener(view -> mControl.speed.setText(Players.get().addSpeed()));
mBinding.flag.addOnChildViewHolderSelectedListener(new OnChildViewHolderSelectedListener() {
@Override
@ -161,13 +161,12 @@ public class DetailActivity extends BaseActivity implements KeyDown.Listener {
mSiteViewModel.detailContent(getKey(), getId());
}
private void getPlayer() {
private void getPlayer(boolean reset) {
Vod.Flag.Episode item = (Vod.Flag.Episode) mEpisodeAdapter.get(getEpisodePosition());
if (mFullscreen) Notify.show(ResUtil.getString(R.string.play_ready, item.getName()));
mSiteViewModel.playerContent(getKey(), getVodFlag().getFlag(), item.getUrl());
mBinding.progress.getRoot().setVisibility(View.VISIBLE);
Players.get().setKey(getHistoryKey());
updateHistory(item);
updateHistory(item, reset);
}
private void setViewModel() {
@ -180,6 +179,7 @@ public class DetailActivity extends BaseActivity implements KeyDown.Listener {
}
private void setDetail(Vod item) {
Players.get().setKey(getHistoryKey());
mBinding.progressLayout.showContent();
mBinding.video.setTag(item.getVodPic());
mBinding.name.setText(item.getVodName());
@ -218,7 +218,7 @@ public class DetailActivity extends BaseActivity implements KeyDown.Listener {
for (int i = 0; i < mFlagAdapter.size(); i++) ((Vod.Flag) mFlagAdapter.get(i)).toggle(mCurrent == i, item);
mEpisodeAdapter.notifyArrayItemRangeChanged(0, mEpisodeAdapter.size());
mHandler.post(() -> mBinding.episode.setSelectedPosition(getEpisodePosition()));
getPlayer();
getPlayer(false);
}
private void setGroup(int size) {
@ -288,11 +288,14 @@ public class DetailActivity extends BaseActivity implements KeyDown.Listener {
AppDatabase.get().getHistoryDao().insertOrUpdate(history);
}
private void updateHistory(Vod.Flag.Episode item) {
private void updateHistory(Vod.Flag.Episode item, boolean reset) {
History history = AppDatabase.get().getHistoryDao().find(getHistoryKey());
history.setVodFlag(getVodFlag().getFlag());
reset = reset || !history.getEpisodeUrl().equals(item.getUrl());
long duration = reset ? 0 : history.getDuration();
history.setDuration(duration);
history.setEpisodeUrl(item.getUrl());
history.setVodRemarks(item.getName());
history.setVodFlag(getVodFlag().getFlag());
history.setCreateTime(System.currentTimeMillis());
AppDatabase.get().getHistoryDao().update(history);
EventBus.getDefault().post(RefreshEvent.history());

Loading…
Cancel
Save