265 Replace Long Press Edit Delete With Drag And Drop Edit Mode And Haptic Feedback#266
Conversation
… handle visibility
There was a problem hiding this comment.
Pull request overview
This PR updates the Home screen interaction model by replacing the previous long-press delete/menu behaviors on collections/items with a long-press gesture that enters drag-and-drop edit mode and triggers haptic feedback, aligning with the newer DetailsPage-based edit/delete flows.
Changes:
- Replaced long-press behaviors on collections and entries with “enter edit mode” + haptic feedback.
- Updated drag-handle sizing/padding for better visibility in edit mode.
- Updated RefreshIndicator theming and refreshed snackbar styling; added Android VIBRATE permission.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| apps/multichoice/lib/presentation/home/widgets/entry_card.dart | Long-press now enters edit mode with haptics; drag-handle UI tweaks. |
| apps/multichoice/lib/presentation/home/widgets/collection_tab.dart | Long-press delete removed; long-press now enters edit mode with haptics. |
| apps/multichoice/lib/presentation/home/home_page.dart | Adds services import to support haptic feedback used by part files. |
| apps/multichoice/lib/layouts/home_layout/widgets/tab/vertical_tab.dart | Drag-handle padding/size adjustments. |
| apps/multichoice/lib/layouts/home_layout/widgets/tab/horizontal_tab.dart | Drag-handle padding/size adjustments; subtitle layout tweak. |
| apps/multichoice/lib/layouts/home_layout/widgets/home/vertical_home.dart | RefreshIndicator updated to use theme colors. |
| apps/multichoice/lib/layouts/home_layout/widgets/home/horizontal_home.dart | RefreshIndicator updated to use theme colors. |
| apps/multichoice/lib/layouts/home_layout/home_layout.dart | Refresh snackbar text/icon styling updated. |
| apps/multichoice/android/app/src/main/AndroidManifest.xml | Adds VIBRATE permission. |
| CHANGELOG.md | Documents #265 changes. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| onLongPress: () async { | ||
| final bloc = context.read<HomeBloc>(); | ||
| if (!bloc.state.isEditMode) { | ||
| await HapticFeedback.mediumImpact(); | ||
| bloc.add(const HomeEvent.onToggleEditMode()); | ||
| } | ||
| }, |
There was a problem hiding this comment.
EntryCard still wraps its content in a MenuAnchor with menuChildren, but the menu is no longer opened anywhere now that the long-press handler was repurposed. This leaves an unreachable context menu (and an effectively unused MenuController), which is confusing and adds dead UI/code. Either remove the MenuAnchor/menu items entirely (if DetailsPage is the only edit/delete surface now) or add an explicit, discoverable affordance to open the menu (e.g., an overflow icon) so the actions remain accessible.
| GestureDetector( | ||
| onTap: () { | ||
| ScaffoldMessenger.of(context).hideCurrentSnackBar(); | ||
| }, | ||
| child: Icon( | ||
| Icons.close, | ||
| color: context.theme.appColors.ternary, | ||
| size: 16, | ||
| size: 20, | ||
| ), |
There was a problem hiding this comment.
The SnackBar close control is implemented as a GestureDetector wrapping an Icon, which doesn’t provide button semantics by default for assistive technologies. Since this block is being updated, consider using an IconButton (or adding an explicit Semantics label/role) so the dismiss action is keyboard/screen-reader accessible.
|



#265 Replace Long Press Edit Delete With Drag And Drop Edit Mode And Haptic Feedback
Summary
Replaced redundant long-press behaviors (delete for collections, menu for items) with a new long-press gesture that triggers drag-and-drop edit mode with haptic feedback. This improves UX by consolidating edit/delete actions in the DetailsPage while providing an intuitive way to enter edit mode.
Changes
Testing
Screenshots/Videos
draggable.long.press.webm