From 2a6c8db8681e2276efc6822c06a367fa2ff7ced7 Mon Sep 17 00:00:00 2001 From: FongMi Date: Thu, 15 Sep 2022 19:12:26 +0800 Subject: [PATCH] Fix history bug --- .../android/tv/ui/activity/HomeActivity.java | 2 +- .../java/com/fongmi/android/tv/bean/History.java | 15 ++++++++------- .../com/fongmi/android/tv/db/dao/HistoryDao.java | 12 ++++++------ 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java index 34b0d924d..4a9974b68 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java @@ -163,10 +163,10 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen } private void getHistory(boolean renew) { + List items = History.get(); int historyIndex = getHistoryIndex(); int recommendIndex = getRecommendIndex(); boolean exist = recommendIndex - historyIndex == 2; - List items = History.find(ApiConfig.getCid()); if (renew) mHistoryAdapter = new ArrayObjectAdapter(mHistoryPresenter = new HistoryPresenter(this)); if ((items.isEmpty() && exist) || (renew && exist)) mAdapter.removeItems(historyIndex, 1); if ((items.size() > 0 && !exist) || (renew && exist)) mAdapter.add(historyIndex, new ListRow(mHistoryAdapter)); 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 140f1c2fa..b4db31825 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 @@ -5,6 +5,7 @@ import androidx.room.Entity; import androidx.room.PrimaryKey; import com.fongmi.android.tv.R; +import com.fongmi.android.tv.api.ApiConfig; import com.fongmi.android.tv.db.AppDatabase; import java.util.List; @@ -160,12 +161,12 @@ public class History { return isRevPlay() ? R.string.play_backward_hint : R.string.play_forward_hint; } - public static History find(String key) { - return AppDatabase.get().getHistoryDao().find(key); + public static List get() { + return AppDatabase.get().getHistoryDao().find(ApiConfig.getCid()); } - public static List find(int cid) { - return AppDatabase.get().getHistoryDao().find(cid); + public static History find(String key) { + return AppDatabase.get().getHistoryDao().find(ApiConfig.getCid(), key); } public static void delete(int id) { @@ -173,8 +174,8 @@ public class History { } public void checkDuplicate() { - History history = AppDatabase.get().getHistoryDao().findByName(getVodName()); - if (history != null) AppDatabase.get().getHistoryDao().delete(history.getKey()); + History history = AppDatabase.get().getHistoryDao().findByName(ApiConfig.getCid(), getVodName()); + if (history != null) AppDatabase.get().getHistoryDao().delete(ApiConfig.getCid(), history.getKey()); } public History update(long duration) { @@ -185,7 +186,7 @@ public class History { } public History delete() { - AppDatabase.get().getHistoryDao().delete(getKey()); + AppDatabase.get().getHistoryDao().delete(ApiConfig.getCid(), getKey()); return this; } } 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 b0165d026..ffba864f9 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 @@ -13,14 +13,14 @@ public abstract class HistoryDao extends BaseDao { @Query("SELECT * FROM history WHERE cid = :cid ORDER BY createTime DESC") public abstract List find(int cid); - @Query("SELECT * FROM history WHERE `key` = :key") - public abstract History find(String key); + @Query("SELECT * FROM history WHERE cid = :cid AND `key` = :key") + public abstract History find(int cid, String key); - @Query("SELECT * FROM history WHERE vodName = :vodName") - public abstract History findByName(String vodName); + @Query("SELECT * FROM history WHERE cid = :cid AND vodName = :vodName") + public abstract History findByName(int cid, String vodName); - @Query("DELETE FROM history WHERE `key` = :key") - public abstract void delete(String key); + @Query("DELETE FROM history WHERE cid = :cid AND `key` = :key") + public abstract void delete(int cid, String key); @Query("DELETE FROM history WHERE cid = :cid") public abstract void delete(int cid);