Files
LoveLiveMusicPlayerKMP/shared/src/commonMain/kotlin/com/zhushenwudi/lovelivemusicplayer/settings/AppSettings.kt
T
2026-10-09 22:41:45 +08:00

76 lines
3.0 KiB
Kotlin

package com.zhushenwudi.lovelivemusicplayer.settings
import com.russhwolf.settings.Settings
import com.russhwolf.settings.set
import com.zhushenwudi.lovelivemusicplayer.player.LoopMode
class AppSettings(private val settings: Settings) {
var appIconCharacterId: String
get() = settings.getString(SettingsKeys.APP_ICON_CHARACTER_ID, "default")
set(value) = settings.set(SettingsKeys.APP_ICON_CHARACTER_ID, value)
var isDark: Boolean
get() = settings.getBoolean(SettingsKeys.DARK, false)
set(value) = settings.set(SettingsKeys.DARK, value)
var followSystemTheme: Boolean
get() = settings.getBoolean(SettingsKeys.WITH_SYSTEM_THEME, true)
set(value) = settings.set(SettingsKeys.WITH_SYSTEM_THEME, value)
var loopMode: LoopMode
get() {
val raw = settings.getStringOrNull(SettingsKeys.LOOP_MODE)
return LoopMode.entries.firstOrNull { it.name == raw } ?: LoopMode.LIST
}
set(value) = settings.set(SettingsKeys.LOOP_MODE, value.name)
var dataVersion: String
get() = settings.getString(SettingsKeys.DATA_VERSION, "")
set(value) = settings.set(SettingsKeys.DATA_VERSION, value)
var enableHttp: Boolean
get() = settings.getBoolean(SettingsKeys.ENABLE_HTTP, false)
set(value) = settings.set(SettingsKeys.ENABLE_HTTP, value)
var httpUrl: String
get() = settings.getString(SettingsKeys.HTTP_URL, "")
set(value) = settings.set(SettingsKeys.HTTP_URL, value)
var enableDesktopLyric: Boolean
get() = settings.getBoolean(SettingsKeys.ENABLE_DESKTOP_LYRIC, false)
set(value) = settings.set(SettingsKeys.ENABLE_DESKTOP_LYRIC, value)
var aiPicture: Boolean
get() = settings.getBoolean(SettingsKeys.AI_PICTURE, true)
set(value) = settings.set(SettingsKeys.AI_PICTURE, value)
/** 歌曲页正倒序(兼容旧版全局 `SP_SORT_ORDER`)。 */
var sortOrder: String
get() = settings.getString(SettingsKeys.SORT_ORDER, "ASC")
set(value) = settings.set(SettingsKeys.SORT_ORDER, value)
var albumsSortOrder: String
get() = settings.getString(SettingsKeys.SORT_ORDER_ALBUMS, "ASC")
set(value) = settings.set(SettingsKeys.SORT_ORDER_ALBUMS, value)
var loveSortOrder: String
get() = settings.getString(SettingsKeys.SORT_ORDER_LOVE, "ASC")
set(value) = settings.set(SettingsKeys.SORT_ORDER_LOVE, value)
var recentSortOrder: String
get() = settings.getString(SettingsKeys.SORT_ORDER_RECENT, "ASC")
set(value) = settings.set(SettingsKeys.SORT_ORDER_RECENT, value)
var sdPath: String
get() = settings.getString(SettingsKeys.SD_PATH, "")
set(value) = settings.set(SettingsKeys.SD_PATH, value)
var lastPcHost: String
get() = settings.getString("SP_LAST_PC_HOST", "")
set(value) = settings.set("SP_LAST_PC_HOST", value)
}
/** 规范列表按页独立套用正倒序。 */
fun <T> List<T>.withSortOrder(order: String): List<T> =
if (order == "DESC") reversed() else this