From 1b61b4bd851c4d35f678cc9ae3a45880030aafc5 Mon Sep 17 00:00:00 2001 From: Sad Ellie Date: Thu, 18 May 2023 23:33:10 +0300 Subject: [PATCH] Added SettingsButton.kt --- .../unitto/core/ui/common/SettingsButton.kt | 34 +++++++++++++++++++ .../feature/calculator/CalculatorScreen.kt | 9 ++--- .../feature/converter/ConverterScreen.kt | 12 ++----- .../datedifference/DateDifferenceScreen.kt | 12 ++----- 4 files changed, 40 insertions(+), 27 deletions(-) create mode 100644 core/ui/src/main/java/com/sadellie/unitto/core/ui/common/SettingsButton.kt diff --git a/core/ui/src/main/java/com/sadellie/unitto/core/ui/common/SettingsButton.kt b/core/ui/src/main/java/com/sadellie/unitto/core/ui/common/SettingsButton.kt new file mode 100644 index 00000000..12253eae --- /dev/null +++ b/core/ui/src/main/java/com/sadellie/unitto/core/ui/common/SettingsButton.kt @@ -0,0 +1,34 @@ +/* + * Unitto is a unit converter for Android + * Copyright (c) 2023 Elshan Agaev + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.sadellie.unitto.core.ui.common + +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.outlined.Settings +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.runtime.Composable +import androidx.compose.ui.res.stringResource +import com.sadellie.unitto.core.base.R + +@Composable +fun SettingsButton(onClick: () -> Unit) { + IconButton(onClick) { + Icon(Icons.Outlined.Settings, stringResource(R.string.open_settings_description)) + } +} diff --git a/feature/calculator/src/main/java/com/sadellie/unitto/feature/calculator/CalculatorScreen.kt b/feature/calculator/src/main/java/com/sadellie/unitto/feature/calculator/CalculatorScreen.kt index 1523c83f..bf7fbf4d 100644 --- a/feature/calculator/src/main/java/com/sadellie/unitto/feature/calculator/CalculatorScreen.kt +++ b/feature/calculator/src/main/java/com/sadellie/unitto/feature/calculator/CalculatorScreen.kt @@ -37,7 +37,6 @@ import androidx.compose.foundation.layout.sizeIn import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Delete -import androidx.compose.material.icons.outlined.Settings import androidx.compose.material3.AlertDialog import androidx.compose.material3.Icon import androidx.compose.material3.IconButton @@ -66,6 +65,7 @@ import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.sadellie.unitto.core.base.R import com.sadellie.unitto.core.ui.common.MenuButton +import com.sadellie.unitto.core.ui.common.SettingsButton import com.sadellie.unitto.core.ui.common.UnittoScreenWithTopBar import com.sadellie.unitto.core.ui.common.textfield.ExpressionTextField import com.sadellie.unitto.core.ui.common.textfield.UnformattedTextField @@ -143,12 +143,7 @@ private fun CalculatorScreen( } ) } else { - IconButton(onClick = navigateToSettings) { - Icon( - Icons.Outlined.Settings, - contentDescription = stringResource(R.string.open_settings_description) - ) - } + SettingsButton(navigateToSettings) } } } diff --git a/feature/converter/src/main/java/com/sadellie/unitto/feature/converter/ConverterScreen.kt b/feature/converter/src/main/java/com/sadellie/unitto/feature/converter/ConverterScreen.kt index 970baf4f..be321efc 100644 --- a/feature/converter/src/main/java/com/sadellie/unitto/feature/converter/ConverterScreen.kt +++ b/feature/converter/src/main/java/com/sadellie/unitto/feature/converter/ConverterScreen.kt @@ -20,10 +20,6 @@ package com.sadellie.unitto.feature.converter import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.outlined.Settings -import androidx.compose.material3.Icon -import androidx.compose.material3.IconButton import androidx.compose.material3.Text import androidx.compose.material3.TopAppBarDefaults import androidx.compose.runtime.Composable @@ -38,6 +34,7 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.sadellie.unitto.core.base.R import com.sadellie.unitto.core.ui.common.MenuButton import com.sadellie.unitto.core.ui.common.PortraitLandscape +import com.sadellie.unitto.core.ui.common.SettingsButton import com.sadellie.unitto.core.ui.common.UnittoScreenWithTopBar import com.sadellie.unitto.feature.converter.components.Keyboard import com.sadellie.unitto.feature.converter.components.TopScreenPart @@ -85,12 +82,7 @@ private fun ConverterScreen( title = { Text(stringResource(R.string.unit_converter)) }, navigationIcon = { MenuButton { navigateToMenu() } }, actions = { - IconButton(onClick = navigateToSettings) { - Icon( - Icons.Outlined.Settings, - contentDescription = stringResource(R.string.open_settings_description) - ) - } + SettingsButton(navigateToSettings) }, colors = TopAppBarDefaults .centerAlignedTopAppBarColors(containerColor = Color.Transparent), diff --git a/feature/datedifference/src/main/java/com/sadellie/unitto/feature/datedifference/DateDifferenceScreen.kt b/feature/datedifference/src/main/java/com/sadellie/unitto/feature/datedifference/DateDifferenceScreen.kt index 038ab976..69f19b26 100644 --- a/feature/datedifference/src/main/java/com/sadellie/unitto/feature/datedifference/DateDifferenceScreen.kt +++ b/feature/datedifference/src/main/java/com/sadellie/unitto/feature/datedifference/DateDifferenceScreen.kt @@ -26,10 +26,6 @@ import androidx.compose.foundation.layout.ExperimentalLayoutApi import androidx.compose.foundation.layout.FlowRow import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.outlined.Settings -import androidx.compose.material3.Icon -import androidx.compose.material3.IconButton import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue @@ -45,6 +41,7 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.sadellie.unitto.core.base.R import com.sadellie.unitto.core.ui.common.DatePickerDialog import com.sadellie.unitto.core.ui.common.MenuButton +import com.sadellie.unitto.core.ui.common.SettingsButton import com.sadellie.unitto.core.ui.common.TimePickerDialog import com.sadellie.unitto.core.ui.common.UnittoScreenWithTopBar import com.sadellie.unitto.feature.datedifference.components.DateTimeResultBlock @@ -83,12 +80,7 @@ internal fun DateDifferenceScreen( title = { Text(stringResource(R.string.date_difference)) }, navigationIcon = { MenuButton(navigateToMenu) }, actions = { - IconButton(onClick = navigateToSettings) { - Icon( - Icons.Outlined.Settings, - contentDescription = stringResource(R.string.open_settings_description) - ) - } + SettingsButton(navigateToSettings) } ) { paddingValues -> FlowRow(