mirror of
https://github.com/FossifyOrg/Calculator.git
synced 2025-12-23 23:59:55 -05:00
refactor(settings): remove color customization lock and add thank you button (#144)
This commit is contained in:
@@ -5,21 +5,17 @@ import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import androidx.activity.compose.setContent
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.derivedStateOf
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||
import org.fossify.commons.activities.CustomizationActivity
|
||||
import org.fossify.commons.compose.alert_dialog.rememberAlertDialogState
|
||||
import org.fossify.commons.compose.extensions.enableEdgeToEdgeSimple
|
||||
import org.fossify.commons.compose.extensions.onEventValue
|
||||
import org.fossify.commons.compose.theme.AppThemeSurface
|
||||
import org.fossify.commons.compose.theme.getAppIconIds
|
||||
import org.fossify.commons.compose.theme.getAppLauncherName
|
||||
import org.fossify.commons.dialogs.FeatureLockedAlertDialog
|
||||
import org.fossify.commons.extensions.getCustomizeColorsString
|
||||
import org.fossify.commons.extensions.isOrWasThankYouInstalled
|
||||
import org.fossify.commons.extensions.launchPurchaseThankYouIntent
|
||||
import org.fossify.commons.helpers.APP_ICON_IDS
|
||||
@@ -58,13 +54,14 @@ class SettingsActivity : AppCompatActivity() {
|
||||
(wasUseEnglishToggledFlow || Locale.getDefault().language != "en") && !isTiramisuPlus()
|
||||
}
|
||||
}
|
||||
val isOrWasThankYouInstalled = onEventValue { context.isOrWasThankYouInstalled() }
|
||||
val isOrWasThankYouInstalled = onEventValue {
|
||||
context.isOrWasThankYouInstalled(allowPretend = false)
|
||||
}
|
||||
val displayLanguage = remember { Locale.getDefault().displayLanguage }
|
||||
val featureLockedDialogState = getFeatureLockedDialogState()
|
||||
SettingsScreen(
|
||||
displayLanguage = displayLanguage,
|
||||
goBack = ::finish,
|
||||
customizeColors = ::handleCustomizeColorsClick,
|
||||
customizeColors = ::startCustomizationActivity,
|
||||
customizeWidgetColors = ::setupCustomizeWidgetColors,
|
||||
preventPhoneFromSleeping = preventPhoneFromSleeping,
|
||||
onPreventPhoneFromSleeping = preferences::preventPhoneFromSleeping::set,
|
||||
@@ -80,22 +77,12 @@ class SettingsActivity : AppCompatActivity() {
|
||||
},
|
||||
onSetupLanguagePress = ::launchChangeAppLanguageIntent,
|
||||
showCheckmarksOnSwitches = showCheckmarksOnSwitches,
|
||||
lockedCustomizeColorText = getCustomizeColorsString(),
|
||||
featureLockedDialogState = featureLockedDialogState
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun getFeatureLockedDialogState() =
|
||||
rememberAlertDialogState().apply {
|
||||
DialogMember {
|
||||
FeatureLockedAlertDialog(alertDialogState = this, cancelCallback = {})
|
||||
}
|
||||
}
|
||||
|
||||
private fun handleCustomizeColorsClick() {
|
||||
private fun startCustomizationActivity() {
|
||||
Intent(applicationContext, CustomizationActivity::class.java).apply {
|
||||
putExtra(APP_ICON_IDS, getAppIconIds())
|
||||
putExtra(APP_LAUNCHER_NAME, getAppLauncherName())
|
||||
|
||||
@@ -5,8 +5,6 @@ import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||
import org.fossify.commons.compose.alert_dialog.AlertDialogState
|
||||
import org.fossify.commons.compose.alert_dialog.rememberAlertDialogState
|
||||
import org.fossify.commons.compose.extensions.BooleanPreviewParameterProvider
|
||||
import org.fossify.commons.compose.extensions.MyDevices
|
||||
import org.fossify.commons.compose.lists.SimpleColumnScaffold
|
||||
@@ -35,9 +33,7 @@ internal fun SettingsScreen(
|
||||
onUseEnglishPress: (Boolean) -> Unit,
|
||||
onSetupLanguagePress: () -> Unit,
|
||||
showCheckmarksOnSwitches: Boolean,
|
||||
lockedCustomizeColorText: String,
|
||||
displayLanguage: String,
|
||||
featureLockedDialogState: AlertDialogState
|
||||
displayLanguage: String
|
||||
) {
|
||||
SimpleColumnScaffold(
|
||||
title = stringResource(id = org.fossify.commons.R.string.settings),
|
||||
@@ -47,13 +43,9 @@ internal fun SettingsScreen(
|
||||
SettingsTitleTextComponent(text = stringResource(id = org.fossify.commons.R.string.color_customization))
|
||||
}) {
|
||||
SettingsPreferenceComponent(
|
||||
label = lockedCustomizeColorText,
|
||||
label = stringResource(id = org.fossify.commons.R.string.customize_colors),
|
||||
doOnPreferenceClick = {
|
||||
if (isOrWasThankYouInstalled) {
|
||||
customizeColors()
|
||||
} else {
|
||||
featureLockedDialogState.show()
|
||||
}
|
||||
customizeColors()
|
||||
},
|
||||
preferenceLabelColor = MaterialTheme.colorScheme.onSurface
|
||||
)
|
||||
@@ -123,9 +115,7 @@ private fun SettingsScreenPreview(
|
||||
isUseEnglishChecked = false,
|
||||
onUseEnglishPress = {},
|
||||
onSetupLanguagePress = {},
|
||||
lockedCustomizeColorText = "Customize Colors",
|
||||
displayLanguage = "English",
|
||||
featureLockedDialogState = rememberAlertDialogState(),
|
||||
showCheckmarksOnSwitches = showCheckmarksOnSwitches
|
||||
)
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ evalex = "3.5.0"
|
||||
#Room
|
||||
room = "2.7.2"
|
||||
#Fossify
|
||||
commons = "4.4.2"
|
||||
commons = "5.0.0"
|
||||
#Gradle
|
||||
gradlePlugins-agp = "8.11.1"
|
||||
#build
|
||||
|
||||
Reference in New Issue
Block a user