File tree Expand file tree Collapse file tree 4 files changed +8
-39
lines changed
app/src/main/java/com/osfans/trime/data/theme Expand file tree Collapse file tree 4 files changed +8
-39
lines changed Original file line number Diff line number Diff line change @@ -15,12 +15,15 @@ import timber.log.Timber
15
15
/* * 主题和样式配置 */
16
16
class Theme (
17
17
val configId : String ,
18
+ parseOnly : Boolean = false ,
18
19
) {
19
20
private val config: Config
20
21
21
22
init {
22
- if (! Rime .deployRimeConfigFile(configId, CONFIG_VERSION_KEY )) {
23
- throw IllegalArgumentException (" Failed to deploy theme config file '$configId '" )
23
+ if (! parseOnly) {
24
+ if (! Rime .deployRimeConfigFile(configId, CONFIG_VERSION_KEY )) {
25
+ throw IllegalArgumentException (" Failed to deploy theme config file '$configId '" )
26
+ }
24
27
}
25
28
config = Config .create(configId)
26
29
}
Original file line number Diff line number Diff line change 5
5
6
6
package com.osfans.trime.data.theme
7
7
8
- import com.charleskorn.kaml.AnchorsAndAliases
9
- import com.charleskorn.kaml.Yaml
10
- import com.charleskorn.kaml.YamlConfiguration
11
8
import timber.log.Timber
12
9
import java.io.File
13
10
14
11
object ThemeFilesManager {
15
- private val yaml =
16
- Yaml (
17
- configuration =
18
- YamlConfiguration (
19
- strictMode = false ,
20
- anchorsAndAliases = AnchorsAndAliases .Permitted (200u ),
21
- ),
22
- )
23
-
24
- fun listThemes (dir : File ): MutableList <ThemeStub > {
12
+ fun listThemes (dir : File ): MutableList <Theme > {
25
13
val files = dir.listFiles { _, name -> name.endsWith(" trime.yaml" ) } ? : return mutableListOf ()
26
14
return files
27
15
.sortedByDescending { it.lastModified() }
28
16
.mapNotNull decode@{
29
17
val theme =
30
18
runCatching {
31
- yaml
32
- .decodeFromString(
33
- ThemeStub .serializer(),
34
- it.inputStream().bufferedReader().readText(),
35
- ).apply {
36
- configId = it.nameWithoutExtension
37
- }
19
+ Theme (it.nameWithoutExtension, parseOnly = true )
38
20
}.getOrElse { e ->
39
21
Timber .w(" Failed to decode theme file ${it.absolutePath} : ${e.message} " )
40
22
return @decode null
Original file line number Diff line number Diff line change @@ -15,7 +15,7 @@ object ThemeManager {
15
15
fun onThemeChange (theme : Theme )
16
16
}
17
17
18
- fun getAllThemes (): List <ThemeStub > {
18
+ fun getAllThemes (): List <Theme > {
19
19
val sharedThemes = ThemeFilesManager .listThemes(DataManager .sharedDataDir)
20
20
val userThemes = ThemeFilesManager .listThemes(DataManager .userDataDir)
21
21
return sharedThemes + userThemes
Load Diff This file was deleted.
You can’t perform that action at this time.
0 commit comments