REDI-90: character detail screen (type-safe nav args + MVI)
Add a CharacterDetail MVI stack (State/Action/Event/ViewModel + CharacterDetailUi) to the UI-agnostic :feature:characters:presentation. The detail ViewModel reads the typed characterId from SavedStateHandle (populated by the type-safe CharacterDetailRoute), so the module keeps zero navigation/Compose deps. Add CharacterDetailScreen (Root/Screen, image header, attribute rows, loading/error) and CharacterDetailRoute to :presentation-compose; refactor charactersGraph to drive list->detail via NavController and expose About / Views entries as callbacks. Extract shared CharacterStatus label/colour helpers; add an overflow menu to the list app bar. Add material-icons-core to the compose bundle for the app-bar icons.
This commit is contained in:
@@ -5,4 +5,19 @@
|
||||
<string name="status_alive">Alive</string>
|
||||
<string name="status_dead">Dead</string>
|
||||
<string name="status_unknown">Unknown</string>
|
||||
|
||||
<!-- Overflow menu -->
|
||||
<string name="cd_more_options">More options</string>
|
||||
<string name="menu_about">About</string>
|
||||
<string name="menu_open_as_views">Open as Views</string>
|
||||
|
||||
<!-- Detail screen -->
|
||||
<string name="character_detail_title">Character</string>
|
||||
<string name="cd_back">Back</string>
|
||||
<string name="cd_character_image">Image of %1$s</string>
|
||||
<string name="detail_type">Type</string>
|
||||
<string name="detail_gender">Gender</string>
|
||||
<string name="detail_origin">Origin</string>
|
||||
<string name="detail_location">Location</string>
|
||||
<string name="detail_episodes">Episodes</string>
|
||||
</resources>
|
||||
|
||||
Reference in New Issue
Block a user