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