[mobile] add change

pull/123/head
FongMi 3 years ago
parent 9106888185
commit af82455e0a
  1. 2
      app/build.gradle
  2. 18
      app/src/mobile/java/com/fongmi/android/tv/ui/adapter/SiteAdapter.java
  3. 19
      app/src/mobile/java/com/fongmi/android/tv/ui/custom/dialog/SiteDialog.java
  4. 11
      app/src/mobile/res/layout/adapter_site.xml

@ -22,7 +22,7 @@ android {
mobile {
dimension "mode"
versionCode 6
versionName "20230302"
versionName "20230310"
}
java {
dimension = "api"

@ -18,6 +18,7 @@ public class SiteAdapter extends RecyclerView.Adapter<SiteAdapter.ViewHolder> {
private final OnClickListener mListener;
private final List<Site> mItems;
private boolean search;
private boolean change;
public SiteAdapter(OnClickListener listener) {
this.mListener = listener;
@ -29,13 +30,22 @@ public class SiteAdapter extends RecyclerView.Adapter<SiteAdapter.ViewHolder> {
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<SiteAdapter.ViewHolder> {
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 {

@ -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;
}
}

@ -29,4 +29,15 @@
android:src="@drawable/ic_site_search_on"
app:tint="@color/text" />
<ImageView
android:id="@+id/change"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginStart="12dp"
android:background="@drawable/shape_text"
android:padding="8dp"
android:scaleType="fitCenter"
android:src="@drawable/ic_site_change_on"
app:tint="@color/text" />
</LinearLayout>
Loading…
Cancel
Save