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 a3167332d..d2da3753f 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 @@ -1077,6 +1077,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List setMetadata(); setTrackVisible(); mClock.setCallback(this); + App.execute(() -> mHistory.merge()); break; case PlayerEvent.SIZE: mBinding.widget.size.setText(mPlayers.getSizeText()); @@ -1403,7 +1404,6 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List protected void onPause() { super.onPause(); if (isRedirect()) onPaused(); - if (mHistory != null) mHistory.merge(); } @Override diff --git a/app/src/main/java/com/fongmi/android/tv/bean/History.java b/app/src/main/java/com/fongmi/android/tv/bean/History.java index 5cb04ccdc..7211fb873 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/History.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/History.java @@ -317,6 +317,7 @@ public class History implements Diffable { setVodFlag(flags.get(0).getFlag()); if (!flags.get(0).getEpisodes().isEmpty()) setVodRemarks(flags.get(0).getEpisodes().get(0).getName()); for (History item : findByName(getVodName())) { + if (getPosition() > 0) break; for (Flag flag : flags) { Episode episode = flag.find(item.getVodRemarks(), true); if (episode == null) continue; diff --git a/app/src/main/java/com/fongmi/android/tv/db/dao/HistoryDao.java b/app/src/main/java/com/fongmi/android/tv/db/dao/HistoryDao.java index 61b201250..ef213b178 100644 --- a/app/src/main/java/com/fongmi/android/tv/db/dao/HistoryDao.java +++ b/app/src/main/java/com/fongmi/android/tv/db/dao/HistoryDao.java @@ -19,7 +19,7 @@ public abstract class HistoryDao extends BaseDao { @Query("SELECT * FROM History WHERE cid = :cid AND `key` = :key") public abstract History find(int cid, String key); - @Query("SELECT * FROM History WHERE cid = :cid AND vodName = :vodName AND position > 0 ORDER BY createTime DESC") + @Query("SELECT * FROM History WHERE cid = :cid AND vodName = :vodName ORDER BY createTime DESC") public abstract List findByName(int cid, String vodName); @Query("DELETE FROM History WHERE cid = :cid AND `key` = :key") diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java index 159454bd2..5be718c3a 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java @@ -1186,6 +1186,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo setMetadata(); setTrackVisible(); mClock.setCallback(this); + App.execute(() -> mHistory.merge()); break; case PlayerEvent.SIZE: mBinding.video.post(this::changeHeight); @@ -1646,7 +1647,6 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo protected void onPause() { super.onPause(); if (isRedirect()) onPaused(); - if (mHistory != null) mHistory.merge(); } @Override