修复某些模板加载时程序崩溃的问题。添加minVersion编辑框。
This commit is contained in:
parent
b614503b0d
commit
7686687c27
|
@ -26,9 +26,10 @@ class TemplateParserViewModel : BaseViewModel() {
|
|||
//json数据
|
||||
private var jsonData: JSONObject? = null
|
||||
private var template: Template? = null
|
||||
private lateinit var arrayList :ArrayList<TemplateParser>
|
||||
private lateinit var arrayList: ArrayList<TemplateParser>
|
||||
|
||||
//文件输出目录
|
||||
private var outPutPath : String? = null
|
||||
private var outPutPath: String? = null
|
||||
|
||||
|
||||
//创建目录
|
||||
|
@ -58,7 +59,12 @@ class TemplateParserViewModel : BaseViewModel() {
|
|||
* @return String
|
||||
*/
|
||||
fun getCode(): String {
|
||||
return jsonData?.getString("data") ?: ""
|
||||
try {
|
||||
return jsonData?.getString("data") ?: ""
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -97,7 +103,7 @@ class TemplateParserViewModel : BaseViewModel() {
|
|||
createDirectory
|
||||
}
|
||||
LogCat.d("构建文件", "是否需要独立创建文件夹${independentFolder} 文件夹目录${createPath}")
|
||||
if (independentFolder){
|
||||
if (independentFolder) {
|
||||
val folder = File(createPath)
|
||||
if (folder.exists()) {
|
||||
LogCat.e("构建文件", "创建目录${createPath}已存在。")
|
||||
|
@ -124,7 +130,7 @@ class TemplateParserViewModel : BaseViewModel() {
|
|||
* 获取文件输出目录(当构建文件完毕后,返回有效值。否则返回null)
|
||||
* @return String?
|
||||
*/
|
||||
fun getOutputPath():String?{
|
||||
fun getOutputPath(): String? {
|
||||
return outPutPath
|
||||
}
|
||||
|
||||
|
@ -175,57 +181,63 @@ class TemplateParserViewModel : BaseViewModel() {
|
|||
* @return ArrayList<TemplateParser>
|
||||
*/
|
||||
fun getTemplateParserList(context: Context): ArrayList<TemplateParser> {
|
||||
if (this::arrayList.isInitialized)
|
||||
{
|
||||
LogCat.d("获取模板解析器","已经被调用了一次,返回成员变量")
|
||||
if (this::arrayList.isInitialized) {
|
||||
LogCat.d("获取模板解析器", "已经被调用了一次,返回成员变量")
|
||||
return arrayList
|
||||
}
|
||||
arrayList = ArrayList()
|
||||
val gson = Gson()
|
||||
val jsonArray = jsonData?.getJSONArray("action")
|
||||
if (jsonArray == null) {
|
||||
LogCat.e("获取模板解析器", "此模板没有action,无法读取。")
|
||||
return arrayList
|
||||
} else {
|
||||
val len = jsonArray.length()
|
||||
for (i in 0 until len) {
|
||||
val templateParserData = jsonArray.getJSONObject(i)
|
||||
when (templateParserData.getString("type")) {
|
||||
"input" -> {
|
||||
arrayList.add(
|
||||
InputParser(
|
||||
context,
|
||||
gson.fromJson(
|
||||
templateParserData.toString(4),
|
||||
InputParserDataBean::class.java
|
||||
try {
|
||||
val jsonArray = jsonData?.getJSONArray("action")
|
||||
if (jsonArray == null) {
|
||||
LogCat.e("获取模板解析器", "此模板没有action,无法读取。")
|
||||
return arrayList
|
||||
} else {
|
||||
val len = jsonArray.length()
|
||||
for (i in 0 until len) {
|
||||
val templateParserData = jsonArray.getJSONObject(i)
|
||||
when (templateParserData.getString("type")) {
|
||||
"input" -> {
|
||||
arrayList.add(
|
||||
InputParser(
|
||||
context,
|
||||
gson.fromJson(
|
||||
templateParserData.toString(4),
|
||||
InputParserDataBean::class.java
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
}
|
||||
"comment" -> {
|
||||
arrayList.add(
|
||||
IntroducingParser(
|
||||
context, gson.fromJson(
|
||||
templateParserData.toString(4),
|
||||
IntroducingDataBean::class.java
|
||||
}
|
||||
"comment" -> {
|
||||
arrayList.add(
|
||||
IntroducingParser(
|
||||
context, gson.fromJson(
|
||||
templateParserData.toString(4),
|
||||
IntroducingDataBean::class.java
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
}
|
||||
"valueSelector" -> {
|
||||
arrayList.add(
|
||||
ListParser(
|
||||
context, gson.fromJson(
|
||||
templateParserData.toString(4),
|
||||
ListParserDataBean::class.java
|
||||
}
|
||||
"valueSelector" -> {
|
||||
arrayList.add(
|
||||
ListParser(
|
||||
context, gson.fromJson(
|
||||
templateParserData.toString(4),
|
||||
ListParserDataBean::class.java
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
return arrayList
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
LogCat.e("获取模板解析器", "解析action出错$e。")
|
||||
return arrayList
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -70,11 +70,27 @@
|
|||
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
|
||||
<Button
|
||||
android:id="@+id/createbutton"
|
||||
<com.google.android.material.textfield.TextInputLayout
|
||||
android:id="@+id/minVersionInputLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="8dp"
|
||||
app:counterEnabled="true"
|
||||
android:layout_below="@id/modDescribeInputLayout"
|
||||
app:counterMaxLength="20"
|
||||
style="@style/Widget.Material3.TextInputLayout.OutlinedBox.ExposedDropdownMenu">
|
||||
|
||||
<com.google.android.material.textfield.MaterialAutoCompleteTextView
|
||||
android:layout_width="match_parent"
|
||||
android:hint="@string/minVersion"
|
||||
android:layout_height="wrap_content" />
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
|
||||
<Button
|
||||
android:id="@+id/createbutton"
|
||||
android:layout_below="@id/minVersionInputLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/create" />
|
||||
|
||||
|
||||
|
|
|
@ -140,6 +140,7 @@
|
|||
android:orientation="horizontal">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_marginTop="8dp"
|
||||
android:id="@+id/numberLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="46dp">
|
||||
|
|
|
@ -955,4 +955,5 @@
|
|||
<string name="search_type_template_package">模板包</string>
|
||||
<string name="public_mod">公开</string>
|
||||
<string name="private_mod">私有</string>
|
||||
<string name="minVersion">最低游戏版本</string>
|
||||
</resources>
|
|
@ -52,11 +52,17 @@ data class WebTemplateData(
|
|||
}
|
||||
|
||||
override fun getName(language: String): String {
|
||||
return if (getJson().has("name_$language")) {
|
||||
return getJson().getString("name_$language")
|
||||
} else {
|
||||
return getJson().getString("name")
|
||||
try {
|
||||
return if (getJson().has("name_$language")) {
|
||||
return getJson().getString("name_$language")
|
||||
} else {
|
||||
return getJson().getString("name")
|
||||
}
|
||||
}catch (e:Exception){
|
||||
e.printStackTrace()
|
||||
return "Unknown"
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override fun getIcon(): Any? {
|
||||
|
|
Loading…
Reference in New Issue
Block a user