manager: Fixed the module list retrieval to the correct format

This commit is contained in:
ShirkNeko
2025-11-20 21:30:21 +08:00
parent c574f39ae3
commit de6b2794b7

View File

@@ -143,15 +143,15 @@ class ModuleViewModel : ViewModel() {
obj.optString("name"),
obj.optString("author", "Unknown"),
obj.optString("version", "Unknown"),
obj.optInt("versionCode", 0),
obj.getIntCompat("versionCode", 0),
obj.optString("description"),
obj.getBoolean("enabled"),
obj.getBoolean("update"),
obj.getBoolean("remove"),
obj.getBooleanCompat("enabled"),
obj.getBooleanCompat("update"),
obj.getBooleanCompat("remove"),
obj.optString("updateJson"),
obj.optBoolean("web"),
obj.optBoolean("action"),
obj.getString("dir_id")
obj.getBooleanCompat("web"),
obj.getBooleanCompat("action"),
obj.optString("dir_id", obj.getString("id"))
)
}.toList()
@@ -469,6 +469,26 @@ class ModuleSizeCache(context: Context) {
}
}
private fun JSONObject.getBooleanCompat(key: String, default: Boolean = false): Boolean {
if (!has(key)) return default
return when (val value = opt(key)) {
is Boolean -> value
is String -> value.equals("true", ignoreCase = true) || value == "1"
is Number -> value.toInt() != 0
else -> default
}
}
private fun JSONObject.getIntCompat(key: String, default: Int = 0): Int {
if (!has(key)) return default
return when (val value = opt(key)) {
is Int -> value
is Number -> value.toInt()
is String -> value.toIntOrNull() ?: default
else -> default
}
}
/**
* 格式化文件大小的工具函数
*/