mirror of
https://github.com/Myzel394/NumberHub.git
synced 2025-06-18 16:25:27 +02:00
parent
659b64ebd4
commit
d0fcf5b138
@ -83,7 +83,6 @@ class BackupManagerTest {
|
||||
// CALCULATOR
|
||||
it[PrefsKeys.RADIAN_MODE] = FakeUsrPreferenceValues.radianMode
|
||||
it[PrefsKeys.PARTIAL_HISTORY_VIEW] = FakeUsrPreferenceValues.partialHistoryView
|
||||
it[PrefsKeys.CLEAR_INPUT_AFTER_EQUALS] = FakeUsrPreferenceValues.clearInputAfterEquals
|
||||
|
||||
// UNIT CONVERTER
|
||||
it[PrefsKeys.LATEST_LEFT_SIDE] = FakeUsrPreferenceValues.latestLeftSide
|
||||
@ -116,7 +115,6 @@ class BackupManagerTest {
|
||||
outputFormat = FakeUsrPreferenceValues.outputFormat,
|
||||
radianMode = FakeUsrPreferenceValues.radianMode,
|
||||
partialHistoryView = FakeUsrPreferenceValues.partialHistoryView,
|
||||
clearInputAfterEquals = FakeUsrPreferenceValues.clearInputAfterEquals,
|
||||
latestLeftSide = FakeUsrPreferenceValues.latestLeftSide,
|
||||
latestRightSide = FakeUsrPreferenceValues.latestRightSide,
|
||||
shownUnitGroups = FakeUsrPreferenceValues.shownUnitGroups,
|
||||
|
@ -29,7 +29,6 @@ import com.sadellie.unitto.data.database.TimeZoneDao
|
||||
import com.sadellie.unitto.data.database.UnitsDao
|
||||
import com.sadellie.unitto.data.userprefs.PrefsKeys
|
||||
import com.sadellie.unitto.data.userprefs.getAcButton
|
||||
import com.sadellie.unitto.data.userprefs.getClearInputAfterEquals
|
||||
import com.sadellie.unitto.data.userprefs.getCustomColor
|
||||
import com.sadellie.unitto.data.userprefs.getDigitsPrecision
|
||||
import com.sadellie.unitto.data.userprefs.getEnableAmoledTheme
|
||||
@ -137,7 +136,6 @@ class BackupManager @Inject constructor(
|
||||
outputFormat = data.getOutputFormat(),
|
||||
radianMode = data.getRadianMode(),
|
||||
partialHistoryView = data.getPartialHistoryView(),
|
||||
clearInputAfterEquals = data.getClearInputAfterEquals(),
|
||||
latestLeftSide = data.getLatestLeftSide(),
|
||||
latestRightSide = data.getLatestRightSide(),
|
||||
shownUnitGroups = data.getShownUnitGroups().joinToString(","),
|
||||
@ -174,7 +172,6 @@ class BackupManager @Inject constructor(
|
||||
// CALCULATOR
|
||||
it[PrefsKeys.RADIAN_MODE] = userData.radianMode
|
||||
it[PrefsKeys.PARTIAL_HISTORY_VIEW] = userData.partialHistoryView
|
||||
it[PrefsKeys.CLEAR_INPUT_AFTER_EQUALS] = userData.clearInputAfterEquals
|
||||
|
||||
// UNIT CONVERTER
|
||||
it[PrefsKeys.LATEST_LEFT_SIDE] = userData.latestLeftSide
|
||||
|
@ -46,7 +46,6 @@ internal data class UserData(
|
||||
|
||||
@Json(name = "radianMode") val radianMode: Boolean,
|
||||
@Json(name = "partialHistoryView") val partialHistoryView: Boolean,
|
||||
@Json(name = "clearInputAfterEquals") val clearInputAfterEquals: Boolean,
|
||||
|
||||
@Json(name = "latestLeftSide") val latestLeftSide: String,
|
||||
@Json(name = "latestRightSide") val latestRightSide: String,
|
||||
|
@ -87,7 +87,5 @@ interface UserPreferencesRepository {
|
||||
|
||||
suspend fun updateAcButton(enabled: Boolean)
|
||||
|
||||
suspend fun updateClearInputAfterEquals(enabled: Boolean)
|
||||
|
||||
suspend fun updateRpnMode(enabled: Boolean)
|
||||
}
|
||||
|
@ -27,5 +27,4 @@ interface CalculatorPreferences {
|
||||
val partialHistoryView: Boolean
|
||||
val precision: Int
|
||||
val outputFormat: Int
|
||||
val clearInputAfterEquals: Boolean
|
||||
}
|
||||
|
@ -124,10 +124,6 @@ fun Preferences.getAcButton(): Boolean {
|
||||
return this[PrefsKeys.AC_BUTTON] ?: true
|
||||
}
|
||||
|
||||
fun Preferences.getClearInputAfterEquals(): Boolean {
|
||||
return this[PrefsKeys.CLEAR_INPUT_AFTER_EQUALS] ?: false
|
||||
}
|
||||
|
||||
fun Preferences.getRpnMode(): Boolean {
|
||||
return this[PrefsKeys.RPN_MODE] ?: false
|
||||
}
|
||||
|
@ -57,7 +57,6 @@ data class CalculatorPreferencesImpl(
|
||||
override val partialHistoryView: Boolean,
|
||||
override val precision: Int,
|
||||
override val outputFormat: Int,
|
||||
override val clearInputAfterEquals: Boolean,
|
||||
) : CalculatorPreferences
|
||||
|
||||
data class ConverterPreferencesImpl(
|
||||
|
@ -46,7 +46,6 @@ object PrefsKeys {
|
||||
// CALCULATOR
|
||||
val RADIAN_MODE = booleanPreferencesKey("RADIAN_MODE_PREF_KEY")
|
||||
val PARTIAL_HISTORY_VIEW = booleanPreferencesKey("PARTIAL_HISTORY_VIEW_PREF_KEY")
|
||||
val CLEAR_INPUT_AFTER_EQUALS = booleanPreferencesKey("CLEAR_INPUT_AFTER_EQUALS_PREF_KEY")
|
||||
|
||||
// UNIT CONVERTER
|
||||
val LATEST_LEFT_SIDE = stringPreferencesKey("LATEST_LEFT_SIDE_PREF_KEY")
|
||||
|
@ -81,7 +81,6 @@ class UserPreferencesRepositoryImpl @Inject constructor(
|
||||
precision = preferences.getDigitsPrecision(),
|
||||
outputFormat = preferences.getOutputFormat(),
|
||||
acButton = preferences.getAcButton(),
|
||||
clearInputAfterEquals = preferences.getClearInputAfterEquals()
|
||||
)
|
||||
}
|
||||
|
||||
@ -278,12 +277,6 @@ class UserPreferencesRepositoryImpl @Inject constructor(
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun updateClearInputAfterEquals(enabled: Boolean) {
|
||||
dataStore.edit { preferences ->
|
||||
preferences[PrefsKeys.CLEAR_INPUT_AFTER_EQUALS] = enabled
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun updateRpnMode(enabled: Boolean) {
|
||||
dataStore.edit { preferences ->
|
||||
preferences[PrefsKeys.RPN_MODE] = enabled
|
||||
|
@ -116,8 +116,8 @@ internal class CalculatorViewModel @Inject constructor(
|
||||
.stateIn(viewModelScope, CalculatorUIState.Loading)
|
||||
|
||||
fun addTokens(tokens: String) = _input.update {
|
||||
val clearInputAfterEquals = _prefs.value?.clearInputAfterEquals ?: true
|
||||
val newValue = if (_equalClicked.value and clearInputAfterEquals) {
|
||||
val newValue = if (_equalClicked.value and Token.Digit.allWithDot.contains(tokens)) {
|
||||
// Clean input after clicking "=" and any token that is a Digit
|
||||
TextFieldValue().addTokens(tokens)
|
||||
} else {
|
||||
it.addTokens(tokens)
|
||||
@ -129,12 +129,7 @@ internal class CalculatorViewModel @Inject constructor(
|
||||
}
|
||||
|
||||
fun addBracket() = _input.update {
|
||||
val clearInputAfterEquals = _prefs.value?.clearInputAfterEquals ?: true
|
||||
val newValue = if (_equalClicked.value and clearInputAfterEquals) {
|
||||
TextFieldValue().addBracket()
|
||||
} else {
|
||||
it.addBracket()
|
||||
}
|
||||
val newValue = it.addBracket()
|
||||
_equalClicked.update { false }
|
||||
_fractionJob?.cancel()
|
||||
savedStateHandle[_inputKey] = newValue.text
|
||||
@ -142,8 +137,7 @@ internal class CalculatorViewModel @Inject constructor(
|
||||
}
|
||||
|
||||
fun deleteTokens() = _input.update {
|
||||
val clearInputAfterEquals = _prefs.value?.clearInputAfterEquals ?: true
|
||||
val newValue = if (_equalClicked.value and clearInputAfterEquals) {
|
||||
val newValue = if (_equalClicked.value) {
|
||||
TextFieldValue().deleteTokens()
|
||||
} else {
|
||||
it.deleteTokens()
|
||||
|
@ -22,7 +22,6 @@ import androidx.compose.animation.Crossfade
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.automirrored.filled.Backspace
|
||||
import androidx.compose.material.icons.filled.Timer
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
@ -48,7 +47,6 @@ internal fun CalculatorSettingsRoute(
|
||||
uiState = prefs,
|
||||
navigateUpAction = navigateUpAction,
|
||||
updatePartialHistoryView = viewModel::updatePartialHistoryView,
|
||||
updateClearInputAfterEquals = viewModel::updateClearInputAfterEquals,
|
||||
updateRpnMode = viewModel::updateRpnMode,
|
||||
)
|
||||
}
|
||||
@ -61,7 +59,6 @@ private fun CalculatorSettingsScreen(
|
||||
uiState: CalculatorSettingsUIState,
|
||||
navigateUpAction: () -> Unit,
|
||||
updatePartialHistoryView: (Boolean) -> Unit,
|
||||
updateClearInputAfterEquals: (Boolean) -> Unit,
|
||||
updateRpnMode: (Boolean) -> Unit,
|
||||
) {
|
||||
UnittoScreenWithLargeTopBar(
|
||||
@ -104,14 +101,6 @@ private fun CalculatorSettingsScreen(
|
||||
switchState = state.partialHistoryView,
|
||||
onSwitchChange = updatePartialHistoryView
|
||||
)
|
||||
|
||||
UnittoListItem(
|
||||
headlineText = stringResource(R.string.settings_clear_input),
|
||||
icon = Icons.AutoMirrored.Filled.Backspace,
|
||||
supportingText = stringResource(R.string.settings_clear_input_support),
|
||||
switchState = state.clearInputAfterEquals,
|
||||
onSwitchChange = updateClearInputAfterEquals
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@ -128,11 +117,9 @@ private fun PreviewCalculatorSettingsScreenStandard() {
|
||||
CalculatorSettingsScreen(
|
||||
uiState = CalculatorSettingsUIState.Standard(
|
||||
partialHistoryView = true,
|
||||
clearInputAfterEquals = false
|
||||
),
|
||||
navigateUpAction = {},
|
||||
updatePartialHistoryView = {},
|
||||
updateClearInputAfterEquals = {},
|
||||
updateRpnMode = {}
|
||||
)
|
||||
}
|
||||
@ -144,7 +131,6 @@ private fun PreviewCalculatorSettingsScreenRPN() {
|
||||
uiState = CalculatorSettingsUIState.RPN,
|
||||
navigateUpAction = {},
|
||||
updatePartialHistoryView = {},
|
||||
updateClearInputAfterEquals = {},
|
||||
updateRpnMode = {}
|
||||
)
|
||||
}
|
||||
|
@ -25,6 +25,5 @@ internal sealed class CalculatorSettingsUIState {
|
||||
|
||||
data class Standard(
|
||||
val partialHistoryView: Boolean,
|
||||
val clearInputAfterEquals: Boolean,
|
||||
) : CalculatorSettingsUIState()
|
||||
}
|
||||
|
@ -40,7 +40,6 @@ internal class CalculatorSettingsViewModel @Inject constructor(
|
||||
} else {
|
||||
CalculatorSettingsUIState.Standard(
|
||||
partialHistoryView = calc.partialHistoryView,
|
||||
clearInputAfterEquals = calc.clearInputAfterEquals
|
||||
)
|
||||
}
|
||||
}
|
||||
@ -50,10 +49,6 @@ internal class CalculatorSettingsViewModel @Inject constructor(
|
||||
userPrefsRepository.updatePartialHistoryView(enabled)
|
||||
}
|
||||
|
||||
fun updateClearInputAfterEquals(enabled: Boolean) = viewModelScope.launch {
|
||||
userPrefsRepository.updateClearInputAfterEquals(enabled)
|
||||
}
|
||||
|
||||
fun updateRpnMode(enabled: Boolean) = viewModelScope.launch {
|
||||
userPrefsRepository.updateRpnMode(enabled)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user