From 8efbe02c270fc28800bacab0356cfc82a2cd3e8c Mon Sep 17 00:00:00 2001 From: Hy4ri Date: Sun, 21 Jun 2026 11:00:20 +0300 Subject: [PATCH] refactor(#78): extract shared components and common strings to resources --- .../m57/hermescontrol/ui/common/HermesScaffold.kt | 8 +++++--- .../hermescontrol/ui/common/SharedComponents.kt | 4 +++- .../com/m57/hermescontrol/ui/common/StateViews.kt | 4 +++- app/src/main/res/values/strings.xml | 15 +++++++++++++++ 4 files changed, 26 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/m57/hermescontrol/ui/common/HermesScaffold.kt b/app/src/main/java/com/m57/hermescontrol/ui/common/HermesScaffold.kt index 5a463193..41c2565b 100644 --- a/app/src/main/java/com/m57/hermescontrol/ui/common/HermesScaffold.kt +++ b/app/src/main/java/com/m57/hermescontrol/ui/common/HermesScaffold.kt @@ -21,6 +21,8 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.testTag +import androidx.compose.ui.res.stringResource +import com.m57.hermescontrol.R /** * Shared Scaffold wrapper that standardizes the TopAppBar. @@ -69,7 +71,7 @@ fun HermesScaffold( IconButton(onClick = onBack) { Icon( imageVector = Icons.AutoMirrored.Filled.ArrowBack, - contentDescription = "Back", + contentDescription = stringResource(R.string.content_desc_back), modifier = Modifier.testTag("back_button"), ) } @@ -79,7 +81,7 @@ fun HermesScaffold( IconButton(onClick = onOpenDrawer) { Icon( imageVector = Icons.Filled.Menu, - contentDescription = "Open navigation drawer", + contentDescription = stringResource(R.string.content_desc_open_drawer), modifier = Modifier.testTag("menu_button"), ) } @@ -91,7 +93,7 @@ fun HermesScaffold( IconButton(onClick = onRefresh) { Icon( imageVector = Icons.Filled.Refresh, - contentDescription = "Refresh", + contentDescription = stringResource(R.string.content_desc_refresh), modifier = Modifier.testTag("refresh_button"), ) } diff --git a/app/src/main/java/com/m57/hermescontrol/ui/common/SharedComponents.kt b/app/src/main/java/com/m57/hermescontrol/ui/common/SharedComponents.kt index b481e37d..8f527582 100644 --- a/app/src/main/java/com/m57/hermescontrol/ui/common/SharedComponents.kt +++ b/app/src/main/java/com/m57/hermescontrol/ui/common/SharedComponents.kt @@ -31,8 +31,10 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp +import com.m57.hermescontrol.R import com.m57.hermescontrol.theme.LocalHermesStatusColors import com.m57.hermescontrol.theme.LocalSpacing @@ -215,7 +217,7 @@ fun SearchBar( IconButton(onClick = { onQueryChange("") }) { Icon( imageVector = Icons.Filled.Close, - contentDescription = "Clear search", + contentDescription = stringResource(R.string.content_desc_clear_search), ) } } diff --git a/app/src/main/java/com/m57/hermescontrol/ui/common/StateViews.kt b/app/src/main/java/com/m57/hermescontrol/ui/common/StateViews.kt index 7f85f11b..1c310c83 100644 --- a/app/src/main/java/com/m57/hermescontrol/ui/common/StateViews.kt +++ b/app/src/main/java/com/m57/hermescontrol/ui/common/StateViews.kt @@ -23,8 +23,10 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.platform.testTag +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp +import com.m57.hermescontrol.R import com.m57.hermescontrol.theme.LocalSpacing // Unified loading / error / empty / skeleton placeholders so every screen @@ -94,7 +96,7 @@ fun ErrorState( modifier = Modifier.size(18.dp), ) Spacer(modifier = Modifier.size(spacing.sm)) - Text("Retry") + Text(stringResource(R.string.action_retry)) } } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a7124074..fb78a1fc 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -13,4 +13,19 @@ Previous match Next match Close search + + + Retry + Cancel + OK + Delete + + + Back + Open navigation drawer + Refresh + Clear search + + + Unknown error \ No newline at end of file