|
|
|
|
@ -1,11 +1,11 @@ |
|
|
|
|
package com.fongmi.android.tv.ui.presenter; |
|
|
|
|
package com.fongmi.android.tv.ui.adapter; |
|
|
|
|
|
|
|
|
|
import android.view.LayoutInflater; |
|
|
|
|
import android.view.View; |
|
|
|
|
import android.view.ViewGroup; |
|
|
|
|
|
|
|
|
|
import androidx.annotation.NonNull; |
|
|
|
|
import androidx.leanback.widget.Presenter; |
|
|
|
|
import androidx.recyclerview.widget.RecyclerView; |
|
|
|
|
|
|
|
|
|
import com.bumptech.glide.Glide; |
|
|
|
|
import com.fongmi.android.tv.App; |
|
|
|
|
@ -15,17 +15,29 @@ import com.fongmi.android.tv.databinding.AdapterVodBinding; |
|
|
|
|
import com.fongmi.android.tv.utils.Prefers; |
|
|
|
|
import com.fongmi.android.tv.utils.ResUtil; |
|
|
|
|
|
|
|
|
|
public class KeepPresenter extends Presenter { |
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
|
|
public class KeepAdapter extends RecyclerView.Adapter<KeepAdapter.ViewHolder> { |
|
|
|
|
|
|
|
|
|
private final OnClickListener mListener; |
|
|
|
|
private final List<Keep> mItems; |
|
|
|
|
private int width, height; |
|
|
|
|
private boolean delete; |
|
|
|
|
|
|
|
|
|
public KeepPresenter(OnClickListener listener) { |
|
|
|
|
public KeepAdapter(OnClickListener listener) { |
|
|
|
|
this.mItems = new ArrayList<>(); |
|
|
|
|
this.mListener = listener; |
|
|
|
|
setLayoutSize(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void setLayoutSize() { |
|
|
|
|
int space = ResUtil.dp2px(48) + ResUtil.dp2px(16 * (Prefers.getColumn() - 1)); |
|
|
|
|
int base = ResUtil.getScreenWidthPx() - space; |
|
|
|
|
width = base / Prefers.getColumn(); |
|
|
|
|
height = (int) (width / 0.75f); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public interface OnClickListener { |
|
|
|
|
|
|
|
|
|
void onItemClick(Keep item); |
|
|
|
|
@ -35,23 +47,46 @@ public class KeepPresenter extends Presenter { |
|
|
|
|
boolean onLongClick(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static class ViewHolder extends RecyclerView.ViewHolder { |
|
|
|
|
|
|
|
|
|
private final AdapterVodBinding binding; |
|
|
|
|
|
|
|
|
|
public ViewHolder(@NonNull AdapterVodBinding binding) { |
|
|
|
|
super(binding.getRoot()); |
|
|
|
|
this.binding = binding; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void addAll(List<Keep> items) { |
|
|
|
|
mItems.clear(); |
|
|
|
|
mItems.addAll(items); |
|
|
|
|
notifyDataSetChanged(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void delete(Keep item) { |
|
|
|
|
int index = mItems.indexOf(item); |
|
|
|
|
if (index == -1) return; |
|
|
|
|
mItems.remove(index); |
|
|
|
|
notifyItemRemoved(index); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public boolean isDelete() { |
|
|
|
|
return delete; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void setDelete(boolean delete) { |
|
|
|
|
this.delete = delete; |
|
|
|
|
notifyItemRangeChanged(0, mItems.size()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void setLayoutSize() { |
|
|
|
|
int space = ResUtil.dp2px(48) + ResUtil.dp2px(16 * (Prefers.getColumn() - 1)); |
|
|
|
|
int base = ResUtil.getScreenWidthPx() - space; |
|
|
|
|
width = base / Prefers.getColumn(); |
|
|
|
|
height = (int) (width / 0.75f); |
|
|
|
|
@Override |
|
|
|
|
public int getItemCount() { |
|
|
|
|
return mItems.size(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@NonNull |
|
|
|
|
@Override |
|
|
|
|
public Presenter.ViewHolder onCreateViewHolder(ViewGroup parent) { |
|
|
|
|
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { |
|
|
|
|
ViewHolder holder = new ViewHolder(AdapterVodBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false)); |
|
|
|
|
holder.binding.getRoot().getLayoutParams().width = width; |
|
|
|
|
holder.binding.getRoot().getLayoutParams().height = height; |
|
|
|
|
@ -59,16 +94,15 @@ public class KeepPresenter extends Presenter { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void onBindViewHolder(Presenter.ViewHolder viewHolder, Object object) { |
|
|
|
|
Keep item = (Keep) object; |
|
|
|
|
ViewHolder holder = (ViewHolder) viewHolder; |
|
|
|
|
setClickListener(holder.view, item); |
|
|
|
|
public void onBindViewHolder(@NonNull ViewHolder holder, int position) { |
|
|
|
|
Keep item = mItems.get(position); |
|
|
|
|
setClickListener(holder.itemView, item); |
|
|
|
|
holder.binding.name.setText(item.getVodName()); |
|
|
|
|
holder.binding.remark.setVisibility(View.GONE); |
|
|
|
|
holder.binding.site.setVisibility(View.VISIBLE); |
|
|
|
|
holder.binding.site.setText(item.getSiteName()); |
|
|
|
|
holder.binding.delete.setVisibility(!delete ? View.GONE : View.VISIBLE); |
|
|
|
|
Glide.with(App.get()).load(item.getVodPic()).centerCrop().error(R.drawable.ic_img_error).placeholder(R.drawable.ic_img_loading).into(holder.binding.image); |
|
|
|
|
Glide.with(App.get()).load(item.getVodPic()).error(R.drawable.ic_img_error).placeholder(R.drawable.ic_img_loading).into(holder.binding.image); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void setClickListener(View root, Keep item) { |
|
|
|
|
@ -78,18 +112,4 @@ public class KeepPresenter extends Presenter { |
|
|
|
|
else mListener.onItemClick(item); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void onUnbindViewHolder(Presenter.ViewHolder viewHolder) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static class ViewHolder extends Presenter.ViewHolder { |
|
|
|
|
|
|
|
|
|
private final AdapterVodBinding binding; |
|
|
|
|
|
|
|
|
|
public ViewHolder(@NonNull AdapterVodBinding binding) { |
|
|
|
|
super(binding.getRoot()); |
|
|
|
|
this.binding = binding; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |