parent
fd1a1ae9b8
commit
7bd914b111
@ -0,0 +1,85 @@ |
||||
package io.legado.app.ui.association |
||||
|
||||
import android.app.Application |
||||
import io.legado.app.R |
||||
import io.legado.app.base.BaseViewModel |
||||
import io.legado.app.data.appDb |
||||
import io.legado.app.data.entities.HttpTTS |
||||
import io.legado.app.data.entities.TxtTocRule |
||||
import io.legado.app.help.ThemeConfig |
||||
import io.legado.app.model.NoStackTraceException |
||||
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) { |
||||
|
||||
|
||||
fun importTextTocRule(json: String, finally: (title: String, msg: String) -> Unit) { |
||||
execute { |
||||
if (json.isJsonArray()) { |
||||
GSON.fromJsonArray<TxtTocRule>(json)?.let { |
||||
appDb.txtTocRuleDao.insert(*it.toTypedArray()) |
||||
} ?: throw NoStackTraceException("格式不对") |
||||
} else { |
||||
GSON.fromJsonObject<TxtTocRule>(json)?.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 importHttpTTS(json: String, finally: (title: String, msg: String) -> Unit) { |
||||
execute { |
||||
if (json.isJsonArray()) { |
||||
HttpTTS.fromJsonArray(json).let { |
||||
appDb.httpTTSDao.insert(*it.toTypedArray()) |
||||
return@execute it.size |
||||
} |
||||
} else { |
||||
HttpTTS.fromJson(json)?.let { |
||||
appDb.httpTTSDao.insert(it) |
||||
return@execute 1 |
||||
} ?: throw NoStackTraceException("格式不对") |
||||
} |
||||
}.onSuccess { |
||||
finally.invoke(context.getString(R.string.success), "导入${it}朗读引擎") |
||||
}.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)?.forEach { |
||||
ThemeConfig.addConfig(it) |
||||
} ?: throw NoStackTraceException("格式不对") |
||||
} else { |
||||
GSON.fromJsonObject<ThemeConfig.Config>(json)?.let { |
||||
ThemeConfig.addConfig(it) |
||||
} ?: throw NoStackTraceException("格式不对") |
||||
} |
||||
}.onSuccess { |
||||
finally.invoke(context.getString(R.string.success), "导入主题成功") |
||||
}.onError { |
||||
finally.invoke( |
||||
context.getString(R.string.error), |
||||
it.localizedMessage ?: context.getString(R.string.unknown_error) |
||||
) |
||||
} |
||||
} |
||||
|
||||
|
||||
} |
Loading…
Reference in new issue