refactor preferences
This commit is contained in:
parent
f3ebe85e30
commit
f93210b62b
|
@ -14,22 +14,19 @@ class MusicDownloader(
|
|||
private val context: Context,
|
||||
) : AppDownloader() {
|
||||
|
||||
private val version by musicVersionPref
|
||||
private val variant by managerVariantPref
|
||||
|
||||
private lateinit var absoluteVersion: String
|
||||
|
||||
override suspend fun download(
|
||||
appVersions: List<String>?,
|
||||
onStatus: (DownloadStatus) -> Unit
|
||||
) {
|
||||
absoluteVersion = getLatestOrProvidedAppVersion(version, appVersions)
|
||||
absoluteVersion = getLatestOrProvidedAppVersion(musicVersionPref, appVersions)
|
||||
|
||||
downloadFiles(
|
||||
downloadFiles = arrayOf(DownloadFile(
|
||||
call = musicAPI.getFiles(
|
||||
version = absoluteVersion,
|
||||
variant = variant,
|
||||
variant = managerVariantPref,
|
||||
),
|
||||
fileName = "music.apk"
|
||||
)),
|
||||
|
@ -53,7 +50,7 @@ class MusicDownloader(
|
|||
|
||||
override fun getSavedFilePath(): String {
|
||||
val directory =
|
||||
File(context.getExternalFilesDir("vancedmusic")!!.path + "$absoluteVersion/$variant")
|
||||
File(context.getExternalFilesDir("vancedmusic")!!.path + "$absoluteVersion/$managerVariantPref")
|
||||
|
||||
if (!directory.exists())
|
||||
directory.mkdirs()
|
||||
|
|
|
@ -17,29 +17,24 @@ class VancedDownloader(
|
|||
private val context: Context,
|
||||
) : AppDownloader() {
|
||||
|
||||
private val theme by vancedThemePref
|
||||
private val version by vancedVersionPref
|
||||
private val variant by managerVariantPref
|
||||
private val languages by vancedLanguagesPref
|
||||
|
||||
private lateinit var absoluteVersion: String
|
||||
|
||||
override suspend fun download(
|
||||
appVersions: List<String>?,
|
||||
onStatus: (DownloadStatus) -> Unit
|
||||
) {
|
||||
absoluteVersion = getLatestOrProvidedAppVersion(version, appVersions)
|
||||
absoluteVersion = getLatestOrProvidedAppVersion(vancedVersionPref, appVersions)
|
||||
|
||||
val files = arrayOf(
|
||||
getFile(
|
||||
type = "Theme",
|
||||
apkName = "$theme.apk",
|
||||
apkName = "$vancedThemePref.apk",
|
||||
),
|
||||
getFile(
|
||||
type = "Arch",
|
||||
apkName = "split_config.$arch.apk",
|
||||
)
|
||||
) + languages.map { language ->
|
||||
) + vancedLanguagesPref.map { language ->
|
||||
getFile(
|
||||
type = "Language",
|
||||
apkName = "split_config.$language.apk",
|
||||
|
@ -68,7 +63,7 @@ class VancedDownloader(
|
|||
|
||||
override fun getSavedFilePath(): String {
|
||||
val directory =
|
||||
File(context.getExternalFilesDir("vanced")!!.path + "/$absoluteVersion/$variant")
|
||||
File(context.getExternalFilesDir("vanced")!!.path + "/$absoluteVersion/$managerVariantPref")
|
||||
|
||||
if (!directory.exists())
|
||||
directory.mkdirs()
|
||||
|
@ -82,7 +77,7 @@ class VancedDownloader(
|
|||
) = DownloadFile(
|
||||
call = vancedAPI.getFiles(
|
||||
version = absoluteVersion,
|
||||
variant = variant,
|
||||
variant = managerVariantPref,
|
||||
type = type,
|
||||
apkName = apkName
|
||||
),
|
||||
|
|
|
@ -12,10 +12,9 @@ class MusicInstaller(
|
|||
) : AppInstaller() {
|
||||
|
||||
override fun install(appVersions: List<String>?) {
|
||||
val version by musicVersionPref
|
||||
val variant by managerVariantPref
|
||||
|
||||
val musicApk = File(context.getExternalFilesDir("music/$version/$variant/music.apk")!!.path)
|
||||
val musicApk = File(
|
||||
context.getExternalFilesDir("music/$musicVersionPref/$managerVariantPref/music.apk")!!.path
|
||||
)
|
||||
|
||||
installApp(musicApk, context)
|
||||
}
|
||||
|
|
|
@ -12,13 +12,10 @@ class VancedInstaller(
|
|||
) : AppInstaller() {
|
||||
|
||||
override fun install(appVersions: List<String>?) {
|
||||
val version by vancedVersionPref
|
||||
val variant by managerVariantPref
|
||||
|
||||
val absoluteVersion = getLatestOrProvidedAppVersion(version, appVersions)
|
||||
val absoluteVersion = getLatestOrProvidedAppVersion(vancedVersionPref, appVersions)
|
||||
|
||||
val apks = context
|
||||
.getExternalFilesDir("vanced/$absoluteVersion/$variant")!!
|
||||
.getExternalFilesDir("vanced/$absoluteVersion/$managerVariantPref")!!
|
||||
.listFiles { file ->
|
||||
file.extension == "apk"
|
||||
}
|
||||
|
|
|
@ -6,18 +6,17 @@ import com.vanced.manager.core.preferences.managerStringPreference
|
|||
import com.vanced.manager.core.preferences.managerStringSetPreference
|
||||
import com.vanced.manager.ui.theme.defAccentColor
|
||||
|
||||
val useCustomTabsPref = managerBooleanPreference(USE_CUSTOM_TABS_KEY)
|
||||
val managerVariantPref = managerStringPreference(MANAGER_VARIANT_KEY, MANAGER_VARIANT_DEFAULT_VALUE)
|
||||
var useCustomTabsPref by managerBooleanPreference(USE_CUSTOM_TABS_KEY)
|
||||
var managerVariantPref by managerStringPreference(MANAGER_VARIANT_KEY, MANAGER_VARIANT_DEFAULT_VALUE)
|
||||
|
||||
val managerThemePref = managerStringPreference(MANAGER_THEME_KEY, MANAGER_THEME_DEFAULT_VALUE)
|
||||
val managerAccentColorPref = managerLongPreference(MANAGER_ACCENT_COLOR_KEY, defAccentColor)
|
||||
var managerThemePref by managerStringPreference(MANAGER_THEME_KEY, MANAGER_THEME_DEFAULT_VALUE)
|
||||
var managerAccentColorPref by managerLongPreference(MANAGER_ACCENT_COLOR_KEY, defAccentColor)
|
||||
|
||||
val vancedThemePref = managerStringPreference(APP_VANCED_THEME_KEY, VANCED_THEME_DEFAULT_VALUE)
|
||||
val vancedVersionPref = managerStringPreference(APP_VANCED_VERSION_KEY, APP_VERSION_DEFAULT_VALUE)
|
||||
val vancedLanguagesPref =
|
||||
managerStringSetPreference(APP_VANCED_LANGUAGE_KEY, VANCED_LANGUAGE_DEFAULT_VALUE)
|
||||
var vancedThemePref by managerStringPreference(APP_VANCED_THEME_KEY, VANCED_THEME_DEFAULT_VALUE)
|
||||
var vancedVersionPref by managerStringPreference(APP_VANCED_VERSION_KEY, APP_VERSION_DEFAULT_VALUE)
|
||||
var vancedLanguagesPref by managerStringSetPreference(APP_VANCED_LANGUAGE_KEY, VANCED_LANGUAGE_DEFAULT_VALUE)
|
||||
|
||||
val musicVersionPref = managerStringPreference(APP_MUSIC_VERSION_KEY, APP_VERSION_DEFAULT_VALUE)
|
||||
var musicVersionPref by managerStringPreference(APP_MUSIC_VERSION_KEY, APP_VERSION_DEFAULT_VALUE)
|
||||
|
||||
val vancedEnabled = managerBooleanPreference(VANCED_ENABLED_KEY, APP_ENABLED_DEFAULT_VALUE)
|
||||
val musicEnabled = managerBooleanPreference(MUSIC_ENABLED_KEY, APP_ENABLED_DEFAULT_VALUE)
|
||||
var vancedEnabled by managerBooleanPreference(VANCED_ENABLED_KEY, APP_ENABLED_DEFAULT_VALUE)
|
||||
var musicEnabled by managerBooleanPreference(MUSIC_ENABLED_KEY, APP_ENABLED_DEFAULT_VALUE)
|
|
@ -77,9 +77,9 @@ class AppDtoMapper(
|
|||
VANCED_NAME -> listOf(
|
||||
InstallationOption.SingleSelect(
|
||||
titleId = R.string.app_installation_options_theme,
|
||||
getOption = { vancedThemePref.value.value },
|
||||
getOption = { vancedThemePref },
|
||||
setOption = {
|
||||
vancedThemePref.save(it)
|
||||
vancedThemePref = it
|
||||
},
|
||||
items = appThemes?.map { theme ->
|
||||
InstallationOptionItem(
|
||||
|
@ -94,9 +94,9 @@ class AppDtoMapper(
|
|||
),
|
||||
InstallationOption.SingleSelect(
|
||||
titleId = R.string.app_installation_options_version,
|
||||
getOption = { vancedVersionPref.value.value },
|
||||
getOption = { vancedVersionPref },
|
||||
setOption = {
|
||||
vancedVersionPref.save(it)
|
||||
vancedVersionPref = it
|
||||
},
|
||||
items = appVersions?.map { version ->
|
||||
InstallationOptionItem(
|
||||
|
@ -107,12 +107,12 @@ class AppDtoMapper(
|
|||
),
|
||||
InstallationOption.MultiSelect(
|
||||
titleId = R.string.app_installation_options_language,
|
||||
getOption = { vancedLanguagesPref.value.value },
|
||||
getOption = { vancedLanguagesPref },
|
||||
addOption = {
|
||||
vancedLanguagesPref.save(vancedLanguagesPref.value.value + it)
|
||||
vancedLanguagesPref = vancedLanguagesPref + it
|
||||
},
|
||||
removeOption = {
|
||||
vancedLanguagesPref.save(vancedLanguagesPref.value.value - it)
|
||||
vancedLanguagesPref = vancedLanguagesPref - it
|
||||
},
|
||||
items = appLanguages?.map { language ->
|
||||
InstallationOptionItem(
|
||||
|
@ -128,9 +128,9 @@ class AppDtoMapper(
|
|||
MUSIC_NAME -> listOf(
|
||||
InstallationOption.SingleSelect(
|
||||
titleId = R.string.app_installation_options_version,
|
||||
getOption = { musicVersionPref.value.value },
|
||||
getOption = { musicVersionPref },
|
||||
setOption = {
|
||||
musicVersionPref.save(it)
|
||||
musicVersionPref = it
|
||||
},
|
||||
items = appVersions?.map { version ->
|
||||
InstallationOptionItem(
|
||||
|
|
|
@ -19,12 +19,11 @@ fun ManagerLinkCard(
|
|||
val customTabs = remember { CustomTabsIntent.Builder().build() }
|
||||
val uri = remember { Uri.parse(link) }
|
||||
val intent = remember { Intent(Intent.ACTION_VIEW, uri) }
|
||||
val useCustomTabs by useCustomTabsPref
|
||||
ManagerItemCard(
|
||||
title = title,
|
||||
icon = icon
|
||||
) {
|
||||
if (useCustomTabs) {
|
||||
if (useCustomTabsPref) {
|
||||
customTabs.launchUrl(context, uri)
|
||||
} else {
|
||||
context.startActivity(intent)
|
||||
|
|
|
@ -17,8 +17,7 @@ fun contentColorForColor(color: Color) =
|
|||
|
||||
@Composable
|
||||
fun managerAccentColor(): Color {
|
||||
val accentColor by managerAccentColorPref
|
||||
return Color(accentColor)
|
||||
return Color(managerAccentColorPref)
|
||||
}
|
||||
|
||||
@Composable
|
||||
|
|
|
@ -11,18 +11,13 @@ import kotlinx.coroutines.launch
|
|||
fun CheckboxPreference(
|
||||
preferenceTitle: String,
|
||||
preferenceDescription: String? = null,
|
||||
preference: ManagerPreference<Boolean>,
|
||||
isChecked: Boolean,
|
||||
onCheckedChange: (isChecked: Boolean) -> Unit = {}
|
||||
) {
|
||||
var isChecked by preference
|
||||
val coroutineScope = rememberCoroutineScope()
|
||||
|
||||
val onClick: () -> Unit = {
|
||||
coroutineScope.launch {
|
||||
isChecked = !isChecked
|
||||
onCheckedChange(isChecked)
|
||||
}
|
||||
onCheckedChange(!isChecked)
|
||||
}
|
||||
|
||||
Preference(
|
||||
preferenceTitle = preferenceTitle,
|
||||
preferenceDescription = preferenceDescription,
|
||||
|
|
|
@ -72,7 +72,7 @@ private val DarkThemeColors = darkColorScheme(
|
|||
)
|
||||
|
||||
@Composable
|
||||
fun isDark(): Boolean = when (managerThemePref.value.value) {
|
||||
fun isDark(): Boolean = when (managerThemePref) {
|
||||
"Dark" -> true
|
||||
"Light" -> false
|
||||
"System Default" -> isSystemInDarkTheme()
|
||||
|
|
|
@ -32,9 +32,9 @@ class MainViewModel(
|
|||
|
||||
fun fetch() {
|
||||
viewModelScope.launch {
|
||||
val vancedEnabled = vancedEnabled.value.value
|
||||
val musicEnabled = musicEnabled.value.value
|
||||
val isNonroot = managerVariantPref.value.value == "nonroot"
|
||||
val vancedEnabled = vancedEnabled
|
||||
val musicEnabled = musicEnabled
|
||||
val isNonroot = managerVariantPref == "nonroot"
|
||||
|
||||
var appsCount = 0
|
||||
|
||||
|
|
|
@ -11,6 +11,9 @@ fun SettingsCustomTabsItem() {
|
|||
CheckboxPreference(
|
||||
preferenceTitle = stringResource(id = R.string.settings_preference_use_custom_tabs_title),
|
||||
preferenceDescription = stringResource(id = R.string.settings_preference_use_custom_tabs_summary),
|
||||
preference = useCustomTabsPref
|
||||
isChecked = useCustomTabsPref,
|
||||
onCheckedChange = {
|
||||
useCustomTabsPref = it
|
||||
}
|
||||
)
|
||||
}
|
|
@ -10,12 +10,12 @@ import com.vanced.manager.ui.resources.managerString
|
|||
@Composable
|
||||
fun SettingsManagerVariantItem() {
|
||||
var showDialog by remember { mutableStateOf(false) }
|
||||
var selectedKey by remember { mutableStateOf(managerVariantPref.value.value) }
|
||||
var selectedKey by remember { mutableStateOf(managerVariantPref) }
|
||||
RadiobuttonDialogPreference(
|
||||
preferenceTitle = managerString(
|
||||
stringId = R.string.settings_preference_variant_title
|
||||
),
|
||||
preferenceDescription = managerVariantPref.value.value,
|
||||
preferenceDescription = managerVariantPref,
|
||||
isDialogVisible = showDialog,
|
||||
currentSelectedKey = selectedKey,
|
||||
buttons = listOf(
|
||||
|
@ -33,13 +33,13 @@ fun SettingsManagerVariantItem() {
|
|||
},
|
||||
onDismissRequest = {
|
||||
showDialog = false
|
||||
selectedKey = managerVariantPref.value.value
|
||||
selectedKey = managerVariantPref
|
||||
},
|
||||
onItemClick = {
|
||||
selectedKey = it
|
||||
},
|
||||
onSave = {
|
||||
managerVariantPref.save(selectedKey)
|
||||
managerVariantPref = selectedKey
|
||||
showDialog = false
|
||||
}
|
||||
)
|
||||
|
|
|
@ -7,15 +7,19 @@ import com.vanced.manager.ui.component.preference.CheckboxPreference
|
|||
|
||||
@Composable
|
||||
fun SettingsNotificationsItem() {
|
||||
notificationApps.forEach {
|
||||
with(it) {
|
||||
notificationApps.forEach { notificationApp ->
|
||||
with(notificationApp) {
|
||||
var appNotificationsPref by managerBooleanPreference(
|
||||
key = "${prefKey}_notifications",
|
||||
defaultValue = true
|
||||
)
|
||||
CheckboxPreference(
|
||||
preferenceTitle = "$app Push Notifications",
|
||||
preferenceDescription = "Receive push notifications when an update for $app is released",
|
||||
preference = managerBooleanPreference(
|
||||
key = "${prefKey}_notifications",
|
||||
defaultValue = true
|
||||
)
|
||||
isChecked = appNotificationsPref,
|
||||
onCheckedChange = {
|
||||
appNotificationsPref = it
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,10 +10,10 @@ import com.vanced.manager.ui.resources.managerString
|
|||
@Composable
|
||||
fun ThemeSettingsItem() {
|
||||
var showDialog by remember { mutableStateOf(false) }
|
||||
var selectedKey by remember { mutableStateOf(managerThemePref.value.value) }
|
||||
var selectedKey by remember { mutableStateOf(managerThemePref) }
|
||||
RadiobuttonDialogPreference(
|
||||
preferenceTitle = managerString(stringId = R.string.settings_preference_theme_title),
|
||||
preferenceDescription = managerThemePref.value.value,
|
||||
preferenceDescription = managerThemePref,
|
||||
isDialogVisible = showDialog,
|
||||
currentSelectedKey = selectedKey,
|
||||
buttons = listOf(
|
||||
|
@ -35,13 +35,13 @@ fun ThemeSettingsItem() {
|
|||
},
|
||||
onDismissRequest = {
|
||||
showDialog = false
|
||||
selectedKey = managerThemePref.value.value
|
||||
selectedKey = managerThemePref
|
||||
},
|
||||
onItemClick = {
|
||||
selectedKey = it
|
||||
},
|
||||
onSave = {
|
||||
managerThemePref.save(selectedKey)
|
||||
managerThemePref = selectedKey
|
||||
showDialog = false
|
||||
}
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue