refactor(settings): remove color customization lock and add thank you button (#144)

This commit is contained in:
Naveen Singh
2025-08-25 04:02:22 +05:30
committed by GitHub
parent 4489401837
commit 16ec7a2d82
3 changed files with 9 additions and 32 deletions

View File

@@ -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())

View File

@@ -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
)
}

View File

@@ -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