From 2a8d4bc0baa797d70b8265beb38d39c7bb4e1b66 Mon Sep 17 00:00:00 2001 From: Akash Yadav Date: Sun, 25 Dec 2022 21:06:08 +0530 Subject: [PATCH] feat: require version code in color scheme props --- .../src/main/assets/editor/schemes/default/scheme.prop | 3 +++ .../itsaky/androidide/editor/schemes/IDEColorScheme.kt | 3 +++ .../editor/schemes/IDEColorSchemeProvider.kt | 10 ++++++++-- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/editor/src/main/assets/editor/schemes/default/scheme.prop b/editor/src/main/assets/editor/schemes/default/scheme.prop index 38d890224..2ac0edde1 100644 --- a/editor/src/main/assets/editor/schemes/default/scheme.prop +++ b/editor/src/main/assets/editor/schemes/default/scheme.prop @@ -1,6 +1,9 @@ # Name of the color scheme scheme.name=AndroidIDE Default +# The version code of the color scheme +scheme.version=1 + # Whether the scheme is dark or light scheme.isDark=false diff --git a/editor/src/main/java/com/itsaky/androidide/editor/schemes/IDEColorScheme.kt b/editor/src/main/java/com/itsaky/androidide/editor/schemes/IDEColorScheme.kt index b615d5338..b652f9603 100644 --- a/editor/src/main/java/com/itsaky/androidide/editor/schemes/IDEColorScheme.kt +++ b/editor/src/main/java/com/itsaky/androidide/editor/schemes/IDEColorScheme.kt @@ -31,6 +31,9 @@ class IDEColorScheme(internal val file: File, val key: String) : DynamicColorSch var name: String = "" internal set + + var version: Int = 0 + internal set var langs: Array = emptyArray() internal set diff --git a/editor/src/main/java/com/itsaky/androidide/editor/schemes/IDEColorSchemeProvider.kt b/editor/src/main/java/com/itsaky/androidide/editor/schemes/IDEColorSchemeProvider.kt index d039b8984..050d8c957 100644 --- a/editor/src/main/java/com/itsaky/androidide/editor/schemes/IDEColorSchemeProvider.kt +++ b/editor/src/main/java/com/itsaky/androidide/editor/schemes/IDEColorSchemeProvider.kt @@ -23,7 +23,6 @@ import com.itsaky.androidide.utils.Environment import com.itsaky.androidide.utils.ILogger import java.io.File import java.io.FileFilter -import java.util.Collections import java.util.Properties import java.util.concurrent.ConcurrentHashMap import java.util.function.Consumer @@ -37,6 +36,7 @@ object IDEColorSchemeProvider { private val schemes = ConcurrentHashMap() private const val SCHEME_NAME = "scheme.name" + private const val SCHEME_VERSION = "scheme.version" private const val SCHEME_IS_DARK = "scheme.isDark" private const val SCHEME_LANGS = "scheme.langs" private const val SCHEME_FILE = "scheme.file" @@ -68,6 +68,7 @@ object IDEColorSchemeProvider { } val name = props.getProperty(SCHEME_NAME, "Unknown") + val version = props.getProperty(SCHEME_VERSION, "0").toInt() val isDark = props.getProperty(SCHEME_IS_DARK, "false").toBoolean() val langs = props.getProperty(SCHEME_LANGS, "").split(',').map { it.trim() } val file = @@ -78,7 +79,11 @@ object IDEColorSchemeProvider { ) "" } - + + if (version <= 0) { + log.warn("Version code of color scheme '$schemeDir' must be set to >= 1") + } + if (file.isBlank()) { continue } @@ -89,6 +94,7 @@ object IDEColorSchemeProvider { val scheme = IDEColorScheme(File(schemeDir, file), schemeDir.name) scheme.name = name + scheme.version = version scheme.isDarkScheme = isDark scheme.langs = langs.toTypedArray() schemes[schemeDir.name] = scheme