This commit is contained in:
kunfei 2022-05-14 21:34:48 +08:00
parent 2c7a38542c
commit 69b91657b8

View File

@ -2,16 +2,7 @@ package io.legado.app.ui.association
import android.app.Application
import androidx.lifecycle.MutableLiveData
import io.legado.app.R
import io.legado.app.base.BaseViewModel
import io.legado.app.data.appDb
import io.legado.app.data.entities.TxtTocRule
import io.legado.app.exception.NoStackTraceException
import io.legado.app.help.config.ThemeConfig
import io.legado.app.utils.GSON
import io.legado.app.utils.fromJsonArray
import io.legado.app.utils.fromJsonObject
import io.legado.app.utils.isJsonArray
abstract class BaseAssociationViewModel(application: Application) : BaseViewModel(application) {
@ -37,47 +28,4 @@ abstract class BaseAssociationViewModel(application: Application) : BaseViewMode
}
}
fun importTextTocRule(json: String, finally: (title: String, msg: String) -> Unit) {
execute {
if (json.isJsonArray()) {
GSON.fromJsonArray<TxtTocRule>(json).getOrThrow()?.let {
appDb.txtTocRuleDao.insert(*it.toTypedArray())
} ?: throw NoStackTraceException("格式不对")
} else {
GSON.fromJsonObject<TxtTocRule>(json).getOrThrow()?.let {
appDb.txtTocRuleDao.insert(it)
} ?: throw NoStackTraceException("格式不对")
}
}.onSuccess {
finally.invoke(context.getString(R.string.success), "导入Txt规则成功")
}.onError {
finally.invoke(
context.getString(R.string.error),
it.localizedMessage ?: context.getString(R.string.unknown_error)
)
}
}
fun importTheme(json: String, finally: (title: String, msg: String) -> Unit) {
execute {
if (json.isJsonArray()) {
GSON.fromJsonArray<ThemeConfig.Config>(json).getOrThrow()?.forEach {
ThemeConfig.addConfig(it)
}
} else {
GSON.fromJsonObject<ThemeConfig.Config>(json).getOrThrow()?.let {
ThemeConfig.addConfig(it)
}
}
}.onSuccess {
finally.invoke(context.getString(R.string.success), "导入主题成功")
}.onError {
finally.invoke(
context.getString(R.string.error),
it.localizedMessage ?: context.getString(R.string.unknown_error)
)
}
}
}