|
|
@@ -0,0 +1,54 @@
|
|
|
+package com.nova.brain.glass.ui
|
|
|
+
|
|
|
+import android.widget.TextView
|
|
|
+import com.nova.brain.glass.R
|
|
|
+import com.nova.brain.glass.helper.OfflineCmdListener
|
|
|
+import com.nova.brain.glass.helper.OfflineCmdServiceHelper
|
|
|
+import com.nova.brain.glass.model.ChatItem
|
|
|
+import com.nova.brain.glass.viewmodel.ChatVM
|
|
|
+import com.xuqm.base.adapter.BasePagedAdapter
|
|
|
+import com.xuqm.base.adapter.CommonPagedAdapter
|
|
|
+import com.xuqm.base.adapter.ViewHolder
|
|
|
+import com.xuqm.base.ui.BaseListActivity
|
|
|
+import io.noties.markwon.Markwon
|
|
|
+
|
|
|
+class ChatActivity : BaseListActivity<ChatItem, ChatVM>() {
|
|
|
+ private val listener = object : OfflineCmdListener {
|
|
|
+ override fun onOfflineCmd(cmd: String) {
|
|
|
+ runOnUiThread {
|
|
|
+ when (cmd) {
|
|
|
+ "退出", "返回", "退回" -> {
|
|
|
+ finish()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+private lateinit var markwon: Markwon
|
|
|
+ override fun initData() {
|
|
|
+ super.initData()
|
|
|
+
|
|
|
+ markwon = Markwon.create(this);
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun onResume() {
|
|
|
+ super.onResume()
|
|
|
+ OfflineCmdServiceHelper.addOnLineListener(listener)
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun onPause() {
|
|
|
+ super.onPause()
|
|
|
+ OfflineCmdServiceHelper.removeOnLineListener(listener)
|
|
|
+ }
|
|
|
+
|
|
|
+ private val adapter = object : CommonPagedAdapter<ChatItem>(R.layout.item_chat) {
|
|
|
+ override fun convert(holder: ViewHolder, item: ChatItem, position: Int) {
|
|
|
+ holder.setText(R.id.title, item.title)
|
|
|
+
|
|
|
+ val tv = holder.getView<TextView>(R.id.content)
|
|
|
+ markwon.setMarkdown(tv, item.content);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun adapter(): BasePagedAdapter<ChatItem> = adapter
|
|
|
+}
|