Recyclerview selection experiment

This commit is contained in:
M66B
2018-08-25 15:55:43 +00:00
parent 2f28bf9f55
commit 6b8222f3c5
8 changed files with 221 additions and 3 deletions

View File

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