refactor: migrate to latest commons and compose
This commit is contained in:
parent
51bd8a736c
commit
1a7070c278
|
@ -8,23 +8,18 @@ import androidx.compose.runtime.*
|
||||||
import androidx.compose.runtime.snapshots.SnapshotStateList
|
import androidx.compose.runtime.snapshots.SnapshotStateList
|
||||||
import com.simplemobiletools.commons.compose.alert_dialog.AlertDialogState
|
import com.simplemobiletools.commons.compose.alert_dialog.AlertDialogState
|
||||||
import com.simplemobiletools.commons.compose.alert_dialog.rememberAlertDialogState
|
import com.simplemobiletools.commons.compose.alert_dialog.rememberAlertDialogState
|
||||||
import com.simplemobiletools.commons.compose.extensions.enableEdgeToEdgeSimple
|
import com.simplemobiletools.commons.compose.extensions.*
|
||||||
import com.simplemobiletools.commons.compose.extensions.linkColor
|
|
||||||
import com.simplemobiletools.commons.compose.extensions.onEventValue
|
|
||||||
import com.simplemobiletools.commons.compose.theme.AppThemeSurface
|
import com.simplemobiletools.commons.compose.theme.AppThemeSurface
|
||||||
import com.simplemobiletools.commons.dialogs.DonateAlertDialog
|
import com.simplemobiletools.commons.dialogs.DonateAlertDialog
|
||||||
import com.simplemobiletools.commons.dialogs.RateStarsAlertDialog
|
import com.simplemobiletools.commons.dialogs.RateStarsAlertDialog
|
||||||
import com.simplemobiletools.commons.dialogs.UpgradeToProAlertDialog
|
|
||||||
import com.simplemobiletools.commons.dialogs.WhatsNewAlertDialog
|
import com.simplemobiletools.commons.dialogs.WhatsNewAlertDialog
|
||||||
import com.simplemobiletools.commons.extensions.*
|
import com.simplemobiletools.commons.extensions.hideKeyboard
|
||||||
|
import com.simplemobiletools.commons.extensions.launchMoreAppsFromUsIntent
|
||||||
import com.simplemobiletools.commons.models.FAQItem
|
import com.simplemobiletools.commons.models.FAQItem
|
||||||
import com.simplemobiletools.commons.models.Release
|
import com.simplemobiletools.commons.models.Release
|
||||||
import com.simplemobiletools.thankyou.BuildConfig
|
import com.simplemobiletools.thankyou.BuildConfig
|
||||||
import com.simplemobiletools.thankyou.R
|
import com.simplemobiletools.thankyou.R
|
||||||
import com.simplemobiletools.thankyou.extensions.startAboutActivity
|
import com.simplemobiletools.thankyou.extensions.startAboutActivity
|
||||||
import com.simplemobiletools.thankyou.helpers.appLaunchedCompose
|
|
||||||
import com.simplemobiletools.thankyou.helpers.checkWhatsNewCompose
|
|
||||||
import com.simplemobiletools.thankyou.helpers.upgradeToPro
|
|
||||||
import com.simplemobiletools.thankyou.screens.MainScreen
|
import com.simplemobiletools.thankyou.screens.MainScreen
|
||||||
import kotlinx.collections.immutable.toImmutableList
|
import kotlinx.collections.immutable.toImmutableList
|
||||||
|
|
||||||
|
@ -55,14 +50,13 @@ class MainActivity : ComponentActivity() {
|
||||||
private fun AppLaunched(
|
private fun AppLaunched(
|
||||||
donateAlertDialogState: AlertDialogState = getDonateAlertDialogState(),
|
donateAlertDialogState: AlertDialogState = getDonateAlertDialogState(),
|
||||||
rateStarsAlertDialogState: AlertDialogState = getRateStarsAlertDialogState(),
|
rateStarsAlertDialogState: AlertDialogState = getRateStarsAlertDialogState(),
|
||||||
upgradeToProAlertDialogState: AlertDialogState = getUpgradeToProAlertDialogState()
|
|
||||||
) {
|
) {
|
||||||
LaunchedEffect(Unit) {
|
LaunchedEffect(Unit) {
|
||||||
appLaunchedCompose(
|
appLaunchedCompose(
|
||||||
appId = BuildConfig.APPLICATION_ID,
|
appId = BuildConfig.APPLICATION_ID,
|
||||||
showDonateDialog = donateAlertDialogState::show,
|
showDonateDialog = donateAlertDialogState::show,
|
||||||
showRateUsDialog = rateStarsAlertDialogState::show,
|
showRateUsDialog = rateStarsAlertDialogState::show,
|
||||||
showUpgradeDialog = upgradeToProAlertDialogState::show
|
showUpgradeDialog = {}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -90,16 +84,6 @@ class MainActivity : ComponentActivity() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
|
||||||
private fun getUpgradeToProAlertDialogState() = rememberAlertDialogState().apply {
|
|
||||||
DialogMember {
|
|
||||||
UpgradeToProAlertDialog(
|
|
||||||
alertDialogState = this, onMoreInfoClick = ::upgradeToPro, onUpgradeClick = ::launchUpgradeToProIntent
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun getCheckWhatsNewAlertDialogState(releasesList: SnapshotStateList<Release>) = rememberAlertDialogState().apply {
|
private fun getCheckWhatsNewAlertDialogState(releasesList: SnapshotStateList<Release>) = rememberAlertDialogState().apply {
|
||||||
DialogMember {
|
DialogMember {
|
||||||
|
@ -118,13 +102,7 @@ class MainActivity : ComponentActivity() {
|
||||||
@Composable
|
@Composable
|
||||||
private fun getRateStarsAlertDialogState() = rememberAlertDialogState().apply {
|
private fun getRateStarsAlertDialogState() = rememberAlertDialogState().apply {
|
||||||
DialogMember {
|
DialogMember {
|
||||||
RateStarsAlertDialog(alertDialogState = this) { stars ->
|
RateStarsAlertDialog(alertDialogState = this, onRating = ::rateStarsRedirectAndThankYou)
|
||||||
if (stars == 5) {
|
|
||||||
redirectToRateUs()
|
|
||||||
}
|
|
||||||
toast(com.simplemobiletools.commons.R.string.thank_you)
|
|
||||||
baseConfig.wasAppRated = true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,21 +4,12 @@ import android.annotation.SuppressLint
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import androidx.activity.ComponentActivity
|
import androidx.activity.ComponentActivity
|
||||||
import androidx.activity.compose.setContent
|
import androidx.activity.compose.setContent
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
|
||||||
import androidx.compose.material3.AlertDialog
|
|
||||||
import androidx.compose.material3.MaterialTheme
|
|
||||||
import androidx.compose.material3.Text
|
|
||||||
import androidx.compose.material3.TextButton
|
|
||||||
import androidx.compose.runtime.*
|
import androidx.compose.runtime.*
|
||||||
import androidx.compose.ui.Modifier
|
|
||||||
import androidx.compose.ui.res.stringResource
|
|
||||||
import androidx.compose.ui.window.DialogProperties
|
|
||||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||||
import com.simplemobiletools.commons.compose.alert_dialog.AlertDialogState
|
|
||||||
import com.simplemobiletools.commons.compose.alert_dialog.rememberAlertDialogState
|
import com.simplemobiletools.commons.compose.alert_dialog.rememberAlertDialogState
|
||||||
import com.simplemobiletools.commons.compose.extensions.enableEdgeToEdgeSimple
|
import com.simplemobiletools.commons.compose.extensions.enableEdgeToEdgeSimple
|
||||||
import com.simplemobiletools.commons.compose.theme.AppThemeSurface
|
import com.simplemobiletools.commons.compose.theme.AppThemeSurface
|
||||||
import com.simplemobiletools.commons.compose.theme.Shapes
|
import com.simplemobiletools.commons.dialogs.ConfirmationAdvancedAlertDialog
|
||||||
import com.simplemobiletools.commons.extensions.getAppIconColors
|
import com.simplemobiletools.commons.extensions.getAppIconColors
|
||||||
import com.simplemobiletools.commons.extensions.toggleAppIconColor
|
import com.simplemobiletools.commons.extensions.toggleAppIconColor
|
||||||
import com.simplemobiletools.commons.helpers.isTiramisuPlus
|
import com.simplemobiletools.commons.helpers.isTiramisuPlus
|
||||||
|
@ -50,8 +41,7 @@ class SettingsActivity : ComponentActivity() {
|
||||||
(wasUseEnglishToggledFlow || Locale.getDefault().language != "en") && !isTiramisuPlus()
|
(wasUseEnglishToggledFlow || Locale.getDefault().language != "en") && !isTiramisuPlus()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
val alertDialogState = rememberAlertDialogState()
|
val confirmHideIconAlertDialogState = getConfirmHideIconAlertDialogState()
|
||||||
ConfirmationHideLauncherDialog(alertDialogState)
|
|
||||||
|
|
||||||
SettingsScreen(
|
SettingsScreen(
|
||||||
displayLanguage = displayLanguage,
|
displayLanguage = displayLanguage,
|
||||||
|
@ -65,7 +55,7 @@ class SettingsActivity : ComponentActivity() {
|
||||||
isHidingLauncherIcon = hideLauncherIconFlow,
|
isHidingLauncherIcon = hideLauncherIconFlow,
|
||||||
hideLauncherIconClick = { isChecked ->
|
hideLauncherIconClick = { isChecked ->
|
||||||
if (isChecked) {
|
if (isChecked) {
|
||||||
alertDialogState.show()
|
confirmHideIconAlertDialogState.show()
|
||||||
} else {
|
} else {
|
||||||
toggleHideLauncherIcon()
|
toggleHideLauncherIcon()
|
||||||
preferences.hideLauncherIcon = false
|
preferences.hideLauncherIcon = false
|
||||||
|
@ -79,37 +69,20 @@ class SettingsActivity : ComponentActivity() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun ConfirmationHideLauncherDialog(alertDialogState: AlertDialogState) {
|
private fun getConfirmHideIconAlertDialogState() =
|
||||||
alertDialogState.DialogMember {
|
rememberAlertDialogState().apply {
|
||||||
AlertDialog(
|
DialogMember {
|
||||||
modifier = Modifier.fillMaxWidth(0.9f),
|
ConfirmationAdvancedAlertDialog(
|
||||||
properties = DialogProperties(usePlatformDefaultWidth = false),
|
alertDialogState = this,
|
||||||
onDismissRequest = alertDialogState::hide,
|
messageId = R.string.hide_launcher_icon_explanation,
|
||||||
confirmButton = {
|
positive = R.string.ok,
|
||||||
TextButton(onClick = {
|
negative = R.string.cancel
|
||||||
alertDialogState.hide()
|
) { hideIcon ->
|
||||||
preferences.hideLauncherIcon = true
|
preferences.hideLauncherIcon = hideIcon
|
||||||
|
if (hideIcon) {
|
||||||
toggleHideLauncherIcon()
|
toggleHideLauncherIcon()
|
||||||
}) {
|
|
||||||
Text(text = stringResource(id = R.string.ok))
|
|
||||||
}
|
}
|
||||||
},
|
|
||||||
dismissButton = {
|
|
||||||
TextButton(onClick = {
|
|
||||||
alertDialogState.hide()
|
|
||||||
preferences.hideLauncherIcon = false
|
|
||||||
}) {
|
|
||||||
Text(text = stringResource(id = R.string.cancel))
|
|
||||||
}
|
}
|
||||||
},
|
|
||||||
shape = Shapes.large,
|
|
||||||
text = {
|
|
||||||
Text(
|
|
||||||
text = stringResource(id = R.string.hide_launcher_icon_explanation),
|
|
||||||
color = MaterialTheme.colorScheme.onSurface
|
|
||||||
)
|
|
||||||
},
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,9 +8,7 @@ import android.os.Build
|
||||||
import android.provider.Settings
|
import android.provider.Settings
|
||||||
import androidx.annotation.RequiresApi
|
import androidx.annotation.RequiresApi
|
||||||
import com.simplemobiletools.commons.activities.AboutActivity
|
import com.simplemobiletools.commons.activities.AboutActivity
|
||||||
import com.simplemobiletools.commons.activities.BaseSimpleActivity
|
|
||||||
import com.simplemobiletools.commons.activities.CustomizationActivity
|
import com.simplemobiletools.commons.activities.CustomizationActivity
|
||||||
import com.simplemobiletools.commons.compose.theme.getAppLauncherName
|
|
||||||
import com.simplemobiletools.commons.dialogs.ConfirmationDialog
|
import com.simplemobiletools.commons.dialogs.ConfirmationDialog
|
||||||
import com.simplemobiletools.commons.dialogs.WhatsNewDialog
|
import com.simplemobiletools.commons.dialogs.WhatsNewDialog
|
||||||
import com.simplemobiletools.commons.extensions.baseConfig
|
import com.simplemobiletools.commons.extensions.baseConfig
|
||||||
|
|
|
@ -1,13 +1,12 @@
|
||||||
package com.simplemobiletools.thankyou.helpers
|
package com.simplemobiletools.thankyou.helpers
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import com.simplemobiletools.commons.extensions.sharedPreferencesCallback
|
|
||||||
import com.simplemobiletools.commons.helpers.BaseConfig
|
import com.simplemobiletools.commons.helpers.BaseConfig
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
import kotlinx.coroutines.flow.filterNotNull
|
|
||||||
|
|
||||||
class Config(context: Context) : BaseConfig(context) {
|
class Config(context: Context) : BaseConfig(context) {
|
||||||
companion object {
|
companion object {
|
||||||
|
const val HIDE_LAUNCHER_ICON = "hide_launcher_icon"
|
||||||
fun newInstance(context: Context) = Config(context)
|
fun newInstance(context: Context) = Config(context)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,7 +14,7 @@ class Config(context: Context) : BaseConfig(context) {
|
||||||
get() = prefs.getBoolean(HIDE_LAUNCHER_ICON, false)
|
get() = prefs.getBoolean(HIDE_LAUNCHER_ICON, false)
|
||||||
set(hideLauncherIcon) = prefs.edit().putBoolean(HIDE_LAUNCHER_ICON, hideLauncherIcon).apply()
|
set(hideLauncherIcon) = prefs.edit().putBoolean(HIDE_LAUNCHER_ICON, hideLauncherIcon).apply()
|
||||||
|
|
||||||
val hideLauncherIconFlow: Flow<Boolean> = prefs.run { sharedPreferencesCallback { hideLauncherIcon } }.filterNotNull()
|
val hideLauncherIconFlow: Flow<Boolean> = ::hideLauncherIcon.asFlowNonNull()
|
||||||
val wasUseEnglishToggledFlow: Flow<Boolean> = prefs.run { sharedPreferencesCallback { wasUseEnglishToggled } }.filterNotNull()
|
val wasUseEnglishToggledFlow: Flow<Boolean> = ::wasUseEnglishToggled.asFlowNonNull()
|
||||||
val useEnglishFlow: Flow<Boolean> = prefs.run { sharedPreferencesCallback { useEnglish } }.filterNotNull()
|
val useEnglishFlow: Flow<Boolean> = ::useEnglish.asFlowNonNull()
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
package com.simplemobiletools.thankyou.helpers
|
|
||||||
|
|
||||||
import androidx.compose.material3.Typography
|
|
||||||
|
|
||||||
// Shared Preferences
|
|
||||||
const val HIDE_LAUNCHER_ICON = "hide_launcher_icon"
|
|
||||||
|
|
||||||
val typography = Typography(
|
|
||||||
|
|
||||||
)
|
|
|
@ -1,86 +0,0 @@
|
||||||
package com.simplemobiletools.thankyou.helpers
|
|
||||||
|
|
||||||
import android.content.ComponentName
|
|
||||||
import android.content.Context
|
|
||||||
import android.content.pm.PackageManager
|
|
||||||
import androidx.activity.ComponentActivity
|
|
||||||
import com.simplemobiletools.commons.extensions.*
|
|
||||||
import com.simplemobiletools.commons.models.Release
|
|
||||||
import com.simplemobiletools.thankyou.R
|
|
||||||
|
|
||||||
fun ComponentActivity.appLaunchedCompose(
|
|
||||||
appId: String,
|
|
||||||
showUpgradeDialog: () -> Unit,
|
|
||||||
showDonateDialog: () -> Unit,
|
|
||||||
showRateUsDialog: () -> Unit
|
|
||||||
) {
|
|
||||||
baseConfig.internalStoragePath = getInternalStoragePath()
|
|
||||||
updateSDCardPath()
|
|
||||||
baseConfig.appId = appId
|
|
||||||
if (baseConfig.appRunCount == 0) {
|
|
||||||
baseConfig.wasOrangeIconChecked = true
|
|
||||||
checkAppIconColor()
|
|
||||||
} else if (!baseConfig.wasOrangeIconChecked) {
|
|
||||||
baseConfig.wasOrangeIconChecked = true
|
|
||||||
val primaryColor = resources.getColor(R.color.color_primary)
|
|
||||||
if (baseConfig.appIconColor != primaryColor) {
|
|
||||||
getAppIconColors().forEachIndexed { index, color ->
|
|
||||||
toggleAppIconColor(appId, index, color, false)
|
|
||||||
}
|
|
||||||
|
|
||||||
val defaultClassName = "${baseConfig.appId.removeSuffix(".debug")}.activities.SplashActivity"
|
|
||||||
packageManager.setComponentEnabledSetting(
|
|
||||||
ComponentName(baseConfig.appId, defaultClassName),
|
|
||||||
PackageManager.COMPONENT_ENABLED_STATE_DEFAULT,
|
|
||||||
PackageManager.DONT_KILL_APP
|
|
||||||
)
|
|
||||||
|
|
||||||
val orangeClassName = "${baseConfig.appId.removeSuffix(".debug")}.activities.SplashActivity.Orange"
|
|
||||||
packageManager.setComponentEnabledSetting(
|
|
||||||
ComponentName(baseConfig.appId, orangeClassName),
|
|
||||||
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
|
|
||||||
PackageManager.DONT_KILL_APP
|
|
||||||
)
|
|
||||||
|
|
||||||
baseConfig.appIconColor = primaryColor
|
|
||||||
baseConfig.lastIconColor = primaryColor
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
baseConfig.appRunCount++
|
|
||||||
if (baseConfig.appRunCount % 30 == 0 && !isAProApp()) {
|
|
||||||
if (!resources.getBoolean(R.bool.hide_google_relations)) {
|
|
||||||
if (getCanAppBeUpgraded()) {
|
|
||||||
showUpgradeDialog()
|
|
||||||
} else if (!isOrWasThankYouInstalled()) {
|
|
||||||
showDonateDialog()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (baseConfig.appRunCount % 40 == 0 && !baseConfig.wasAppRated) {
|
|
||||||
if (!resources.getBoolean(R.bool.hide_google_relations)) {
|
|
||||||
showRateUsDialog()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fun ComponentActivity.checkWhatsNewCompose(releases: List<Release>, currVersion: Int, showWhatsNewDialog: (List<Release>) -> Unit) {
|
|
||||||
if (baseConfig.lastVersion == 0) {
|
|
||||||
baseConfig.lastVersion = currVersion
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
val newReleases = arrayListOf<Release>()
|
|
||||||
releases.filterTo(newReleases) { it.id > baseConfig.lastVersion }
|
|
||||||
|
|
||||||
if (newReleases.isNotEmpty()) {
|
|
||||||
showWhatsNewDialog(newReleases)
|
|
||||||
}
|
|
||||||
|
|
||||||
baseConfig.lastVersion = currVersion
|
|
||||||
}
|
|
||||||
|
|
||||||
fun ComponentActivity.upgradeToPro() {
|
|
||||||
launchViewIntent("https://simplemobiletools.com/upgrade_to_pro")
|
|
||||||
}
|
|
|
@ -25,6 +25,7 @@ import com.simplemobiletools.commons.compose.menus.ActionMenu
|
||||||
import com.simplemobiletools.commons.compose.menus.OverflowMode
|
import com.simplemobiletools.commons.compose.menus.OverflowMode
|
||||||
import com.simplemobiletools.commons.compose.settings.scaffold.*
|
import com.simplemobiletools.commons.compose.settings.scaffold.*
|
||||||
import com.simplemobiletools.commons.compose.theme.AppThemeSurface
|
import com.simplemobiletools.commons.compose.theme.AppThemeSurface
|
||||||
|
import com.simplemobiletools.commons.compose.theme.SimpleTheme
|
||||||
import kotlinx.collections.immutable.toImmutableList
|
import kotlinx.collections.immutable.toImmutableList
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
@ -39,18 +40,7 @@ internal fun MainScreen(
|
||||||
TopAppBar(
|
TopAppBar(
|
||||||
title = {},
|
title = {},
|
||||||
actions = {
|
actions = {
|
||||||
val actionMenus = remember {
|
val actionMenus = rememberActionItems(openSettings, openAbout, showMoreApps, moreAppsFromUs)
|
||||||
val settings =
|
|
||||||
ActionItem(R.string.settings, icon = Icons.Filled.Settings, doAction = openSettings, overflowMode = OverflowMode.NEVER_OVERFLOW)
|
|
||||||
val about = ActionItem(R.string.about, icon = Icons.Outlined.Info, doAction = openAbout, overflowMode = OverflowMode.NEVER_OVERFLOW)
|
|
||||||
|
|
||||||
val list = if (showMoreApps) {
|
|
||||||
listOf(settings, about, ActionItem(R.string.more_apps_from_us, doAction = moreAppsFromUs, overflowMode = OverflowMode.ALWAYS_OVERFLOW))
|
|
||||||
} else {
|
|
||||||
listOf(settings, about)
|
|
||||||
}
|
|
||||||
list.toImmutableList()
|
|
||||||
}
|
|
||||||
var isMenuVisible by remember { mutableStateOf(false) }
|
var isMenuVisible by remember { mutableStateOf(false) }
|
||||||
ActionMenu(items = actionMenus, numIcons = 2, isMenuVisible = isMenuVisible, onMenuToggle = { isMenuVisible = it }, iconsColor = scrolledColor)
|
ActionMenu(items = actionMenus, numIcons = 2, isMenuVisible = isMenuVisible, onMenuToggle = { isMenuVisible = it }, iconsColor = scrolledColor)
|
||||||
},
|
},
|
||||||
|
@ -60,7 +50,7 @@ internal fun MainScreen(
|
||||||
windowInsets = topAppBarInsets()
|
windowInsets = topAppBarInsets()
|
||||||
)
|
)
|
||||||
}) { paddingValues ->
|
}) { paddingValues ->
|
||||||
val textColor = MaterialTheme.colorScheme.onSurface.toArgb()
|
val textColor = SimpleTheme.colorScheme.onSurface.toArgb()
|
||||||
|
|
||||||
AndroidView(
|
AndroidView(
|
||||||
factory = { context ->
|
factory = { context ->
|
||||||
|
@ -84,10 +74,29 @@ internal fun MainScreen(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
private fun rememberActionItems(
|
||||||
|
openSettings: () -> Unit,
|
||||||
|
openAbout: () -> Unit,
|
||||||
|
showMoreApps: Boolean,
|
||||||
|
moreAppsFromUs: () -> Unit
|
||||||
|
) = remember {
|
||||||
|
val settings =
|
||||||
|
ActionItem(R.string.settings, icon = Icons.Filled.Settings, doAction = openSettings, overflowMode = OverflowMode.NEVER_OVERFLOW)
|
||||||
|
val about = ActionItem(R.string.about, icon = Icons.Outlined.Info, doAction = openAbout, overflowMode = OverflowMode.NEVER_OVERFLOW)
|
||||||
|
|
||||||
|
val list = if (showMoreApps) {
|
||||||
|
listOf(settings, about, ActionItem(R.string.more_apps_from_us, doAction = moreAppsFromUs, overflowMode = OverflowMode.ALWAYS_OVERFLOW))
|
||||||
|
} else {
|
||||||
|
listOf(settings, about)
|
||||||
|
}
|
||||||
|
list.toImmutableList()
|
||||||
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
@MyDevices
|
@MyDevices
|
||||||
private fun MainScreenPreview() {
|
private fun MainScreenPreview() {
|
||||||
AppThemeSurface {
|
AppThemeSurface {
|
||||||
MainScreen(showMoreApps = true, openSettings = {}, openAbout = {}, moreAppsFromUs = {}, linkColor = MaterialTheme.colorScheme.onSurface)
|
MainScreen(showMoreApps = true, openSettings = {}, openAbout = {}, moreAppsFromUs = {}, linkColor = SimpleTheme.colorScheme.onSurface)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
package com.simplemobiletools.thankyou.screens
|
package com.simplemobiletools.thankyou.screens
|
||||||
|
|
||||||
import androidx.compose.material3.HorizontalDivider
|
import androidx.compose.material3.HorizontalDivider
|
||||||
import androidx.compose.material3.MaterialTheme
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import com.simplemobiletools.commons.R
|
import com.simplemobiletools.commons.R
|
||||||
|
@ -12,6 +11,7 @@ import com.simplemobiletools.commons.compose.settings.SettingsPreferenceComponen
|
||||||
import com.simplemobiletools.commons.compose.settings.SettingsTitleTextComponent
|
import com.simplemobiletools.commons.compose.settings.SettingsTitleTextComponent
|
||||||
import com.simplemobiletools.commons.compose.settings.scaffold.SettingsScaffold
|
import com.simplemobiletools.commons.compose.settings.scaffold.SettingsScaffold
|
||||||
import com.simplemobiletools.commons.compose.theme.AppThemeSurface
|
import com.simplemobiletools.commons.compose.theme.AppThemeSurface
|
||||||
|
import com.simplemobiletools.commons.compose.theme.SimpleTheme
|
||||||
import com.simplemobiletools.commons.compose.theme.divider_grey
|
import com.simplemobiletools.commons.compose.theme.divider_grey
|
||||||
import com.simplemobiletools.commons.helpers.isTiramisuPlus
|
import com.simplemobiletools.commons.helpers.isTiramisuPlus
|
||||||
|
|
||||||
|
@ -53,7 +53,7 @@ internal fun SettingsScreen(
|
||||||
label = stringResource(id = R.string.language),
|
label = stringResource(id = R.string.language),
|
||||||
value = displayLanguage,
|
value = displayLanguage,
|
||||||
doOnPreferenceClick = onSetupLanguagePress,
|
doOnPreferenceClick = onSetupLanguagePress,
|
||||||
preferenceLabelColor = MaterialTheme.colorScheme.onSurface,
|
preferenceLabelColor = SimpleTheme.colorScheme.onSurface,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
SettingsCheckBoxComponent(
|
SettingsCheckBoxComponent(
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
#jetbrains
|
#jetbrains
|
||||||
kotlin = "1.9.10"
|
kotlin = "1.9.10"
|
||||||
#Simple tools
|
#Simple tools
|
||||||
simple-commons = "a32b3b41a5"
|
simple-commons = "dfe8acfbf9"
|
||||||
#Compose
|
#Compose
|
||||||
composeActivity = "1.8.0-rc01"
|
composeActivity = "1.8.0-rc01"
|
||||||
compose = "1.6.0-alpha06"
|
compose = "1.6.0-alpha06"
|
||||||
|
|
Loading…
Reference in New Issue