feat(ui): Implement Multi-List Selection and Watchlist Renaming
What does this MR do?
This MR significantly upgrades the Watchlist user experience by implementing two key features:
- Multi-List Selection: Users can now choose exactly which custom list to add a movie to, rather than it defaulting to the first list.
- List Management: Users can now rename their custom lists via a new 3-dot menu interface.
Key Changes:
1. Movie Selection Logic (Search, Home, Details):
- Updated
SearchViewModel,HomeViewModel, andDetailsViewModelto fetch available custom lists. - Implemented a selection dialog in
SearchFragmentandHomeFragmentthat appears on long-press. - Updated
ActionBottomSheet(Details screen) to trigger the list selection dialog if the movie is not yet in a watchlist.
2. Watchlist Management:
- UI: Replaced the long-press delete behavior with a 3-dot menu on each list item in the Watchlist Manager.
- Feature: Added a "Rename" option to the menu.
-
Backend: Implemented
renameUserListinUserListDaoandUserCollectionsRepositoryto support updating list names in the database.
How to Test:
- Selection: Go to Search or Home. Long-press a movie. Verify a dialog appears listing your custom watchlists. Select one and verify the movie is added.
- Renaming: Go to the Profile -> Watchlists screen. Click the 3-dot menu on a list. Select "Rename", change the name, and verify it updates in the list.
Why was this change needed?
Previously, movies were automatically added to the default watchlist, making the "Custom Lists" feature difficult to use. Additionally, there was no way to rename a list after creating it. This MR resolves both UX gaps.