diff --git a/app/src/main/java/com/sadellie/unitto/MainActivity.kt b/app/src/main/java/com/sadellie/unitto/MainActivity.kt index 552a2c4c..15c6aa2a 100644 --- a/app/src/main/java/com/sadellie/unitto/MainActivity.kt +++ b/app/src/main/java/com/sadellie/unitto/MainActivity.kt @@ -133,6 +133,7 @@ fun UnittoApp( currentUnit = mainViewModel.unitTo, navigateUp = { navController.navigateUp() }, selectAction = { mainViewModel.changeUnitTo(it) }, + navigateToSettingsActtion = { navController.navigate(UNIT_GROUPS_SCREEN) }, viewModel = secondViewModel, inputValue = mainViewModel.mainUIState.inputValue.toBigDecimal(), unitFrom = mainViewModel.unitFrom diff --git a/app/src/main/java/com/sadellie/unitto/screens/second/SecondScreen.kt b/app/src/main/java/com/sadellie/unitto/screens/second/SecondScreen.kt index 4054be90..74d94870 100644 --- a/app/src/main/java/com/sadellie/unitto/screens/second/SecondScreen.kt +++ b/app/src/main/java/com/sadellie/unitto/screens/second/SecondScreen.kt @@ -49,6 +49,7 @@ import java.math.BigDecimal * * @param currentUnit Currently selected [AbstractUnit]. * @param navigateUp Action to navigate up. Called when user click back button. + * @param navigateToSettingsActtion Action to perform when clicking open settings in placeholder. * @param selectAction Action to perform when user clicks on [UnitListItem]. * @param viewModel [SecondViewModel]. * @param chipsRow Composable that is placed under TopAppBar. See [ChipsRow] @@ -61,6 +62,7 @@ import java.math.BigDecimal private fun BasicUnitListScreen( currentUnit: AbstractUnit, navigateUp: () -> Unit, + navigateToSettingsActtion: () -> Unit, selectAction: (AbstractUnit) -> Unit, viewModel: SecondViewModel, chipsRow: @Composable (UnitGroup?, LazyListState) -> Unit = {_, _->}, @@ -102,7 +104,7 @@ private fun BasicUnitListScreen( ) } if (uiState.unitsToShow.isEmpty()) { - item { SearchPlaceholder() } + item { SearchPlaceholder(navigateToSettingsActtion) } return@LazyColumn } uiState.unitsToShow.forEach { (unitGroup, listOfUnits) -> @@ -149,6 +151,7 @@ fun LeftSideScreen( ) = BasicUnitListScreen( currentUnit = currentUnit, navigateUp = navigateUp, + navigateToSettingsActtion = navigateToSettingsActtion, selectAction = selectAction, viewModel = viewModel, chipsRow = { unitGroup, lazyListState -> @@ -180,6 +183,7 @@ fun LeftSideScreen( * * @param currentUnit Currently selected [AbstractUnit]. * @param navigateUp Action to navigate up. Called when user click back button. + * @param navigateToSettingsActtion Action to perform when clicking settings chip at the end. * @param selectAction Action to perform when user clicks on [UnitListItem]. * @param viewModel [SecondViewModel]. * @param inputValue Current input value (upper text field on MainScreen) @@ -189,6 +193,7 @@ fun LeftSideScreen( fun RightSideScreen( currentUnit: AbstractUnit, navigateUp: () -> Unit, + navigateToSettingsActtion: () -> Unit, selectAction: (AbstractUnit) -> Unit, viewModel: SecondViewModel, inputValue: BigDecimal, @@ -196,6 +201,7 @@ fun RightSideScreen( ) = BasicUnitListScreen( currentUnit = currentUnit, navigateUp = navigateUp, + navigateToSettingsActtion = navigateToSettingsActtion, selectAction = selectAction, viewModel = viewModel, unitsListItem = { unit, selectUnitAction -> diff --git a/app/src/main/java/com/sadellie/unitto/screens/second/components/SearchPlaceholder.kt b/app/src/main/java/com/sadellie/unitto/screens/second/components/SearchPlaceholder.kt index af1a42a5..3522c7da 100644 --- a/app/src/main/java/com/sadellie/unitto/screens/second/components/SearchPlaceholder.kt +++ b/app/src/main/java/com/sadellie/unitto/screens/second/components/SearchPlaceholder.kt @@ -25,6 +25,7 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.SearchOff +import androidx.compose.material3.ElevatedButton import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text @@ -39,15 +40,16 @@ import com.sadellie.unitto.R /** * Placeholder that can be seen when there are no units found * + * @param navigateToSettingsActtion Action to perform when clicking open settings button. */ @Composable -fun SearchPlaceholder() { +fun SearchPlaceholder(navigateToSettingsActtion: () -> Unit) { Column( modifier = Modifier .fillMaxWidth() .padding(16.dp), horizontalAlignment = Alignment.CenterHorizontally, - verticalArrangement = Arrangement.Center + verticalArrangement = Arrangement.spacedBy(16.dp) ) { // Big icon in the middle Icon( @@ -67,5 +69,9 @@ fun SearchPlaceholder() { textAlign = TextAlign.Center, style = MaterialTheme.typography.bodySmall ) + // Open settings button + ElevatedButton(onClick = navigateToSettingsActtion) { + Text(text = stringResource(id = R.string.search_placeholder_button_label)) + } } } diff --git a/app/src/main/res/values-en-rGB/strings.xml b/app/src/main/res/values-en-rGB/strings.xml index 6ced7c11..c82f8328 100644 --- a/app/src/main/res/values-en-rGB/strings.xml +++ b/app/src/main/res/values-en-rGB/strings.xml @@ -724,7 +724,7 @@ Cancel Search units No results found - Make sure there are no typos or try different filters + Make sure there are no typos, try different filters or check for disabled unit groups. Navigate up @@ -742,5 +742,6 @@ Open or close drop down menu Hello! Unit groups + Open settings \ No newline at end of file diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 4081e1c0..2aa4d5b8 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -528,7 +528,7 @@ Отмена Поиск величин Не найдено - Убедитесь в отсутствии опечаток или попробуйте другие фильтры + Убедитесь в отсутствии опечаток, попробуйте другие фильтры или проверьте отключенные величины. Навигация наверх Выбранный фильтр Открыть настройки @@ -677,5 +677,6 @@ Открыть или закрыть меню Привет! Группы величин + Открыть настройки \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9041485a..507ae405 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1004,7 +1004,8 @@ OK Search units No results found - Make sure there are no typos or try different filters + Open settings + Make sure there are no typos, try different filters or check for disabled unit groups. Hello!