76 lines
3.0 KiB
Kotlin
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
|