|
|
|
|
@ -1,20 +1,24 @@ |
|
|
|
|
package com.fongmi.android.tv.ui.presenter; |
|
|
|
|
package com.fongmi.android.tv.ui.adapter; |
|
|
|
|
|
|
|
|
|
import android.view.LayoutInflater; |
|
|
|
|
import android.view.ViewGroup; |
|
|
|
|
|
|
|
|
|
import androidx.annotation.NonNull; |
|
|
|
|
import androidx.leanback.widget.Presenter; |
|
|
|
|
import androidx.recyclerview.widget.RecyclerView; |
|
|
|
|
|
|
|
|
|
import com.fongmi.android.tv.bean.Config; |
|
|
|
|
import com.fongmi.android.tv.databinding.AdapterConfigBinding; |
|
|
|
|
|
|
|
|
|
public class ConfigPresenter extends Presenter { |
|
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
|
|
public class ConfigAdapter extends RecyclerView.Adapter<ConfigAdapter.ViewHolder> { |
|
|
|
|
|
|
|
|
|
private final OnClickListener mListener; |
|
|
|
|
private final List<Config> mItems; |
|
|
|
|
|
|
|
|
|
public ConfigPresenter(OnClickListener listener) { |
|
|
|
|
public ConfigAdapter(OnClickListener listener) { |
|
|
|
|
this.mListener = listener; |
|
|
|
|
this.mItems = Config.getAll(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public interface OnClickListener { |
|
|
|
|
@ -24,31 +28,39 @@ public class ConfigPresenter extends Presenter { |
|
|
|
|
void onDeleteClick(Config item); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public Presenter.ViewHolder onCreateViewHolder(ViewGroup parent) { |
|
|
|
|
return new ViewHolder(AdapterConfigBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false)); |
|
|
|
|
public static class ViewHolder extends RecyclerView.ViewHolder { |
|
|
|
|
|
|
|
|
|
private final AdapterConfigBinding binding; |
|
|
|
|
|
|
|
|
|
public ViewHolder(@NonNull AdapterConfigBinding binding) { |
|
|
|
|
super(binding.getRoot()); |
|
|
|
|
this.binding = binding; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void onBindViewHolder(Presenter.ViewHolder viewHolder, Object object) { |
|
|
|
|
Config item = (Config) object; |
|
|
|
|
ViewHolder holder = (ViewHolder) viewHolder; |
|
|
|
|
holder.binding.text.setText(item.getUrl()); |
|
|
|
|
holder.binding.text.setOnClickListener(v -> mListener.onTextClick(item)); |
|
|
|
|
holder.binding.delete.setOnClickListener(v -> mListener.onDeleteClick(item)); |
|
|
|
|
public int remove(Config item) { |
|
|
|
|
item.delete(); |
|
|
|
|
mItems.remove(item); |
|
|
|
|
notifyDataSetChanged(); |
|
|
|
|
return getItemCount(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void onUnbindViewHolder(Presenter.ViewHolder viewHolder) { |
|
|
|
|
public int getItemCount() { |
|
|
|
|
return mItems.size(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static class ViewHolder extends Presenter.ViewHolder { |
|
|
|
|
|
|
|
|
|
private final AdapterConfigBinding binding; |
|
|
|
|
@NonNull |
|
|
|
|
@Override |
|
|
|
|
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { |
|
|
|
|
return new ViewHolder(AdapterConfigBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public ViewHolder(@NonNull AdapterConfigBinding binding) { |
|
|
|
|
super(binding.getRoot()); |
|
|
|
|
this.binding = binding; |
|
|
|
|
} |
|
|
|
|
@Override |
|
|
|
|
public void onBindViewHolder(@NonNull ViewHolder holder, int position) { |
|
|
|
|
Config item = (Config) mItems.get(position); |
|
|
|
|
holder.binding.text.setText(item.getUrl()); |
|
|
|
|
holder.binding.text.setOnClickListener(v -> mListener.onTextClick(item)); |
|
|
|
|
holder.binding.delete.setOnClickListener(v -> mListener.onDeleteClick(item)); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |