Skip to content

feat(ui): Implement Multi-List Selection and Watchlist Renaming

AGHARAHIMOV AGHASALIM requested to merge fix/watchlist-selection-ui into main

What does this MR do?

This MR significantly upgrades the Watchlist user experience by implementing two key features:

  1. Multi-List Selection: Users can now choose exactly which custom list to add a movie to, rather than it defaulting to the first list.
  2. 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, and DetailsViewModel to fetch available custom lists.
  • Implemented a selection dialog in SearchFragment and HomeFragment that 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 renameUserList in UserListDao and UserCollectionsRepository to support updating list names in the database.

How to Test:

  1. 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.
  2. 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.

Merge request reports