Fix history bug

pull/137/head
FongMi 4 years ago
parent e708720a5a
commit 2a6c8db868
  1. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
  2. 15
      app/src/main/java/com/fongmi/android/tv/bean/History.java
  3. 12
      app/src/main/java/com/fongmi/android/tv/db/dao/HistoryDao.java

@ -163,10 +163,10 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
}
private void getHistory(boolean renew) {
List<History> items = History.get();
int historyIndex = getHistoryIndex();
int recommendIndex = getRecommendIndex();
boolean exist = recommendIndex - historyIndex == 2;
List<History> 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));

@ -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<History> get() {
return AppDatabase.get().getHistoryDao().find(ApiConfig.getCid());
}
public static List<History> 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;
}
}

@ -13,14 +13,14 @@ public abstract class HistoryDao extends BaseDao<History> {
@Query("SELECT * FROM history WHERE cid = :cid ORDER BY createTime DESC")
public abstract List<History> 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);

Loading…
Cancel
Save