diff --git a/app/build.gradle b/app/build.gradle index 25539a464..4ec086313 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -22,7 +22,7 @@ android { mobile { dimension "mode" versionCode 6 - versionName "20230302" + versionName "20230310" } java { dimension = "api" diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/SiteAdapter.java b/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/SiteAdapter.java index 731d98d80..74d25933b 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/SiteAdapter.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/SiteAdapter.java @@ -18,6 +18,7 @@ public class SiteAdapter extends RecyclerView.Adapter { private final OnClickListener mListener; private final List mItems; private boolean search; + private boolean change; public SiteAdapter(OnClickListener listener) { this.mListener = listener; @@ -29,13 +30,22 @@ public class SiteAdapter extends RecyclerView.Adapter { return this; } + public SiteAdapter change(boolean change) { + this.change = change; + return this; + } + public interface OnClickListener { void onTextClick(Site item); - void onSearchClick(Site item); + void onSearchClick(int position, Site item); + + void onChangeClick(int position, Site item); boolean onSearchLongClick(Site item); + + boolean onChangeLongClick(Site item); } @Override @@ -58,10 +68,14 @@ public class SiteAdapter extends RecyclerView.Adapter { holder.binding.text.setActivated(item.isActivated()); holder.binding.search.setActivated(item.isActivated()); holder.binding.search.setImageResource(item.getSearchIcon()); + holder.binding.change.setImageResource(item.getChangeIcon()); holder.binding.search.setVisibility(search ? View.VISIBLE : View.GONE); + holder.binding.change.setVisibility(change ? View.VISIBLE : View.GONE); holder.binding.text.setOnClickListener(v -> mListener.onTextClick(item)); - holder.binding.search.setOnClickListener(v -> mListener.onSearchClick(item)); + holder.binding.search.setOnClickListener(v -> mListener.onSearchClick(position, item)); + holder.binding.change.setOnClickListener(v -> mListener.onChangeClick(position, item)); holder.binding.search.setOnLongClickListener(v -> mListener.onSearchLongClick(item)); + holder.binding.change.setOnLongClickListener(v -> mListener.onChangeLongClick(item)); } static class ViewHolder extends RecyclerView.ViewHolder { diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/custom/dialog/SiteDialog.java b/app/src/mobile/java/com/fongmi/android/tv/ui/custom/dialog/SiteDialog.java index efb4f8dfd..16bb18c4d 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/custom/dialog/SiteDialog.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/custom/dialog/SiteDialog.java @@ -50,6 +50,7 @@ public class SiteDialog implements SiteAdapter.OnClickListener { public SiteDialog all() { this.adapter.search(true); + this.adapter.change(true); return this; } @@ -80,12 +81,18 @@ public class SiteDialog implements SiteAdapter.OnClickListener { } @Override - public void onSearchClick(Site item) { + public void onSearchClick(int position, Site item) { item.setSearchable(!item.isSearchable()).save(); - adapter.notifyItemRangeChanged(0, adapter.getItemCount()); + adapter.notifyItemChanged(position); callback.onChanged(); } + @Override + public void onChangeClick(int position, Site item) { + item.setChangeable(!item.isChangeable()).save(); + adapter.notifyItemChanged(position); + } + @Override public boolean onSearchLongClick(Site item) { boolean result = !item.isSearchable(); @@ -94,4 +101,12 @@ public class SiteDialog implements SiteAdapter.OnClickListener { callback.onChanged(); return true; } + + @Override + public boolean onChangeLongClick(Site item) { + boolean result = !item.isChangeable(); + for (Site site : ApiConfig.get().getSites()) site.setChangeable(result).save(); + adapter.notifyItemRangeChanged(0, adapter.getItemCount()); + return true; + } } diff --git a/app/src/mobile/res/layout/adapter_site.xml b/app/src/mobile/res/layout/adapter_site.xml index 2af8779f1..a03cc6f8a 100644 --- a/app/src/mobile/res/layout/adapter_site.xml +++ b/app/src/mobile/res/layout/adapter_site.xml @@ -29,4 +29,15 @@ android:src="@drawable/ic_site_search_on" app:tint="@color/text" /> + + \ No newline at end of file