From 57fc9c5a73a68634c9133014b446066aff589c7c Mon Sep 17 00:00:00 2001 From: r-ca Date: Mon, 29 Jan 2024 04:48:51 +0900 Subject: [PATCH] =?UTF-8?q?Adapter=E5=AE=9F=E8=A3=85=20WIP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...acertaFilePickerSelectDocumentAdapter.java | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 component/common/src/main/java/one/nem/lacerta/component/common/picker/LacertaFilePickerSelectDocumentAdapter.java diff --git a/component/common/src/main/java/one/nem/lacerta/component/common/picker/LacertaFilePickerSelectDocumentAdapter.java b/component/common/src/main/java/one/nem/lacerta/component/common/picker/LacertaFilePickerSelectDocumentAdapter.java new file mode 100644 index 00000000..d76ff719 --- /dev/null +++ b/component/common/src/main/java/one/nem/lacerta/component/common/picker/LacertaFilePickerSelectDocumentAdapter.java @@ -0,0 +1,75 @@ +package one.nem.lacerta.component.common.picker; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import java.util.ArrayList; + +import one.nem.lacerta.component.common.R; +import one.nem.lacerta.model.ListItem; +import one.nem.lacerta.model.document.DocumentMeta; + +public class LacertaFilePickerSelectDocumentAdapter extends RecyclerView.Adapter{ + + // Listener + public interface LacertaFilePickerSelectDocumentAdapterListener { + void onDocumentSelected(String documentId); + } + + // Variables + LacertaFilePickerSelectDocumentAdapterListener listener; + + ArrayList listItems; + + // Setter + public LacertaFilePickerSelectDocumentAdapter setListener(LacertaFilePickerSelectDocumentAdapterListener listener) { + this.listener = listener; + return this; + } + + public void setListItems(ArrayList listItems) { + this.listItems = listItems; + } + + + @NonNull + @Override + public LacertaFilePickerSelectDocumentAdapter.LacertaFilePickerSelectDocumentViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(one.nem.lacerta.shared.ui.R.layout.common_list_item, null); + return new LacertaFilePickerSelectDocumentViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull LacertaFilePickerSelectDocumentAdapter.LacertaFilePickerSelectDocumentViewHolder holder, int position) { + ListItem listItem = listItems.get(position); + holder.title.setText(listItem.getTitle()); + holder.description.setVisibility(View.GONE); + holder.icon.setImageResource(listItem.getItemType().getIconId()); + holder.itemView.setOnClickListener(v -> listener.onDocumentSelected(listItem.getItemId())); + } + + @Override + public int getItemCount() { + return listItems == null ? 0 : listItems.size(); + } + + public class LacertaFilePickerSelectDocumentViewHolder extends RecyclerView.ViewHolder { + + ImageView icon; + TextView title; + TextView description; + + public LacertaFilePickerSelectDocumentViewHolder(@NonNull View itemView) { + super(itemView); + icon = itemView.findViewById(one.nem.lacerta.shared.ui.R.id.item_icon); + title = itemView.findViewById(one.nem.lacerta.shared.ui.R.id.item_title); + description = itemView.findViewById(one.nem.lacerta.shared.ui.R.id.item_description); + } + } +}