pull/102/head
FongMi 3 years ago
parent a92d9ea228
commit 5e8f818274
  1. 58
      app/src/leanback/java/com/fongmi/android/tv/ui/adapter/ConfigAdapter.java
  2. 16
      app/src/leanback/java/com/fongmi/android/tv/ui/custom/ConfigHistoryDialog.java

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

@ -5,22 +5,20 @@ import android.view.LayoutInflater;
import android.view.WindowManager;
import androidx.appcompat.app.AlertDialog;
import androidx.leanback.widget.ArrayObjectAdapter;
import androidx.leanback.widget.ItemBridgeAdapter;
import androidx.recyclerview.widget.LinearLayoutManager;
import com.fongmi.android.tv.SettingCallback;
import com.fongmi.android.tv.bean.Config;
import com.fongmi.android.tv.databinding.DialogConfigHistoryBinding;
import com.fongmi.android.tv.ui.presenter.ConfigPresenter;
import com.fongmi.android.tv.ui.adapter.ConfigAdapter;
import com.fongmi.android.tv.utils.ResUtil;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
public class ConfigHistoryDialog implements ConfigPresenter.OnClickListener {
public class ConfigHistoryDialog implements ConfigAdapter.OnClickListener {
private DialogConfigHistoryBinding binding;
private ArrayObjectAdapter adapter;
private SettingCallback callback;
private ConfigAdapter adapter;
private AlertDialog dialog;
public static void show(Activity activity) {
@ -36,10 +34,8 @@ public class ConfigHistoryDialog implements ConfigPresenter.OnClickListener {
}
private void setRecyclerView() {
adapter = new ArrayObjectAdapter(new ConfigPresenter(this));
binding.recycler.setLayoutManager(new LinearLayoutManager(dialog.getContext()));
binding.recycler.setAdapter(new ItemBridgeAdapter(adapter));
adapter.addAll(0, Config.getAll());
binding.recycler.setAdapter(adapter = new ConfigAdapter(this));
}
private void setDialog() {
@ -58,8 +54,6 @@ public class ConfigHistoryDialog implements ConfigPresenter.OnClickListener {
@Override
public void onDeleteClick(Config item) {
item.delete();
adapter.remove(item);
if (adapter.size() == 0) dialog.dismiss();
if (adapter.remove(item) == 0) dialog.dismiss();
}
}

Loading…
Cancel
Save