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.
24 lines
986 B
XML
24 lines
986 B
XML
<resources>
|
|
<string name="characters_title">Characters</string>
|
|
<string name="characters_empty">No characters to show.</string>
|
|
<string name="cd_character_avatar">Avatar of %1$s</string>
|
|
<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>
|