diff --git a/app/src/main/java/com/nova/brain/glass/viewmodel/ChatVM.kt b/app/src/main/java/com/nova/brain/glass/viewmodel/ChatVM.kt index 9428a9a..9caa68e 100644 --- a/app/src/main/java/com/nova/brain/glass/viewmodel/ChatVM.kt +++ b/app/src/main/java/com/nova/brain/glass/viewmodel/ChatVM.kt @@ -20,28 +20,29 @@ class ChatVM : BaseViewModel() { HttpManager.getApi(Service::class.java).chat(ChatData("我的代办任务有哪些?")) .subscribeOn(Schedulers.io()) .subscribe({ body -> - val sb = StringBuilder() + var sb = "" body.charStream().buffered().use { reader -> try { var line: String? while (reader.readLine().also { line = it } != null) { val l = line!! if (l.isNotEmpty()) { - val model = GsonImplHelp.get().toObject(l, ChatModel::class.java) + val json = if (l.startsWith("data:")) l.removePrefix("data:").trim() else l + val model = GsonImplHelp.get().toObject(json, ChatModel::class.java) if (t != model.type) { - sb.clear() + sb = "" } t = model.type if (model.type == "string") { val model1 = - GsonImplHelp.get().toObject(l, ChatModel1::class.java) - sb.appendLine(model1.data) + GsonImplHelp.get().toObject(json, ChatModel1::class.java) + sb+=model1.data } else { val model2 = - GsonImplHelp.get().toObject(l, ChatModel2::class.java) - sb.appendLine(model2.data.content) + GsonImplHelp.get().toObject(json, ChatModel2::class.java) + sb+=model2.data.content } - result.postValue(sb.toString()) + result.postValue(sb) } } } catch (e: Exception) {