From 10ee446f4e705354f7dcc84f1b57130b2328db1c Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Sat, 17 Dec 2022 11:09:59 +0100 Subject: Multi-select using background instead of checkbox --- .../antennapod/adapter/EpisodeItemListAdapter.java | 16 ++++++++++------ .../danoeh/antennapod/adapter/QueueRecyclerAdapter.java | 6 +++++- .../view/viewholder/EpisodeItemViewHolder.java | 3 --- app/src/main/res/layout/feeditemlist_item.xml | 7 ------- 4 files changed, 15 insertions(+), 17 deletions(-) (limited to 'app') diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/EpisodeItemListAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/EpisodeItemListAdapter.java index 8b591c1af..77632f1f4 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/EpisodeItemListAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/EpisodeItemListAdapter.java @@ -1,6 +1,7 @@ package de.danoeh.antennapod.adapter; import android.app.Activity; +import android.content.Context; import android.os.Build; import android.view.ContextMenu; import android.view.InputDevice; @@ -14,6 +15,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.recyclerview.widget.RecyclerView; +import com.google.android.material.elevation.SurfaceColors; import org.apache.commons.lang3.ArrayUtils; import java.lang.ref.WeakReference; @@ -124,12 +126,14 @@ public class EpisodeItemListAdapter extends SelectableAdapter toggleSelection(holder.getBindingAdapterPosition())); - holder.selectCheckBox.setChecked(isSelected(pos)); - holder.selectCheckBox.setVisibility(View.VISIBLE); - } else { - holder.selectCheckBox.setVisibility(View.GONE); + holder.secondaryActionButton.setOnClickListener(null); + if (isSelected(pos)) { + Context context = mainActivityRef.get(); + float density = context.getResources().getDisplayMetrics().density; + holder.itemView.setBackgroundColor(SurfaceColors.getColorForElevation(context, 8 * density)); + } else { + holder.itemView.setBackgroundResource(android.R.color.transparent); + } } afterBindViewHolder(holder, pos); diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/QueueRecyclerAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/QueueRecyclerAdapter.java index 90b5be4fa..1f4cfd0cf 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/QueueRecyclerAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/QueueRecyclerAdapter.java @@ -37,7 +37,7 @@ public class QueueRecyclerAdapter extends EpisodeItemListAdapter { @Override @SuppressLint("ClickableViewAccessibility") protected void afterBindViewHolder(EpisodeItemViewHolder holder, int pos) { - if (!dragDropEnabled || inActionMode()) { + if (!dragDropEnabled) { holder.dragHandle.setVisibility(View.GONE); holder.dragHandle.setOnTouchListener(null); holder.coverHolder.setOnTouchListener(null); @@ -64,6 +64,10 @@ public class QueueRecyclerAdapter extends EpisodeItemListAdapter { return false; }); } + if (inActionMode()) { + holder.dragHandle.setOnTouchListener(null); + holder.coverHolder.setOnTouchListener(null); + } holder.isInQueue.setVisibility(View.GONE); } diff --git a/app/src/main/java/de/danoeh/antennapod/view/viewholder/EpisodeItemViewHolder.java b/app/src/main/java/de/danoeh/antennapod/view/viewholder/EpisodeItemViewHolder.java index 72ad46373..4009282a7 100644 --- a/app/src/main/java/de/danoeh/antennapod/view/viewholder/EpisodeItemViewHolder.java +++ b/app/src/main/java/de/danoeh/antennapod/view/viewholder/EpisodeItemViewHolder.java @@ -7,7 +7,6 @@ import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.CheckBox; import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.TextView; @@ -64,7 +63,6 @@ public class EpisodeItemViewHolder extends RecyclerView.ViewHolder { private final TextView separatorIcons; private final View leftPadding; public final CardView coverHolder; - public final CheckBox selectCheckBox; private final MainActivity activity; private FeedItem item; @@ -96,7 +94,6 @@ public class EpisodeItemViewHolder extends RecyclerView.ViewHolder { coverHolder = itemView.findViewById(R.id.coverHolder); leftPadding = itemView.findViewById(R.id.left_padding); itemView.setTag(this); - selectCheckBox = itemView.findViewById(R.id.selectCheckBox); } public void bind(FeedItem item) { diff --git a/app/src/main/res/layout/feeditemlist_item.xml b/app/src/main/res/layout/feeditemlist_item.xml index f730c1c2b..dfedbdddf 100644 --- a/app/src/main/res/layout/feeditemlist_item.xml +++ b/app/src/main/res/layout/feeditemlist_item.xml @@ -44,13 +44,6 @@ tools:src="@drawable/ic_drag_darktheme" tools:background="@android:color/holo_green_dark" /> - - -