UX: compact landscape library for very small handheld screens #17
Description
Activity
Implemented a compact console-style library and mapper in ba25227, following the owner's request to change the interaction approach rather than just shrink toolbar rows.
- One header; collections/search/menu remain accessible. Start/Menu opens library actions; L/R retains Gallery/List/Grid and selected game. Import, folders, sorting and settings are on demand.
- Handheld system bars hidden, custom short-screen game menus, compact List rows and bounded artwork size.
- Narrow landscape mapper has Keypad/Navigation pages; wide landscape keeps both groups visible. Extra headings/spacing removed without shrinking digits to unreadable targets.
- Layout tests include 480x320 dp, 480x302 dp usable area, 640x360 dp, and portrait. Public Handheld: 68 tests. Final private combined Phone and Handheld snapshots: 95 tests each. JVM: 14 per variant.
- Real emulator screenshots sent to the owner in chat. Manual checks cover controller view switching, Start/X menus, search/B-to-clear and keypad pages. No physical-device acceptance claimed.
Keeping this issue open for owner visual acceptance and physical handheld checks. Android can initially focus the collection selector instead of a game; Down enters the library. The auto-art false positives exposed by larger cards are separately tracked in #18; no individual-game emulator patches were added.
Public release APKs remain unchanged. Private experimental.9 contains this batch plus previous Java/Mophun work. See docs/COMPACT_LIBRARY.md and docs/LOCAL_TESTING.md.
Follow-up in 17ef6dc: initial game focus is fixed. Card-height notification was running inside RecyclerView layout, leaving pending adapter updates and preventing a holder from being found for focus. It now runs after layout. Observer registration is tied to the fragment view lifecycle, and data refresh retains the selected game for actions/detail. A real-activity regression uses an isolated eight-item catalog, checks cold focus in Gallery/List/Grid and verifies that later layout does not steal intentionally placed header focus. Public-source variants passed 81 shared cases (one Handheld-only skip on Phone). Keeping #17 open for owner visual acceptance and physical handheld checks; emulator screenshots have been shared in chat.
Follow-up in 1ae5503: Phone portrait now uses the compact 48 dp library header, with on-demand search and a library menu. Shared menus have a fixed Close/Back header, scrolling content, 48 dp minimum action targets and wrapping labels. Phone library menus stay open and reposition during rotation. Artwork actions are grouped under Icon and Cover. Fixed a search restoration/filter race and initial controller focus landing on Close. Added five UI regression cases; public-source Phone and Handheld runners each report OK (86 tests), with variant/viewport-specific assumptions. JVM suites: 14 per variant. Checked on emulator-5554, including 320 dp portrait with larger text and 480x320 dp landscape. No physical-device acceptance claimed; leaving this issue open for owner testing. Public release APKs are unchanged.
Follow-up in 83b2fc2: general Settings and Library transfer now use compact shared chrome. Settings is split into Library / Playing / Support; transfer separates operation selection, game preview and results. Handheld hides system bars in both screens. Verified D-pad/A/B at 480x320 dp and Phone at 320 dp with 1.3x font on emulator-5554. Public variants each report OK (89 selected tests), with variant-specific assumptions. Actual 11-game backup saved via DocumentsUI and reopened for preview; no duplicate restore performed. No archive/save semantics changed. Keeping this issue open for physical small-handheld acceptance.
Follow-up in 696da08: compact MIDlet installer with fixed title/Close and action areas around a scrolling body; flexible button widths; vertical archive entries with full paths; persistent errors; safe Cancel-first library deletion; shared preparation error dialogs. Manual emulator checks: Phone 320 dp with 1.3x font and Handheld 480x320 dp, D-pad scrolling, Cancel via A, archive error and completed 2048 reinstall (configuration unchanged). Actual DocumentsUI testing also exposed and fixed ZIP streams being staged as tmp.jar. No physical handheld acceptance claimed; keeping this issue open.
Observed on Android 15 emulator-5554 at 960x640 pixels / 320 dpi (480x320 dp), Handheld build.
The library header, filters, search, view switch and soft-key bar occupy nearly the entire height; only a thin strip of game cards remains visible. This is an existing library layout problem exposed while checking #16, not a per-game compatibility issue.
Proposed scope:
Keep separate from the shared settings / trial implementation.