diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.java index 2f8dfcbd9..17bd2385f 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.java @@ -1059,7 +1059,7 @@ public class DownloadsScene extends ToolbarScene }); if (position > 0) { holder.option.setVisibility(View.VISIBLE); - holder.option.setOnClickListener(v -> { + holder.itemView.setOnLongClickListener(v -> { if (context != null) { PopupMenu popupMenu = new PopupMenu(context, holder.option); popupMenu.inflate(R.menu.download_label_option); @@ -1086,6 +1086,7 @@ public class DownloadsScene extends ToolbarScene return false; }); } + return true; }); } else { holder.option.setVisibility(View.GONE); @@ -1105,7 +1106,7 @@ public class DownloadsScene extends ToolbarScene @Override public boolean onCheckCanStartDrag(@NonNull DownloadLabelHolder holder, int position, int x, int y) { - return position != 0; + return position != 0 && x > holder.option.getX() && y > holder.option.getY(); } @Override diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java index b59fb3778..b6752535a 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java @@ -1533,8 +1533,8 @@ public final class GalleryListScene extends BaseScene setState(STATE_NORMAL); closeDrawer(Gravity.RIGHT); }); - holder.option.setOnClickListener(v -> { - PopupMenu popupMenu = new PopupMenu(getContext2(), holder.option); + holder.itemView.setOnLongClickListener(v -> { + PopupMenu popupMenu = new PopupMenu(requireContext(), holder.option); popupMenu.inflate(R.menu.quicksearch_option); popupMenu.show(); popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @@ -1543,16 +1543,16 @@ public final class GalleryListScene extends BaseScene @Override public boolean onMenuItemClick(MenuItem item) { - switch (item.getItemId()) { - case R.id.menu_qs_remove: - EhDB.deleteQuickSearch(quickSearch); - mQuickSearchList.remove(position); - notifyDataSetChanged(); - break; + if (item.getItemId() == R.id.menu_qs_remove) { + EhDB.deleteQuickSearch(quickSearch); + mQuickSearchList.remove(position); + notifyDataSetChanged(); + return true; } return false; } }); + return true; }); } } @@ -1569,7 +1569,7 @@ public final class GalleryListScene extends BaseScene @Override public boolean onCheckCanStartDrag(@NonNull QsDrawerHolder holder, int position, int x, int y) { - return true; + return x > holder.option.getX() && y > holder.option.getY(); } @Override diff --git a/app/src/main/res/drawable/ic_baseline_reorder_24.xml b/app/src/main/res/drawable/ic_baseline_reorder_24.xml new file mode 100644 index 000000000..57af84b58 --- /dev/null +++ b/app/src/main/res/drawable/ic_baseline_reorder_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/layout/item_drawer_list.xml b/app/src/main/res/layout/item_drawer_list.xml index e7fe445ef..670b38aa4 100644 --- a/app/src/main/res/layout/item_drawer_list.xml +++ b/app/src/main/res/layout/item_drawer_list.xml @@ -20,12 +20,11 @@ + android:paddingRight="?attr/listPreferredItemPaddingRight" /> \ No newline at end of file