From a990bad4b928e8fa842493d29cf00948a2e0bf5d Mon Sep 17 00:00:00 2001 From: FunkyMuse Date: Thu, 28 Sep 2023 23:35:32 +0200 Subject: [PATCH 1/7] fix: customize colors locked --- .../calculator/activities/SettingsActivity.kt | 5 +---- .../calculator/compose/SettingsScreen.kt | 9 ++++----- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/calculator/activities/SettingsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calculator/activities/SettingsActivity.kt index 4997215d..58c55593 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calculator/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calculator/activities/SettingsActivity.kt @@ -43,9 +43,6 @@ class SettingsActivity : AppCompatActivity() { } } val isOrWasThankYouInstalled = onEventValue { context.isOrWasThankYouInstalled() } - val lockedCustomizeColorText by remember(isOrWasThankYouInstalled) { - derivedStateOf { if (isOrWasThankYouInstalled) null else getCustomizeColorsString() } - } val displayLanguage = remember { Locale.getDefault().displayLanguage } SettingsScreen( displayLanguage = displayLanguage, @@ -73,7 +70,7 @@ class SettingsActivity : AppCompatActivity() { applicationContext.calculatorDB.deleteHistory() } }, - lockedCustomizeColorText = lockedCustomizeColorText + lockedCustomizeColorText = getCustomizeColorsString() ) } } diff --git a/app/src/main/kotlin/com/simplemobiletools/calculator/compose/SettingsScreen.kt b/app/src/main/kotlin/com/simplemobiletools/calculator/compose/SettingsScreen.kt index 2d0724e0..64df13e8 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calculator/compose/SettingsScreen.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calculator/compose/SettingsScreen.kt @@ -32,7 +32,7 @@ internal fun SettingsScreen( onSetupLanguagePress: () -> Unit, useCommaAsDecimalMarkFlow: Boolean, onUseCommaAsDecimalMarkFlow: (Boolean) -> Unit, - lockedCustomizeColorText: String?, + lockedCustomizeColorText: String, displayLanguage: String ) { SettingsScaffold(title = stringResource(id = R.string.settings), goBack = goBack) { @@ -40,10 +40,9 @@ internal fun SettingsScreen( SettingsTitleTextComponent(text = stringResource(id = R.string.color_customization)) }) { SettingsPreferenceComponent( - preferenceTitle = stringResource(id = R.string.customize_colors), + preferenceTitle = lockedCustomizeColorText, doOnPreferenceClick = customizeColors, isPreferenceEnabled = isOrWasThankYouInstalled, - preferenceSummary = lockedCustomizeColorText ) SettingsPreferenceComponent( preferenceTitle = stringResource(id = R.string.customize_widget_colors), @@ -106,7 +105,7 @@ private fun SettingsScreenPreview() { onPreventPhoneFromSleeping = {}, vibrateOnButtonPressFlow = false, onVibrateOnButtonPressFlow = {}, - isOrWasThankYouInstalled = false, + isOrWasThankYouInstalled = true, onThankYou = {}, isUseEnglishEnabled = false, isUseEnglishChecked = false, @@ -114,7 +113,7 @@ private fun SettingsScreenPreview() { onSetupLanguagePress = {}, useCommaAsDecimalMarkFlow = false, onUseCommaAsDecimalMarkFlow = {}, - lockedCustomizeColorText = null, + lockedCustomizeColorText = "Customize Colors", displayLanguage = "English" ) } From cfbd2d5399cad33db30c978f633bc598c2d12790 Mon Sep 17 00:00:00 2001 From: FunkyMuse Date: Fri, 29 Sep 2023 10:31:12 +0200 Subject: [PATCH 2/7] fix: customize colors locked color --- .../calculator/compose/SettingsScreen.kt | 21 ++++++++++--------- gradle/libs.versions.toml | 10 ++++----- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/calculator/compose/SettingsScreen.kt b/app/src/main/kotlin/com/simplemobiletools/calculator/compose/SettingsScreen.kt index 64df13e8..ac3dea48 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calculator/compose/SettingsScreen.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calculator/compose/SettingsScreen.kt @@ -40,12 +40,13 @@ internal fun SettingsScreen( SettingsTitleTextComponent(text = stringResource(id = R.string.color_customization)) }) { SettingsPreferenceComponent( - preferenceTitle = lockedCustomizeColorText, + label = lockedCustomizeColorText, doOnPreferenceClick = customizeColors, isPreferenceEnabled = isOrWasThankYouInstalled, + preferenceLabelColor = MaterialTheme.colorScheme.onSurface ) SettingsPreferenceComponent( - preferenceTitle = stringResource(id = R.string.customize_widget_colors), + label = stringResource(id = R.string.customize_widget_colors), doOnPreferenceClick = customizeWidgetColors ) } @@ -55,37 +56,37 @@ internal fun SettingsScreen( }) { if (!isOrWasThankYouInstalled) { SettingsPreferenceComponent( - preferenceTitle = stringResource(id = R.string.purchase_simple_thank_you), + label = stringResource(id = R.string.purchase_simple_thank_you), doOnPreferenceClick = onThankYou, ) } if (isUseEnglishEnabled) { SettingsCheckBoxComponent( - title = stringResource(id = R.string.use_english_language), + label = stringResource(id = R.string.use_english_language), initialValue = isUseEnglishChecked, onChange = onUseEnglishPress, ) } if (isTiramisuPlus()) { SettingsPreferenceComponent( - preferenceTitle = stringResource(id = R.string.language), - preferenceSummary = displayLanguage, + label = stringResource(id = R.string.language), + value = displayLanguage, doOnPreferenceClick = onSetupLanguagePress, - preferenceSummaryColor = MaterialTheme.colorScheme.onSurface, + preferenceValueColor = MaterialTheme.colorScheme.onSurface, ) } SettingsCheckBoxComponent( - title = stringResource(id = R.string.vibrate_on_button_press), + label = stringResource(id = R.string.vibrate_on_button_press), initialValue = vibrateOnButtonPressFlow, onChange = onVibrateOnButtonPressFlow, ) SettingsCheckBoxComponent( - title = stringResource(id = R.string.prevent_phone_from_sleeping), + label = stringResource(id = R.string.prevent_phone_from_sleeping), initialValue = preventPhoneFromSleeping, onChange = onPreventPhoneFromSleeping, ) SettingsCheckBoxComponent( - title = stringResource(id = com.simplemobiletools.calculator.R.string.use_comma_as_decimal_mark), + label = stringResource(id = com.simplemobiletools.calculator.R.string.use_comma_as_decimal_mark), initialValue = useCommaAsDecimalMarkFlow, onChange = onUseCommaAsDecimalMarkFlow, ) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9e25e6a1..7bde6a6d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -8,10 +8,10 @@ androidx-customView = "1.2.0-alpha02" androidx-customViewPooling = "1.0.0" androidx-lifecycle = "2.7.0-alpha02" #Compose -composeActivity = "1.8.0-beta01" -compose = "1.6.0-alpha05" +composeActivity = "1.8.0-rc01" +compose = "1.6.0-alpha06" composeCompiler = "1.5.3" -composeMaterial3 = "1.2.0-alpha07" +composeMaterial3 = "1.2.0-alpha08" accompanist = "0.33.1-alpha" #AutoFitTextView autofittextview = "0.2.1" @@ -20,9 +20,9 @@ exp4j = "0.4.8" #Room room = "2.5.2" #Simple tools -simple-commons = "fd7f0ed81f" +simple-commons = "5df1c152c5" #Gradle -gradlePlugins-agp = "8.1.1" +gradlePlugins-agp = "8.1.2" #build app-build-compileSDKVersion = "34" app-build-targetSDK = "34" From 5f2568364c97f723f4e7505939d3720c13b3109e Mon Sep 17 00:00:00 2001 From: FunkyMuse Date: Fri, 29 Sep 2023 13:10:40 +0200 Subject: [PATCH 3/7] feat: add feature locked dialog --- .../calculator/activities/SettingsActivity.kt | 12 +++++++++++- .../calculator/compose/SettingsScreen.kt | 17 +++++++++++++---- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/calculator/activities/SettingsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calculator/activities/SettingsActivity.kt index 58c55593..91bddd2e 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calculator/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calculator/activities/SettingsActivity.kt @@ -11,11 +11,13 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.simplemobiletools.calculator.compose.SettingsScreen import com.simplemobiletools.calculator.extensions.* import com.simplemobiletools.commons.activities.CustomizationActivity +import com.simplemobiletools.commons.compose.alert_dialog.rememberAlertDialogState import com.simplemobiletools.commons.compose.extensions.enableEdgeToEdgeSimple import com.simplemobiletools.commons.compose.extensions.onEventValue import com.simplemobiletools.commons.compose.theme.AppThemeSurface import com.simplemobiletools.commons.compose.theme.getAppIconIds import com.simplemobiletools.commons.compose.theme.getAppLauncherName +import com.simplemobiletools.commons.dialogs.FeatureLockedAlertDialog import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.helpers.* import java.util.Locale @@ -44,6 +46,13 @@ class SettingsActivity : AppCompatActivity() { } val isOrWasThankYouInstalled = onEventValue { context.isOrWasThankYouInstalled() } val displayLanguage = remember { Locale.getDefault().displayLanguage } + val featureLockedDialogState = rememberAlertDialogState().apply { + DialogMember { + FeatureLockedAlertDialog(alertDialogState = this) { + + } + } + } SettingsScreen( displayLanguage = displayLanguage, goBack = ::finish, @@ -70,7 +79,8 @@ class SettingsActivity : AppCompatActivity() { applicationContext.calculatorDB.deleteHistory() } }, - lockedCustomizeColorText = getCustomizeColorsString() + lockedCustomizeColorText = getCustomizeColorsString(), + featureLockedDialogState = featureLockedDialogState ) } } diff --git a/app/src/main/kotlin/com/simplemobiletools/calculator/compose/SettingsScreen.kt b/app/src/main/kotlin/com/simplemobiletools/calculator/compose/SettingsScreen.kt index ac3dea48..7e75f07c 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calculator/compose/SettingsScreen.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calculator/compose/SettingsScreen.kt @@ -5,6 +5,8 @@ import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.res.stringResource import com.simplemobiletools.commons.R +import com.simplemobiletools.commons.compose.alert_dialog.AlertDialogState +import com.simplemobiletools.commons.compose.alert_dialog.rememberAlertDialogState import com.simplemobiletools.commons.compose.extensions.MyDevices import com.simplemobiletools.commons.compose.settings.SettingsCheckBoxComponent import com.simplemobiletools.commons.compose.settings.SettingsGroup @@ -33,7 +35,8 @@ internal fun SettingsScreen( useCommaAsDecimalMarkFlow: Boolean, onUseCommaAsDecimalMarkFlow: (Boolean) -> Unit, lockedCustomizeColorText: String, - displayLanguage: String + displayLanguage: String, + featureLockedDialogState : AlertDialogState ) { SettingsScaffold(title = stringResource(id = R.string.settings), goBack = goBack) { SettingsGroup(title = { @@ -41,8 +44,13 @@ internal fun SettingsScreen( }) { SettingsPreferenceComponent( label = lockedCustomizeColorText, - doOnPreferenceClick = customizeColors, - isPreferenceEnabled = isOrWasThankYouInstalled, + doOnPreferenceClick = { + if (isOrWasThankYouInstalled) { + customizeColors() + } else { + featureLockedDialogState.show() + } + }, preferenceLabelColor = MaterialTheme.colorScheme.onSurface ) SettingsPreferenceComponent( @@ -115,7 +123,8 @@ private fun SettingsScreenPreview() { useCommaAsDecimalMarkFlow = false, onUseCommaAsDecimalMarkFlow = {}, lockedCustomizeColorText = "Customize Colors", - displayLanguage = "English" + displayLanguage = "English", + featureLockedDialogState = rememberAlertDialogState() ) } } From ef1895c899f7b443644cbca0dc00b4c07c39d636 Mon Sep 17 00:00:00 2001 From: FunkyMuse Date: Fri, 29 Sep 2023 13:11:19 +0200 Subject: [PATCH 4/7] refactor: extract getFeatureLockedDialogState --- .../calculator/activities/SettingsActivity.kt | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/calculator/activities/SettingsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calculator/activities/SettingsActivity.kt index 91bddd2e..80b90461 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calculator/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calculator/activities/SettingsActivity.kt @@ -46,13 +46,7 @@ class SettingsActivity : AppCompatActivity() { } val isOrWasThankYouInstalled = onEventValue { context.isOrWasThankYouInstalled() } val displayLanguage = remember { Locale.getDefault().displayLanguage } - val featureLockedDialogState = rememberAlertDialogState().apply { - DialogMember { - FeatureLockedAlertDialog(alertDialogState = this) { - - } - } - } + val featureLockedDialogState = getFeatureLockedDialogState() SettingsScreen( displayLanguage = displayLanguage, goBack = ::finish, @@ -86,6 +80,14 @@ class SettingsActivity : AppCompatActivity() { } } + @Composable + private fun getFeatureLockedDialogState() = + rememberAlertDialogState().apply { + DialogMember { + FeatureLockedAlertDialog(alertDialogState = this, callback = {}) + } + } + private fun handleCustomizeColorsClick() { Intent(applicationContext, CustomizationActivity::class.java).apply { putExtra(APP_ICON_IDS, getAppIconIds()) From f5a7222eddf5b68401c9af777bc4ffebfdcc28e0 Mon Sep 17 00:00:00 2001 From: FunkyMuse Date: Mon, 2 Oct 2023 11:31:06 +0200 Subject: [PATCH 5/7] refactor: remove unneeded deps --- app/build.gradle.kts | 1 - gradle/libs.versions.toml | 6 ------ 2 files changed, 7 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 398a85ee..b2eb26ec 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -111,7 +111,6 @@ dependencies { implementation(libs.exp4j) implementation(libs.bundles.lifecycle) implementation(libs.bundles.compose) - implementation(libs.bundles.accompanist) debugImplementation(libs.bundles.compose.preview) implementation(libs.bundles.room) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 7bde6a6d..4cea11e9 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -12,7 +12,6 @@ composeActivity = "1.8.0-rc01" compose = "1.6.0-alpha06" composeCompiler = "1.5.3" composeMaterial3 = "1.2.0-alpha08" -accompanist = "0.33.1-alpha" #AutoFitTextView autofittextview = "0.2.1" #exp4j @@ -65,8 +64,6 @@ auto-fit-text-view = { module = "me.grantland:autofittextview", version.ref = "a simple-tools-commons = { module = "com.github.SimpleMobileTools:Simple-Commons", version.ref = "simple-commons" } #Exp4j exp4j = { module = "net.objecthunter:exp4j", version.ref = "exp4j" } -#Accompanist -accompanist-systemuicontroller = { module = "com.google.accompanist:accompanist-systemuicontroller", version.ref = "accompanist" } [bundles] compose = [ "compose-activity", @@ -88,9 +85,6 @@ room = [ "androidx-room-ktx", "androidx-room-runtime", ] -accompanist = [ - "accompanist-systemuicontroller", -] lifecycle = [ "androidx-lifecycle-compose", "androidx-lifecycle-runtime", From 46e156bca1d2ff5e8aa059efec2984fb65dd9a02 Mon Sep 17 00:00:00 2001 From: FunkyMuse Date: Mon, 16 Oct 2023 10:26:45 +0200 Subject: [PATCH 6/7] feat: update colors, dialogs and deps --- .../calculator/activities/SettingsActivity.kt | 2 +- .../calculator/compose/SettingsScreen.kt | 4 ++-- .../com/simplemobiletools/calculator/helpers/Config.kt | 8 +++----- gradle/libs.versions.toml | 8 ++++---- 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/calculator/activities/SettingsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calculator/activities/SettingsActivity.kt index 80b90461..bdc61ad7 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calculator/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calculator/activities/SettingsActivity.kt @@ -84,7 +84,7 @@ class SettingsActivity : AppCompatActivity() { private fun getFeatureLockedDialogState() = rememberAlertDialogState().apply { DialogMember { - FeatureLockedAlertDialog(alertDialogState = this, callback = {}) + FeatureLockedAlertDialog(alertDialogState = this, cancelCallback = {}) } } diff --git a/app/src/main/kotlin/com/simplemobiletools/calculator/compose/SettingsScreen.kt b/app/src/main/kotlin/com/simplemobiletools/calculator/compose/SettingsScreen.kt index 7e75f07c..835865cf 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calculator/compose/SettingsScreen.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calculator/compose/SettingsScreen.kt @@ -8,11 +8,11 @@ import com.simplemobiletools.commons.R import com.simplemobiletools.commons.compose.alert_dialog.AlertDialogState import com.simplemobiletools.commons.compose.alert_dialog.rememberAlertDialogState import com.simplemobiletools.commons.compose.extensions.MyDevices +import com.simplemobiletools.commons.compose.lists.SimpleColumnScaffold import com.simplemobiletools.commons.compose.settings.SettingsCheckBoxComponent import com.simplemobiletools.commons.compose.settings.SettingsGroup import com.simplemobiletools.commons.compose.settings.SettingsPreferenceComponent import com.simplemobiletools.commons.compose.settings.SettingsTitleTextComponent -import com.simplemobiletools.commons.compose.settings.scaffold.SettingsScaffold import com.simplemobiletools.commons.compose.theme.AppThemeSurface import com.simplemobiletools.commons.compose.theme.divider_grey import com.simplemobiletools.commons.helpers.isTiramisuPlus @@ -38,7 +38,7 @@ internal fun SettingsScreen( displayLanguage: String, featureLockedDialogState : AlertDialogState ) { - SettingsScaffold(title = stringResource(id = R.string.settings), goBack = goBack) { + SimpleColumnScaffold(title = stringResource(id = R.string.settings), goBack = goBack) { SettingsGroup(title = { SettingsTitleTextComponent(text = stringResource(id = R.string.color_customization)) }) { diff --git a/app/src/main/kotlin/com/simplemobiletools/calculator/helpers/Config.kt b/app/src/main/kotlin/com/simplemobiletools/calculator/helpers/Config.kt index 6bbb71a0..ceeec4b8 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calculator/helpers/Config.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calculator/helpers/Config.kt @@ -37,9 +37,7 @@ class Config(context: Context) : BaseConfig(context) { prefs.edit().putString("$CONVERTER_UNITS_PREFIX.${converter.key}", "${topUnit.key},${bottomUnit.key}").apply() } - val preventPhoneFromSleepingFlow: Flow = prefs.run { sharedPreferencesCallback { preventPhoneFromSleeping } }.filterNotNull() - val vibrateOnButtonPressFlow: Flow = prefs.run { sharedPreferencesCallback { vibrateOnButtonPress } }.filterNotNull() - val wasUseEnglishToggledFlow: Flow = prefs.run { sharedPreferencesCallback { wasUseEnglishToggled } }.filterNotNull() - val useEnglishFlow: Flow = prefs.run { sharedPreferencesCallback { useEnglish } }.filterNotNull() - val useCommaAsDecimalMarkFlow: Flow = prefs.run { sharedPreferencesCallback { useCommaAsDecimalMark } }.filterNotNull() + val preventPhoneFromSleepingFlow: Flow = ::preventPhoneFromSleeping.asFlowNonNull() + val vibrateOnButtonPressFlow: Flow = ::vibrateOnButtonPress.asFlowNonNull() + val useCommaAsDecimalMarkFlow: Flow = ::useCommaAsDecimalMark.asFlowNonNull() } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4cea11e9..c0f676bf 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -8,10 +8,10 @@ androidx-customView = "1.2.0-alpha02" androidx-customViewPooling = "1.0.0" androidx-lifecycle = "2.7.0-alpha02" #Compose -composeActivity = "1.8.0-rc01" -compose = "1.6.0-alpha06" +composeActivity = "1.8.0" +compose = "1.6.0-alpha07" composeCompiler = "1.5.3" -composeMaterial3 = "1.2.0-alpha08" +composeMaterial3 = "1.2.0-alpha09" #AutoFitTextView autofittextview = "0.2.1" #exp4j @@ -19,7 +19,7 @@ exp4j = "0.4.8" #Room room = "2.5.2" #Simple tools -simple-commons = "5df1c152c5" +simple-commons = "fd497d3719" #Gradle gradlePlugins-agp = "8.1.2" #build From 4b1de47c1ff1f75e4a5ff5a26d2b4513f95e9051 Mon Sep 17 00:00:00 2001 From: FunkyMuse Date: Mon, 16 Oct 2023 10:40:23 +0200 Subject: [PATCH 7/7] fix: english value color alpha --- .../com/simplemobiletools/calculator/compose/SettingsScreen.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/calculator/compose/SettingsScreen.kt b/app/src/main/kotlin/com/simplemobiletools/calculator/compose/SettingsScreen.kt index 835865cf..ba95f76e 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calculator/compose/SettingsScreen.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calculator/compose/SettingsScreen.kt @@ -80,7 +80,6 @@ internal fun SettingsScreen( label = stringResource(id = R.string.language), value = displayLanguage, doOnPreferenceClick = onSetupLanguagePress, - preferenceValueColor = MaterialTheme.colorScheme.onSurface, ) } SettingsCheckBoxComponent(