mirror of
https://github.com/M66B/FairEmail.git
synced 2025-12-30 17:40:34 +01:00
Recyclerview selection experiment
This commit is contained in:
@@ -24,6 +24,7 @@ import android.content.Intent;
|
||||
import android.graphics.Typeface;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.text.format.DateUtils;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
@@ -41,6 +42,8 @@ import androidx.lifecycle.LifecycleOwner;
|
||||
import androidx.lifecycle.Observer;
|
||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
|
||||
import androidx.paging.PagedListAdapter;
|
||||
import androidx.recyclerview.selection.ItemDetailsLookup;
|
||||
import androidx.recyclerview.selection.SelectionTracker;
|
||||
import androidx.recyclerview.widget.DiffUtil;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
@@ -48,6 +51,7 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
|
||||
private Context context;
|
||||
private LifecycleOwner owner;
|
||||
private ViewType viewType;
|
||||
private SelectionTracker selectionTracker;
|
||||
|
||||
private boolean debug;
|
||||
private DateFormat df = SimpleDateFormat.getDateTimeInstance(SimpleDateFormat.SHORT, SimpleDateFormat.LONG);
|
||||
@@ -84,12 +88,12 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
|
||||
|
||||
private void wire() {
|
||||
itemView.setOnClickListener(this);
|
||||
itemView.setOnLongClickListener(this);
|
||||
//itemView.setOnLongClickListener(this);
|
||||
}
|
||||
|
||||
private void unwire() {
|
||||
itemView.setOnClickListener(null);
|
||||
itemView.setOnLongClickListener(null);
|
||||
//itemView.setOnLongClickListener(null);
|
||||
}
|
||||
|
||||
private void clear() {
|
||||
@@ -107,6 +111,8 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
|
||||
private void bindTo(final TupleMessageEx message) {
|
||||
pbLoading.setVisibility(View.GONE);
|
||||
|
||||
itemView.setActivated(selectionTracker.isSelected(message.id));
|
||||
|
||||
if (EntityFolder.DRAFTS.equals(message.folderType) ||
|
||||
EntityFolder.OUTBOX.equals(message.folderType) ||
|
||||
EntityFolder.SENT.equals(message.folderType)) {
|
||||
@@ -209,6 +215,16 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public ItemDetailsLookup.ItemDetails getItemDetails() {
|
||||
Log.i(Helper.TAG, "getItemDetails");
|
||||
return new MyItemDetail(getAdapterPosition(), getItem(getAdapterPosition()).id);
|
||||
}
|
||||
}
|
||||
|
||||
public void setSelectionTracker(SelectionTracker selectionTracker) {
|
||||
Log.i(Helper.TAG, "setSelectionTracker");
|
||||
this.selectionTracker = selectionTracker;
|
||||
}
|
||||
|
||||
AdapterMessage(Context context, LifecycleOwner owner, ViewType viewType) {
|
||||
@@ -243,6 +259,7 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
|
||||
holder.unwire();
|
||||
Log.i(Helper.TAG, "onBindViewHolder");
|
||||
|
||||
TupleMessageEx message = getItem(position);
|
||||
if (message == null)
|
||||
|
||||
Reference in New Issue
Block a user