ADR-0067: The Activity destination keeps one user-facing name
- Status: Accepted
- Date: 2026-10-17
- Amended: 2026-10-20 (Warm ledger — Home-first tab order; Activity name unchanged; ADR-0079)
Context
The bottom-navigation tab was labelled Activity while the destination's own
top bar said Transactions — one destination, two names (finding F07). The
route id, deep links, and the screen and ViewModel already used transactions
(Routes.TRANSACTIONS, TransactionsScreen, TransactionsViewModel), and the
prose in ui.md, ADR-0042 and ADR-0050 already calls the
destination "Activity". Only the header string disagreed.
Renaming the tab label to "Transactions" instead would lengthen the widest
compact-navigation label: CompactNavigation measures every full label and
horizontal-scrolls the single row once the five equal-width items no longer fit
(ADR-0044). At 411 dp / 100% text the five labels fit today; "Transactions"
would push the row into its scrolling state on a mainstream phone width.
Decision
The destination's user-facing name is Activity: the bottom-bar label
(nav_activity) and the screen title (tx_title) both read Activity, and
the docs name it Activity. The route id (Routes.TRANSACTIONS), deep links
(autobudget://transactions), and the TransactionsScreen /
TransactionsViewModel type and file names stay unchanged — an internal
identifier is not user-facing copy, and the issue forbids an unnecessary route
rename.
Consequences
A tab and its destination header now agree, so screen readers and sighted users hear the same name. Descriptive copy that legitimately mentions transactions ("Recent transactions", "View transactions") is unaffected. The compact navigation row keeps its current fit at 411 dp / 100% text.
Warm ledger amendment (2026-10-20)
The compact bar and rail order is Home, Activity, Budgets, Reports,
Settings; Home is the start destination and Settings stays last. This changes
visual order only — route ids, deep links and TransactionsScreen /
TransactionsViewModel remain unchanged. Activity remains the one
user-facing name; "Transactions" is never reintroduced as a tab or header
label.
Verification
DestinationTitleMatchesTabLabelTest (instrumented) asserts the selected
Activity tab label and the destination header resolve to the same resource value
after normal tab navigation and after a Reports "View transactions" drill-down;
DestinationNamingStringsTest guards the resource values on the JVM layer.
CompactNavigationTest still passes at 320/411 dp and 100–200% text.
ShellChromeTest asserts the rail and compact bar present the Home-first order
and that Activity is selected by its unchanged label.