# Delta for android-auto-media ## MODIFIED Requirements ### Requirement: Local Music Folder Item Cap and Paging A local-music folder (root or nested) whose immediate children exceed `_maxItemsCarpetaLocal` (50) MUST NOT silently truncate the excess items. `getChildren` MUST return at most 50 items for the requested page, followed by a trailing non-playable, browsable "more" item whenever additional items remain beyond that page. Selecting the "more" item MUST invoke `getChildren` again and reveal the next page of up to 50 items, continuing until every item in the folder has been reached; no item may be permanently unreachable. A page that exhausts the folder's remaining items MUST NOT include a "more" item. (Previously: folders exceeding 50 immediate children were capped to 50 with the remainder silently dropped; pagination was explicitly out of scope.) #### Scenario: Folder exceeds the item cap - GIVEN a picked or nested local-music folder contains more than 50 immediate children (subfolders and/or tracks combined) - WHEN `getChildren` is called with that folder id for the first page - THEN exactly 50 items are returned for that page, followed by a trailing "more" item - AND no error or crash occurs, and no item is permanently unreachable #### Scenario: Folder has exactly 50 items (boundary) - GIVEN a local-music folder contains exactly 50 immediate children - WHEN `getChildren` is called with that folder id - THEN all 50 items are returned - AND no "more" item is appended, since nothing remains to reveal #### Scenario: Folder with 51-100 items pages in two steps - GIVEN a local-music folder contains between 51 and 100 immediate children - WHEN `getChildren` is called with that folder id - THEN the first page returns 50 items plus a trailing "more" item - AND WHEN the user selects that "more" item, `getChildren` is invoked again - THEN it returns the remaining items with no further "more" item, since that is the last page #### Scenario: Folder with 100+ items chains across 3+ pages - GIVEN a local-music folder contains more than 100 immediate children - WHEN the user repeatedly selects each returned page's "more" item - THEN each intermediate page returns 50 items plus a trailing "more" item - AND the final page returns only the remaining items with no "more" item - AND every item in the folder is reachable through this chain, none dropped #### Scenario: Only the requested page's items are resolved into MediaItems - GIVEN a local-music folder contains more than 50 immediate children - WHEN `getChildren` is called for a given page - THEN only that page's items (at most 50, plus the "more" item) are constructed into full `MediaItem`s (art, resolved title) - AND items belonging to pages not yet requested are NOT constructed into `MediaItem`s as part of that call ## ADDED Requirements ### Requirement: Local Music Folder Friendly Name Display The settings UI MUST display a human-readable label for the picked local-music root folder instead of the raw SAF `content://` tree URI. If a friendly name cannot be derived from the persisted URI, the settings UI MUST fall back to a clear, non-empty label rather than showing a broken, blank, or raw-URI value. #### Scenario: Folder picked and friendly name derivable - GIVEN a local-music root folder has been picked and its URI persisted - WHEN the settings screen displays the current folder - THEN it shows a human-readable name derived from the folder, not the raw content URI #### Scenario: Friendly name cannot be derived - GIVEN a persisted local-music root URI whose friendly name cannot be derived (e.g. a malformed or unexpected SAF documentId shape) - WHEN the settings screen displays the current folder - THEN it falls back to a non-empty, non-broken label instead of an empty or corrupted value