diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java index 8d9d31a4f..cb1099538 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java @@ -104,8 +104,10 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit @Override protected void initEvent() { mBinding.vod.setOnClickListener(this::onVod); + mBinding.doh.setOnClickListener(this::setDoh); mBinding.live.setOnClickListener(this::onLive); mBinding.wall.setOnClickListener(this::onWall); + mBinding.size.setOnClickListener(this::setSize); mBinding.cache.setOnClickListener(this::onCache); mBinding.backup.setOnClickListener(this::onBackup); mBinding.player.setOnClickListener(this::onPlayer); @@ -116,14 +118,13 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit mBinding.live.setOnLongClickListener(this::onLiveEdit); mBinding.liveHome.setOnClickListener(this::onLiveHome); mBinding.wall.setOnLongClickListener(this::onWallEdit); + mBinding.incognito.setOnClickListener(this::setIncognito); mBinding.vodHistory.setOnClickListener(this::onVodHistory); mBinding.version.setOnLongClickListener(this::onVersionDev); mBinding.liveHistory.setOnClickListener(this::onLiveHistory); mBinding.wallDefault.setOnClickListener(this::setWallDefault); mBinding.wallRefresh.setOnClickListener(this::setWallRefresh); - mBinding.incognito.setOnClickListener(this::setIncognito); - mBinding.size.setOnClickListener(this::setSize); - mBinding.doh.setOnClickListener(this::setDoh); + mBinding.wallRefresh.setOnLongClickListener(this::onWallHistory); } @Override @@ -279,9 +280,20 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit Notify.dismiss(); setCacheText(); } + + @Override + public void error(String msg) { + Notify.dismiss(); + Notify.show(msg); + } }); } + private boolean onWallHistory(View view) { + HistoryDialog.create(this).type(type = 2).show(); + return true; + } + private void setIncognito(View view) { Setting.putIncognito(!Setting.isIncognito()); mBinding.incognitoText.setText(getSwitch(Setting.isIncognito())); diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/adapter/ConfigAdapter.java b/app/src/leanback/java/com/fongmi/android/tv/ui/adapter/ConfigAdapter.java index 32ee0b8f7..d10de9fd6 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/adapter/ConfigAdapter.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/adapter/ConfigAdapter.java @@ -8,6 +8,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.fongmi.android.tv.api.config.LiveConfig; import com.fongmi.android.tv.api.config.VodConfig; +import com.fongmi.android.tv.api.config.WallConfig; import com.fongmi.android.tv.bean.Config; import com.fongmi.android.tv.databinding.AdapterConfigBinding; @@ -31,10 +32,18 @@ public class ConfigAdapter extends RecyclerView.Adapter VodConfig.get().getConfig(); + case 1 -> LiveConfig.get().getConfig(); + default -> WallConfig.get().getConfig(); + }; + } + public int remove(Config item) { int position = mItems.indexOf(item); if (position == -1) return -1; diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Config.java b/app/src/main/java/com/fongmi/android/tv/bean/Config.java index 7cfb44a83..aebae6f7c 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Config.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Config.java @@ -195,13 +195,9 @@ public class Config { } public static void delete(String url, int type) { - if (type != 2) { - AppDatabase.get().getConfigDao().delete(url, type); - } else { - Path.clear(FileUtil.getWall(0)); - Path.clear(FileUtil.getWallCache()); - AppDatabase.get().getConfigDao().delete(type); - } + if (type == 2) Path.clear(FileUtil.getWall(0)); + if (type == 2) Path.clear(FileUtil.getWallCache()); + AppDatabase.get().getConfigDao().delete(url, type); } public static Config vod() { diff --git a/app/src/main/java/com/fongmi/android/tv/db/dao/ConfigDao.java b/app/src/main/java/com/fongmi/android/tv/db/dao/ConfigDao.java index a6ce92cc6..08bf7c850 100644 --- a/app/src/main/java/com/fongmi/android/tv/db/dao/ConfigDao.java +++ b/app/src/main/java/com/fongmi/android/tv/db/dao/ConfigDao.java @@ -35,7 +35,4 @@ public abstract class ConfigDao extends BaseDao { @Query("DELETE FROM Config WHERE url = :url") public abstract void delete(String url); - - @Query("DELETE FROM Config WHERE type = :type") - public abstract void delete(int type); } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/ConfigAdapter.java b/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/ConfigAdapter.java index e52ecba96..6d08a2b44 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/ConfigAdapter.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/ConfigAdapter.java @@ -8,6 +8,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.fongmi.android.tv.api.config.LiveConfig; import com.fongmi.android.tv.api.config.VodConfig; +import com.fongmi.android.tv.api.config.WallConfig; import com.fongmi.android.tv.bean.Config; import com.fongmi.android.tv.databinding.AdapterConfigBinding; @@ -31,14 +32,24 @@ public class ConfigAdapter extends RecyclerView.Adapter VodConfig.get().getConfig(); + case 1 -> LiveConfig.get().getConfig(); + default -> WallConfig.get().getConfig(); + }; + } + public int remove(Config item) { + int position = mItems.indexOf(item); + if (position == -1) return -1; item.delete(); - mItems.remove(item); - notifyDataSetChanged(); + mItems.remove(position); + notifyItemRemoved(position); return getItemCount(); } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/HistoryDialog.java b/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/HistoryDialog.java index f8a6d2334..e967ea7a9 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/HistoryDialog.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/HistoryDialog.java @@ -42,7 +42,8 @@ public class HistoryDialog implements ConfigAdapter.OnClickListener { } private void setRecyclerView() { - binding.recycler.setHasFixedSize(true); + binding.recycler.setItemAnimator(null); + binding.recycler.setHasFixedSize(false); binding.recycler.setAdapter(adapter.addAll(type)); binding.recycler.addItemDecoration(new SpaceItemDecoration(1, 8)); binding.recycler.post(() -> binding.recycler.scrollToPosition(0)); diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java index 71a760430..42633c0db 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java @@ -111,8 +111,10 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit @Override protected void initEvent() { mBinding.vod.setOnClickListener(this::onVod); + mBinding.doh.setOnClickListener(this::setDoh); mBinding.live.setOnClickListener(this::onLive); mBinding.wall.setOnClickListener(this::onWall); + mBinding.size.setOnClickListener(this::setSize); mBinding.cache.setOnClickListener(this::onCache); mBinding.backup.setOnClickListener(this::onBackup); mBinding.player.setOnClickListener(this::onPlayer); @@ -123,14 +125,13 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit mBinding.live.setOnLongClickListener(this::onLiveEdit); mBinding.liveHome.setOnClickListener(this::onLiveHome); mBinding.wall.setOnLongClickListener(this::onWallEdit); + mBinding.incognito.setOnClickListener(this::setIncognito); mBinding.vodHistory.setOnClickListener(this::onVodHistory); mBinding.version.setOnLongClickListener(this::onVersionDev); mBinding.liveHistory.setOnClickListener(this::onLiveHistory); mBinding.wallDefault.setOnClickListener(this::setWallDefault); mBinding.wallRefresh.setOnClickListener(this::setWallRefresh); - mBinding.incognito.setOnClickListener(this::setIncognito); - mBinding.size.setOnClickListener(this::setSize); - mBinding.doh.setOnClickListener(this::setDoh); + mBinding.wallRefresh.setOnLongClickListener(this::onWallHistory); } @Override @@ -295,6 +296,11 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit }); } + private boolean onWallHistory(View view) { + HistoryDialog.create(this).type(type = 2).show(); + return true; + } + private void setIncognito(View view) { Setting.putIncognito(!Setting.isIncognito()); mBinding.incognitoText.setText(getSwitch(Setting.isIncognito()));