pull/1395/head
parent
7a548e48d8
commit
3948bb42fd
@ -0,0 +1,74 @@ |
|||||||
|
package io.legado.app.ui.book.read.config |
||||||
|
|
||||||
|
import android.app.Application |
||||||
|
import android.os.Bundle |
||||||
|
import io.legado.app.base.BaseViewModel |
||||||
|
import io.legado.app.data.appDb |
||||||
|
import io.legado.app.data.entities.HttpTTS |
||||||
|
import io.legado.app.model.NoStackTraceException |
||||||
|
import io.legado.app.model.ReadAloud |
||||||
|
import io.legado.app.utils.* |
||||||
|
|
||||||
|
class HttpTtsEditViewModel(app: Application) : BaseViewModel(app) { |
||||||
|
|
||||||
|
var id: Long? = null |
||||||
|
|
||||||
|
fun initData(arguments: Bundle?, success: (httpTTS: HttpTTS) -> Unit) { |
||||||
|
execute { |
||||||
|
if (id == null) { |
||||||
|
id = arguments?.getLong("id") |
||||||
|
val httpTTS = id?.let { |
||||||
|
return@let appDb.httpTTSDao.get(it) |
||||||
|
} |
||||||
|
return@execute httpTTS |
||||||
|
} |
||||||
|
return@execute null |
||||||
|
}.onSuccess { |
||||||
|
it?.let { |
||||||
|
success.invoke(it) |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
fun save(httpTTS: HttpTTS, success: (() -> Unit)? = null) { |
||||||
|
execute { |
||||||
|
appDb.httpTTSDao.insert(httpTTS) |
||||||
|
ReadAloud.upReadAloudClass() |
||||||
|
}.onSuccess { |
||||||
|
success?.invoke() |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
fun importFromClip(onSuccess: (httpTTS: HttpTTS) -> Unit) { |
||||||
|
val text = context.getClipText() |
||||||
|
if (text.isNullOrBlank()) { |
||||||
|
context.toastOnUi("剪贴板为空") |
||||||
|
} else { |
||||||
|
importSource(text, onSuccess) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
fun importSource(text: String, onSuccess: (httpTTS: HttpTTS) -> Unit) { |
||||||
|
val text1 = text.trim() |
||||||
|
execute { |
||||||
|
when { |
||||||
|
text1.isJsonObject() -> { |
||||||
|
GSON.fromJsonObject<HttpTTS>(text1) |
||||||
|
} |
||||||
|
text1.isJsonArray() -> { |
||||||
|
GSON.fromJsonArray<HttpTTS>(text1)?.firstOrNull() |
||||||
|
} |
||||||
|
else -> { |
||||||
|
throw NoStackTraceException("格式不对") |
||||||
|
} |
||||||
|
} |
||||||
|
}.onSuccess { |
||||||
|
it?.let { httpTts -> |
||||||
|
onSuccess.invoke(httpTts) |
||||||
|
} ?: context.toastOnUi("格式不对") |
||||||
|
}.onError { |
||||||
|
context.toastOnUi(it.localizedMessage) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -1,40 +0,0 @@ |
|||||||
package io.legado.app.ui.book.read.config |
|
||||||
|
|
||||||
import android.app.Application |
|
||||||
import android.os.Bundle |
|
||||||
import io.legado.app.base.BaseViewModel |
|
||||||
import io.legado.app.data.appDb |
|
||||||
import io.legado.app.data.entities.HttpTTS |
|
||||||
import io.legado.app.model.ReadAloud |
|
||||||
|
|
||||||
class SpeakEngineEditViewModel(app: Application) : BaseViewModel(app) { |
|
||||||
|
|
||||||
var id: Long? = null |
|
||||||
|
|
||||||
fun initData(arguments: Bundle?, success: (httpTTS: HttpTTS) -> Unit) { |
|
||||||
execute { |
|
||||||
if (id == null) { |
|
||||||
id = arguments?.getLong("id") |
|
||||||
val httpTTS = id?.let { |
|
||||||
return@let appDb.httpTTSDao.get(it) |
|
||||||
} |
|
||||||
return@execute httpTTS |
|
||||||
} |
|
||||||
return@execute null |
|
||||||
}.onSuccess { |
|
||||||
it?.let { |
|
||||||
success.invoke(it) |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
fun save(httpTTS: HttpTTS, success: (() -> Unit)? = null) { |
|
||||||
execute { |
|
||||||
appDb.httpTTSDao.insert(httpTTS) |
|
||||||
ReadAloud.upReadAloudClass() |
|
||||||
}.onSuccess { |
|
||||||
success?.invoke() |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
Loading…
Reference in new issue