Optimize keep and history

pull/594/head
jhengazuki 7 months ago
parent 431b5d678e
commit fa4ce33dd2
  1. 5
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
  2. 4
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/KeepActivity.java
  3. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/adapter/ConfigAdapter.java
  4. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/adapter/DohAdapter.java
  5. 31
      app/src/leanback/java/com/fongmi/android/tv/ui/adapter/KeepAdapter.java
  6. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/adapter/LiveAdapter.java
  7. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/adapter/QualityAdapter.java
  8. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/adapter/RestoreAdapter.java
  9. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/adapter/SiteAdapter.java
  10. 17
      app/src/leanback/java/com/fongmi/android/tv/ui/adapter/diff/BaseDiffCallback.java
  11. 13
      app/src/main/java/com/fongmi/android/tv/bean/History.java
  12. 13
      app/src/main/java/com/fongmi/android/tv/bean/Keep.java
  13. 67
      app/src/main/java/com/fongmi/android/tv/ui/adapter/BaseDiffAdapter.java
  14. 28
      app/src/main/java/com/fongmi/android/tv/ui/adapter/diff/BaseDiffCallback.java
  15. 17
      app/src/main/java/com/fongmi/android/tv/ui/adapter/diff/BaseItemCallback.java
  16. 8
      app/src/main/java/com/fongmi/android/tv/ui/adapter/diff/Diffable.java
  17. 18
      app/src/main/java/com/fongmi/android/tv/ui/adapter/diff/HistoryDiffCallback.java
  18. 18
      app/src/main/java/com/fongmi/android/tv/ui/adapter/diff/KeepDiffCallback.java
  19. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/HistoryActivity.java
  20. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/KeepActivity.java
  21. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/adapter/ChannelAdapter.java
  22. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/adapter/CollectAdapter.java
  23. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/adapter/ConfigAdapter.java
  24. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/adapter/DeviceAdapter.java
  25. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/adapter/EpgDataAdapter.java
  26. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/adapter/FileAdapter.java
  27. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/adapter/FilterAdapter.java
  28. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/adapter/FlagAdapter.java
  29. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/adapter/GroupAdapter.java
  30. 40
      app/src/mobile/java/com/fongmi/android/tv/ui/adapter/HistoryAdapter.java
  31. 45
      app/src/mobile/java/com/fongmi/android/tv/ui/adapter/KeepAdapter.java
  32. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/adapter/LiveAdapter.java
  33. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/adapter/ParseAdapter.java
  34. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/adapter/QualityAdapter.java
  35. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/adapter/QuickAdapter.java
  36. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/adapter/RecordAdapter.java
  37. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/adapter/RestoreAdapter.java
  38. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/adapter/SiteAdapter.java
  39. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/adapter/TypeAdapter.java
  40. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/adapter/ValueAdapter.java
  41. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/adapter/WordAdapter.java

@ -29,6 +29,7 @@ import com.fongmi.android.tv.api.config.WallConfig;
import com.fongmi.android.tv.bean.Config;
import com.fongmi.android.tv.bean.Func;
import com.fongmi.android.tv.bean.History;
import com.fongmi.android.tv.bean.Keep;
import com.fongmi.android.tv.bean.Result;
import com.fongmi.android.tv.bean.Site;
import com.fongmi.android.tv.bean.Style;
@ -43,7 +44,7 @@ import com.fongmi.android.tv.impl.ChainTask;
import com.fongmi.android.tv.model.SiteViewModel;
import com.fongmi.android.tv.player.Source;
import com.fongmi.android.tv.server.Server;
import com.fongmi.android.tv.ui.adapter.diff.HistoryDiffCallback;
import com.fongmi.android.tv.ui.adapter.diff.BaseDiffCallback;
import com.fongmi.android.tv.ui.base.BaseActivity;
import com.fongmi.android.tv.ui.custom.CustomRowPresenter;
import com.fongmi.android.tv.ui.custom.CustomSelector;
@ -267,7 +268,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
if (renew) mHistoryAdapter = new ArrayObjectAdapter(mPresenter = new HistoryPresenter(this));
if ((items.isEmpty() && exist) || (renew && exist)) mAdapter.removeItems(historyIndex, 1);
if ((!items.isEmpty() && !exist) || (renew && exist)) mAdapter.add(historyIndex, new ListRow(mHistoryAdapter));
mHistoryAdapter.setItems(items, new HistoryDiffCallback());
mHistoryAdapter.setItems(items, new BaseDiffCallback<Keep>());
}
private void setHistoryDelete(boolean delete) {

@ -50,7 +50,7 @@ public class KeepActivity extends BaseActivity implements KeepAdapter.OnClickLis
}
private void getKeep() {
mAdapter.addAll(Keep.getVod());
mAdapter.setItems(Keep.getVod());
mBinding.progressLayout.showContent(true, mAdapter.getItemCount());
}
@ -86,7 +86,7 @@ public class KeepActivity extends BaseActivity implements KeepAdapter.OnClickLis
@Override
public void onItemDelete(Keep item) {
mAdapter.delete(item.delete());
mAdapter.remove(item.delete());
if (mAdapter.getItemCount() == 0) mAdapter.setDelete(false);
}

@ -63,7 +63,7 @@ public class ConfigAdapter extends RecyclerView.Adapter<ConfigAdapter.ViewHolder
holder.binding.delete.setOnClickListener(v -> mListener.onDeleteClick(item));
}
public static class ViewHolder extends RecyclerView.ViewHolder {
public class ViewHolder extends RecyclerView.ViewHolder {
private final AdapterConfigBinding binding;

@ -55,7 +55,7 @@ public class DohAdapter extends RecyclerView.Adapter<DohAdapter.ViewHolder> {
holder.binding.text.setOnClickListener(v -> mListener.onItemClick(item));
}
public static class ViewHolder extends RecyclerView.ViewHolder {
public class ViewHolder extends RecyclerView.ViewHolder {
private final AdapterDohBinding binding;

@ -5,28 +5,21 @@ import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.AsyncListDiffer;
import androidx.recyclerview.widget.RecyclerView;
import com.fongmi.android.tv.Product;
import com.fongmi.android.tv.bean.Keep;
import com.fongmi.android.tv.databinding.AdapterVodBinding;
import com.fongmi.android.tv.ui.adapter.diff.KeepDiffCallback;
import com.fongmi.android.tv.utils.ImgUtil;
import com.fongmi.android.tv.utils.ResUtil;
import java.util.ArrayList;
import java.util.List;
public class KeepAdapter extends BaseDiffAdapter<Keep, KeepAdapter.ViewHolder> {
public class KeepAdapter extends RecyclerView.Adapter<KeepAdapter.ViewHolder> {
private final AsyncListDiffer<Keep> differ;
private final OnClickListener listener;
private int width, height;
private boolean delete;
public KeepAdapter(OnClickListener listener) {
this.differ = new AsyncListDiffer<>(this, new KeepDiffCallback().asItemCallback());
this.listener = listener;
setLayoutSize();
}
@ -47,27 +40,13 @@ public class KeepAdapter extends RecyclerView.Adapter<KeepAdapter.ViewHolder> {
boolean onLongClick();
}
public void addAll(List<Keep> items) {
differ.submitList(items);
}
public void delete(Keep item) {
List<Keep> current = new ArrayList<>(differ.getCurrentList());
if (current.remove(item)) differ.submitList(current);
}
public boolean isDelete() {
return delete;
}
public void setDelete(boolean delete) {
this.delete = delete;
notifyItemRangeChanged(0, getItemCount());
}
@Override
public int getItemCount() {
return differ.getCurrentList().size();
public boolean isDelete() {
return delete;
}
@NonNull
@ -81,7 +60,7 @@ public class KeepAdapter extends RecyclerView.Adapter<KeepAdapter.ViewHolder> {
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
Keep item = differ.getCurrentList().get(position);
Keep item = getItem(position);
setClickListener(holder.itemView, item);
holder.binding.name.setText(item.getVodName());
holder.binding.remark.setVisibility(View.GONE);
@ -99,7 +78,7 @@ public class KeepAdapter extends RecyclerView.Adapter<KeepAdapter.ViewHolder> {
});
}
public static class ViewHolder extends RecyclerView.ViewHolder {
public class ViewHolder extends RecyclerView.ViewHolder {
private final AdapterVodBinding binding;

@ -69,7 +69,7 @@ public class LiveAdapter extends RecyclerView.Adapter<LiveAdapter.ViewHolder> {
holder.binding.pass.setOnLongClickListener(v -> mListener.onPassLongClick(item));
}
static class ViewHolder extends RecyclerView.ViewHolder {
public class ViewHolder extends RecyclerView.ViewHolder {
private final AdapterLiveBinding binding;

@ -59,7 +59,7 @@ public class QualityAdapter extends RecyclerView.Adapter<QualityAdapter.ViewHold
notifyItemRangeChanged(0, getItemCount());
}
static class ViewHolder extends RecyclerView.ViewHolder {
public class ViewHolder extends RecyclerView.ViewHolder {
private final AdapterQualityBinding binding;

@ -68,7 +68,7 @@ public class RestoreAdapter extends RecyclerView.Adapter<RestoreAdapter.ViewHold
holder.binding.delete.setOnClickListener(v -> mListener.onDeleteClick(item));
}
public static class ViewHolder extends RecyclerView.ViewHolder {
public class ViewHolder extends RecyclerView.ViewHolder {
private final AdapterRestoreBinding binding;

@ -103,7 +103,7 @@ public class SiteAdapter extends RecyclerView.Adapter<SiteAdapter.ViewHolder> {
notifyItemRangeChanged(0, getItemCount());
}
static class ViewHolder extends RecyclerView.ViewHolder {
public class ViewHolder extends RecyclerView.ViewHolder {
private final AdapterSiteBinding binding;

@ -0,0 +1,17 @@
package com.fongmi.android.tv.ui.adapter.diff;
import androidx.annotation.NonNull;
import androidx.leanback.widget.DiffCallback;
public class BaseDiffCallback<T extends Diffable<T>> extends DiffCallback<T> {
@Override
public boolean areItemsTheSame(T oldItem, @NonNull T newItem) {
return oldItem.isSameItem(newItem);
}
@Override
public boolean areContentsTheSame(T oldItem, @NonNull T newItem) {
return oldItem.isSameContent(newItem);
}
}

@ -15,6 +15,7 @@ import com.fongmi.android.tv.R;
import com.fongmi.android.tv.api.config.VodConfig;
import com.fongmi.android.tv.db.AppDatabase;
import com.fongmi.android.tv.event.RefreshEvent;
import com.fongmi.android.tv.ui.adapter.diff.Diffable;
import com.google.gson.annotations.SerializedName;
import com.google.gson.reflect.TypeToken;
@ -24,7 +25,7 @@ import java.util.List;
import java.util.concurrent.TimeUnit;
@Entity
public class History {
public class History implements Diffable<History> {
@NonNull
@PrimaryKey
@ -358,4 +359,14 @@ public class History {
public String toString() {
return App.gson().toJson(this);
}
@Override
public boolean isSameItem(History other) {
return getKey().equals(other.getKey());
}
@Override
public boolean isSameContent(History other) {
return equals(other);
}
}

@ -9,6 +9,7 @@ import com.fongmi.android.tv.App;
import com.fongmi.android.tv.api.config.VodConfig;
import com.fongmi.android.tv.db.AppDatabase;
import com.fongmi.android.tv.event.RefreshEvent;
import com.fongmi.android.tv.ui.adapter.diff.Diffable;
import com.google.gson.annotations.SerializedName;
import com.google.gson.reflect.TypeToken;
@ -17,7 +18,7 @@ import java.util.Collections;
import java.util.List;
@Entity
public class Keep {
public class Keep implements Diffable<Keep> {
@NonNull
@PrimaryKey
@ -176,4 +177,14 @@ public class Keep {
if (!(obj instanceof Keep it)) return false;
return getKey().equals(it.getKey()) && getVodName().equals(it.getVodName()) && getVodPic().equals(it.getVodPic()) && getCreateTime() == it.getCreateTime();
}
@Override
public boolean isSameItem(Keep other) {
return getKey().equals(other.getKey());
}
@Override
public boolean isSameContent(Keep other) {
return equals(other);
}
}

@ -0,0 +1,67 @@
package com.fongmi.android.tv.ui.adapter;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.AsyncListDiffer;
import androidx.recyclerview.widget.RecyclerView;
import com.fongmi.android.tv.ui.adapter.diff.BaseItemCallback;
import com.fongmi.android.tv.ui.adapter.diff.Diffable;
import java.util.ArrayList;
import java.util.List;
public abstract class BaseDiffAdapter<T extends Diffable<T>, VH extends RecyclerView.ViewHolder> extends RecyclerView.Adapter<VH> {
protected final AsyncListDiffer<T> differ;
public BaseDiffAdapter() {
this.differ = new AsyncListDiffer<>(this, new BaseItemCallback<T>());
}
public T getItem(int position) {
return differ.getCurrentList().get(position);
}
public List<T> getItems() {
return differ.getCurrentList();
}
public void setItems(List<T> list) {
differ.submitList(list);
}
public void addItem(T item) {
List<T> current = new ArrayList<>(getItems());
current.add(item);
setItems(current);
}
public void addItems(List<T> items) {
List<T> current = new ArrayList<>(getItems());
current.addAll(items);
setItems(current);
}
public void remove(T item) {
List<T> current = new ArrayList<>(getItems());
if (current.remove(item)) setItems(current);
}
public void clear() {
setItems(new ArrayList<>());
}
@Override
public int getItemCount() {
return differ.getCurrentList().size();
}
@NonNull
@Override
public abstract VH onCreateViewHolder(@NonNull ViewGroup parent, int viewType);
@Override
public abstract void onBindViewHolder(@NonNull VH holder, int position);
}

@ -1,28 +0,0 @@
package com.fongmi.android.tv.ui.adapter.diff;
import androidx.annotation.NonNull;
import androidx.leanback.widget.DiffCallback;
import androidx.recyclerview.widget.DiffUtil;
public abstract class BaseDiffCallback<T> extends DiffCallback<T> {
@Override
public abstract boolean areItemsTheSame(@NonNull T oldItem, @NonNull T newItem);
@Override
public abstract boolean areContentsTheSame(@NonNull T oldItem, @NonNull T newItem);
public final DiffUtil.ItemCallback<T> asItemCallback() {
return new DiffUtil.ItemCallback<T>() {
@Override
public boolean areItemsTheSame(@NonNull T oldItem, @NonNull T newItem) {
return BaseDiffCallback.this.areItemsTheSame(oldItem, newItem);
}
@Override
public boolean areContentsTheSame(@NonNull T oldItem, @NonNull T newItem) {
return BaseDiffCallback.this.areContentsTheSame(oldItem, newItem);
}
};
}
}

@ -0,0 +1,17 @@
package com.fongmi.android.tv.ui.adapter.diff;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.DiffUtil;
public class BaseItemCallback<T extends Diffable<T>> extends DiffUtil.ItemCallback<T> {
@Override
public boolean areItemsTheSame(@NonNull T oldItem, @NonNull T newItem) {
return oldItem.isSameItem(newItem);
}
@Override
public boolean areContentsTheSame(@NonNull T oldItem, @NonNull T newItem) {
return oldItem.isSameContent(newItem);
}
}

@ -0,0 +1,8 @@
package com.fongmi.android.tv.ui.adapter.diff;
public interface Diffable<T> {
boolean isSameItem(T other);
boolean isSameContent(T other);
}

@ -1,18 +0,0 @@
package com.fongmi.android.tv.ui.adapter.diff;
import com.fongmi.android.tv.bean.History;
import org.jspecify.annotations.NonNull;
public class HistoryDiffCallback extends BaseDiffCallback<History> {
@Override
public boolean areItemsTheSame(@NonNull History oldItem, @NonNull History newItem) {
return oldItem.getKey().equals(newItem.getKey());
}
@Override
public boolean areContentsTheSame(@NonNull History oldItem, @NonNull History newItem) {
return oldItem.equals(newItem);
}
}

@ -1,18 +0,0 @@
package com.fongmi.android.tv.ui.adapter.diff;
import com.fongmi.android.tv.bean.Keep;
import org.jspecify.annotations.NonNull;
public class KeepDiffCallback extends BaseDiffCallback<Keep> {
@Override
public boolean areItemsTheSame(@NonNull Keep oldItem, @NonNull Keep newItem) {
return oldItem.getKey().equals(newItem.getKey());
}
@Override
public boolean areContentsTheSame(@NonNull Keep oldItem, @NonNull Keep newItem) {
return oldItem.equals(newItem);
}
}

@ -60,7 +60,7 @@ public class HistoryActivity extends BaseActivity implements HistoryAdapter.OnCl
}
private void getHistory() {
mAdapter.addAll(History.get());
mAdapter.setItems(History.get());
mBinding.progressLayout.showContent(true, mAdapter.getItemCount());
}

@ -64,7 +64,7 @@ public class KeepActivity extends BaseActivity implements KeepAdapter.OnClickLis
}
private void getKeep() {
mAdapter.addAll(Keep.getVod());
mAdapter.setItems(Keep.getVod());
mBinding.progressLayout.showContent(true, mAdapter.getItemCount());
}

@ -81,7 +81,7 @@ public class ChannelAdapter extends RecyclerView.Adapter<ChannelAdapter.ViewHold
holder.binding.getRoot().setOnLongClickListener(view -> mListener.onLongClick(item));
}
static class ViewHolder extends RecyclerView.ViewHolder {
public class ViewHolder extends RecyclerView.ViewHolder {
private final AdapterChannelBinding binding;

@ -76,7 +76,7 @@ public class CollectAdapter extends RecyclerView.Adapter<CollectAdapter.ViewHold
holder.binding.text.setOnClickListener(v -> mListener.onItemClick(position, item));
}
static class ViewHolder extends RecyclerView.ViewHolder {
public class ViewHolder extends RecyclerView.ViewHolder {
private final AdapterCollectBinding binding;

@ -61,7 +61,7 @@ public class ConfigAdapter extends RecyclerView.Adapter<ConfigAdapter.ViewHolder
holder.binding.delete.setOnClickListener(v -> mListener.onDeleteClick(item));
}
static class ViewHolder extends RecyclerView.ViewHolder {
public class ViewHolder extends RecyclerView.ViewHolder {
private final AdapterConfigBinding binding;

@ -81,7 +81,7 @@ public class DeviceAdapter extends RecyclerView.Adapter<DeviceAdapter.ViewHolder
return item.isMobile() ? R.drawable.ic_cast_mobile : R.drawable.ic_cast_tv;
}
static class ViewHolder extends RecyclerView.ViewHolder {
public class ViewHolder extends RecyclerView.ViewHolder {
private final AdapterDeviceBinding binding;

@ -69,7 +69,7 @@ public class EpgDataAdapter extends RecyclerView.Adapter<EpgDataAdapter.ViewHold
});
}
static class ViewHolder extends RecyclerView.ViewHolder {
public class ViewHolder extends RecyclerView.ViewHolder {
private final AdapterEpgDataBinding binding;

@ -53,7 +53,7 @@ public class FileAdapter extends RecyclerView.Adapter<FileAdapter.ViewHolder> {
holder.binding.image.setImageResource(file.isDirectory() ? R.drawable.ic_folder : R.drawable.ic_file);
}
static class ViewHolder extends RecyclerView.ViewHolder {
public class ViewHolder extends RecyclerView.ViewHolder {
private final AdapterFileBinding binding;

@ -41,7 +41,7 @@ public class FilterAdapter extends RecyclerView.Adapter<FilterAdapter.ViewHolder
holder.binding.recycler.setAdapter(new ValueAdapter(mListener, item));
}
static class ViewHolder extends RecyclerView.ViewHolder {
public class ViewHolder extends RecyclerView.ViewHolder {
private final AdapterFilterBinding binding;

@ -85,7 +85,7 @@ public class FlagAdapter extends RecyclerView.Adapter<FlagAdapter.ViewHolder> {
holder.binding.text.setOnClickListener(v -> mListener.onItemClick(item));
}
static class ViewHolder extends RecyclerView.ViewHolder {
public class ViewHolder extends RecyclerView.ViewHolder {
private final AdapterFlagBinding binding;

@ -87,7 +87,7 @@ public class GroupAdapter extends RecyclerView.Adapter<GroupAdapter.ViewHolder>
holder.binding.getRoot().setOnClickListener(view -> mListener.onItemClick(item));
}
static class ViewHolder extends RecyclerView.ViewHolder {
public class ViewHolder extends RecyclerView.ViewHolder {
private final AdapterGroupBinding binding;

@ -12,20 +12,14 @@ import com.fongmi.android.tv.bean.History;
import com.fongmi.android.tv.databinding.AdapterVodBinding;
import com.fongmi.android.tv.utils.ImgUtil;
import java.util.ArrayList;
import java.util.List;
public class HistoryAdapter extends RecyclerView.Adapter<HistoryAdapter.ViewHolder> {
public class HistoryAdapter extends BaseDiffAdapter<History, HistoryAdapter.ViewHolder> {
private final OnClickListener mListener;
private final List<History> mItems;
private int width, height;
private boolean animate;
private boolean delete;
public HistoryAdapter(OnClickListener listener) {
this.mListener = listener;
this.mItems = new ArrayList<>();
}
public interface OnClickListener {
@ -47,37 +41,16 @@ public class HistoryAdapter extends RecyclerView.Adapter<HistoryAdapter.ViewHold
}
public void setDelete(boolean delete) {
animate = false;
this.delete = delete;
notifyItemRangeChanged(0, mItems.size());
}
public void addAll(List<History> items) {
animate = true;
mItems.clear();
mItems.addAll(items);
notifyDataSetChanged();
notifyItemRangeChanged(0, getItemCount());
}
@Override
public void clear() {
mItems.clear();
setDelete(false);
notifyDataSetChanged();
History.delete(VodConfig.getCid());
}
public void remove(History item) {
int index = mItems.indexOf(item);
if (index == -1) return;
mItems.remove(index);
notifyItemRemoved(index);
}
@Override
public int getItemCount() {
return mItems.size();
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
@ -89,15 +62,16 @@ public class HistoryAdapter extends RecyclerView.Adapter<HistoryAdapter.ViewHold
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
History item = mItems.get(position);
History item = getItem(position);
holder.binding.name.setText(item.getVodName());
holder.binding.site.setText(item.getSiteName());
holder.binding.remark.setText(item.getVodRemarks());
holder.binding.site.setVisibility(item.getSiteVisible());
holder.binding.progress.setMax((int) item.getDuration());
holder.binding.progress.setProgress((int) item.getPosition(), animate);
holder.binding.progress.setProgress((int) item.getPosition(), true);
holder.binding.remark.setVisibility(delete ? View.GONE : View.VISIBLE);
holder.binding.delete.setVisibility(!delete ? View.GONE : View.VISIBLE);
holder.binding.progress.setVisibility(delete ? View.INVISIBLE : View.VISIBLE);
ImgUtil.load(item.getVodName(), item.getVodPic(), holder.binding.image);
setClickListener(holder.binding.getRoot(), item);
}
@ -110,7 +84,7 @@ public class HistoryAdapter extends RecyclerView.Adapter<HistoryAdapter.ViewHold
});
}
static class ViewHolder extends RecyclerView.ViewHolder {
public class ViewHolder extends RecyclerView.ViewHolder {
private final AdapterVodBinding binding;

@ -11,19 +11,14 @@ import com.fongmi.android.tv.bean.Keep;
import com.fongmi.android.tv.databinding.AdapterVodBinding;
import com.fongmi.android.tv.utils.ImgUtil;
import java.util.ArrayList;
import java.util.List;
public class KeepAdapter extends BaseDiffAdapter<Keep, KeepAdapter.ViewHolder> {
public class KeepAdapter extends RecyclerView.Adapter<KeepAdapter.ViewHolder> {
private final OnClickListener mListener;
private final List<Keep> mItems;
private final OnClickListener listener;
private int width, height;
private boolean delete;
public KeepAdapter(OnClickListener listener) {
this.mItems = new ArrayList<>();
this.mListener = listener;
this.listener = listener;
}
public interface OnClickListener {
@ -46,34 +41,16 @@ public class KeepAdapter extends RecyclerView.Adapter<KeepAdapter.ViewHolder> {
public void setDelete(boolean delete) {
this.delete = delete;
notifyItemRangeChanged(0, mItems.size());
}
public void addAll(List<Keep> items) {
mItems.clear();
mItems.addAll(items);
notifyDataSetChanged();
notifyItemRangeChanged(0, getItemCount());
}
@Override
public void clear() {
mItems.clear();
super.clear();
setDelete(false);
notifyDataSetChanged();
Keep.deleteAll();
}
public void remove(Keep item) {
int index = mItems.indexOf(item);
if (index == -1) return;
mItems.remove(index);
notifyItemRemoved(index);
}
@Override
public int getItemCount() {
return mItems.size();
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
@ -85,7 +62,7 @@ public class KeepAdapter extends RecyclerView.Adapter<KeepAdapter.ViewHolder> {
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
Keep item = mItems.get(position);
Keep item = getItem(position);
holder.binding.name.setText(item.getVodName());
holder.binding.remark.setVisibility(View.GONE);
holder.binding.site.setVisibility(View.VISIBLE);
@ -97,14 +74,14 @@ public class KeepAdapter extends RecyclerView.Adapter<KeepAdapter.ViewHolder> {
}
private void setClickListener(View root, Keep item) {
root.setOnLongClickListener(view -> mListener.onLongClick());
root.setOnLongClickListener(view -> listener.onLongClick());
root.setOnClickListener(view -> {
if (isDelete()) mListener.onItemDelete(item);
else mListener.onItemClick(item);
if (isDelete()) listener.onItemDelete(item);
else listener.onItemClick(item);
});
}
static class ViewHolder extends RecyclerView.ViewHolder {
public class ViewHolder extends RecyclerView.ViewHolder {
private final AdapterVodBinding binding;

@ -69,7 +69,7 @@ public class LiveAdapter extends RecyclerView.Adapter<LiveAdapter.ViewHolder> {
holder.binding.pass.setOnLongClickListener(v -> mListener.onPassLongClick(item));
}
static class ViewHolder extends RecyclerView.ViewHolder {
public class ViewHolder extends RecyclerView.ViewHolder {
private final AdapterLiveBinding binding;

@ -73,7 +73,7 @@ public class ParseAdapter extends RecyclerView.Adapter<ParseAdapter.ViewHolder>
if (holder.lightBinding != null) holder.initView(holder.lightBinding.text, item);
}
class ViewHolder extends RecyclerView.ViewHolder {
public class ViewHolder extends RecyclerView.ViewHolder {
private AdapterParseDarkBinding darkBinding;
private AdapterParseLightBinding lightBinding;

@ -59,7 +59,7 @@ public class QualityAdapter extends RecyclerView.Adapter<QualityAdapter.ViewHold
notifyItemRangeChanged(0, getItemCount());
}
static class ViewHolder extends RecyclerView.ViewHolder {
public class ViewHolder extends RecyclerView.ViewHolder {
private final AdapterQualityBinding binding;

@ -71,7 +71,7 @@ public class QuickAdapter extends RecyclerView.Adapter<QuickAdapter.ViewHolder>
holder.binding.getRoot().setOnClickListener(v -> mListener.onItemClick(item));
}
static class ViewHolder extends RecyclerView.ViewHolder {
public class ViewHolder extends RecyclerView.ViewHolder {
private final AdapterQuickBinding binding;

@ -69,7 +69,7 @@ public class RecordAdapter extends RecyclerView.Adapter<RecordAdapter.ViewHolder
holder.binding.text.setOnClickListener(v -> mListener.onItemClick(text));
}
class ViewHolder extends RecyclerView.ViewHolder implements View.OnLongClickListener {
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnLongClickListener {
private final AdapterCollectRecordBinding binding;

@ -73,7 +73,7 @@ public class RestoreAdapter extends RecyclerView.Adapter<RestoreAdapter.ViewHold
holder.binding.getRoot().setOnClickListener(v -> mListener.onItemClick(item));
}
static class ViewHolder extends RecyclerView.ViewHolder {
public class ViewHolder extends RecyclerView.ViewHolder {
private final AdapterRestoreBinding binding;

@ -98,7 +98,7 @@ public class SiteAdapter extends RecyclerView.Adapter<SiteAdapter.ViewHolder> {
return item.isChangeable() ? R.drawable.ic_site_change : R.drawable.ic_site_block;
}
static class ViewHolder extends RecyclerView.ViewHolder {
public class ViewHolder extends RecyclerView.ViewHolder {
private final AdapterSiteBinding binding;

@ -78,7 +78,7 @@ public class TypeAdapter extends RecyclerView.Adapter<TypeAdapter.ViewHolder> {
holder.binding.text.setOnClickListener(v -> mListener.onItemClick(position, item));
}
static class ViewHolder extends RecyclerView.ViewHolder {
public class ViewHolder extends RecyclerView.ViewHolder {
private final AdapterTypeBinding binding;

@ -50,7 +50,7 @@ public class ValueAdapter extends RecyclerView.Adapter<ValueAdapter.ViewHolder>
mListener.setFilter(mKey, value);
}
static class ViewHolder extends RecyclerView.ViewHolder {
public class ViewHolder extends RecyclerView.ViewHolder {
private final AdapterValueBinding binding;

@ -50,7 +50,7 @@ public class WordAdapter extends RecyclerView.Adapter<WordAdapter.ViewHolder> {
holder.binding.text.setOnClickListener(v -> mListener.onItemClick(item));
}
static class ViewHolder extends RecyclerView.ViewHolder {
public class ViewHolder extends RecyclerView.ViewHolder {
private final AdapterCollectWordBinding binding;

Loading…
Cancel
Save