Optimize history save

release^2
jhengazuki 2 months ago
parent 1c5e82bde6
commit 8ead13d4a9
  1. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
  2. 1
      app/src/main/java/com/fongmi/android/tv/bean/History.java
  3. 2
      app/src/main/java/com/fongmi/android/tv/db/dao/HistoryDao.java
  4. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java

@ -1077,6 +1077,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
setMetadata(); setMetadata();
setTrackVisible(); setTrackVisible();
mClock.setCallback(this); mClock.setCallback(this);
App.execute(() -> mHistory.merge());
break; break;
case PlayerEvent.SIZE: case PlayerEvent.SIZE:
mBinding.widget.size.setText(mPlayers.getSizeText()); mBinding.widget.size.setText(mPlayers.getSizeText());
@ -1403,7 +1404,6 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
protected void onPause() { protected void onPause() {
super.onPause(); super.onPause();
if (isRedirect()) onPaused(); if (isRedirect()) onPaused();
if (mHistory != null) mHistory.merge();
} }
@Override @Override

@ -317,6 +317,7 @@ public class History implements Diffable<History> {
setVodFlag(flags.get(0).getFlag()); setVodFlag(flags.get(0).getFlag());
if (!flags.get(0).getEpisodes().isEmpty()) setVodRemarks(flags.get(0).getEpisodes().get(0).getName()); if (!flags.get(0).getEpisodes().isEmpty()) setVodRemarks(flags.get(0).getEpisodes().get(0).getName());
for (History item : findByName(getVodName())) { for (History item : findByName(getVodName())) {
if (getPosition() > 0) break;
for (Flag flag : flags) { for (Flag flag : flags) {
Episode episode = flag.find(item.getVodRemarks(), true); Episode episode = flag.find(item.getVodRemarks(), true);
if (episode == null) continue; if (episode == null) continue;

@ -19,7 +19,7 @@ public abstract class HistoryDao extends BaseDao<History> {
@Query("SELECT * FROM History WHERE cid = :cid AND `key` = :key") @Query("SELECT * FROM History WHERE cid = :cid AND `key` = :key")
public abstract History find(int cid, String 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<History> findByName(int cid, String vodName); public abstract List<History> findByName(int cid, String vodName);
@Query("DELETE FROM History WHERE cid = :cid AND `key` = :key") @Query("DELETE FROM History WHERE cid = :cid AND `key` = :key")

@ -1186,6 +1186,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
setMetadata(); setMetadata();
setTrackVisible(); setTrackVisible();
mClock.setCallback(this); mClock.setCallback(this);
App.execute(() -> mHistory.merge());
break; break;
case PlayerEvent.SIZE: case PlayerEvent.SIZE:
mBinding.video.post(this::changeHeight); mBinding.video.post(this::changeHeight);
@ -1646,7 +1647,6 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
protected void onPause() { protected void onPause() {
super.onPause(); super.onPause();
if (isRedirect()) onPaused(); if (isRedirect()) onPaused();
if (mHistory != null) mHistory.merge();
} }
@Override @Override

Loading…
Cancel
Save