diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml
index cac0f15..93b5d15 100644
--- a/.idea/kotlinc.xml
+++ b/.idea/kotlinc.xml
@@ -8,6 +8,6 @@
-
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 54c10b6..aa9687b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,7 +35,6 @@
-
@@ -46,6 +45,10 @@
android:name=".page.activity.MainActivity"
android:exported="false"
android:launchMode="singleInstance" />
+
, val viewModel: ManageReplyViewModel) :
+ BaseBindingAdapter(datas) {
+ override fun getItemBinding(parent: ViewGroup, viewType: Int): ItemReplyBinding {
+ return ItemReplyBinding.inflate(
+ LayoutInflater.from(parent.context),
+ parent,
+ false
+ )
+ }
+
+ override fun bindItem(holder: BaseViewHolder, position: Int) {
+ holder.binding.pos = position
+ holder.binding.bean = list[position]
+ val xPopup = XPopup.Builder(holder.binding.root.context).watchView(holder.binding.root)
+ holder.binding.root.setOnLongClickListener {
+ xPopup.asAttachList(
+ arrayOf("删除", "编辑"),
+ intArrayOf(
+ com.tenlionsoft.baselib.R.drawable.ic_del,
+ com.tenlionsoft.baselib.R.drawable.ic_edit
+ ),
+ { p, _ ->
+ viewModel.onItemLongClickListener.onItemLongClick(
+ p, list[position]
+ )
+ },
+ 0,
+ 0
+ ).show()
+ true
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/tenlionsoft/aimz_k/model/AppDatabase.kt b/app/src/main/java/com/tenlionsoft/aimz_k/model/AppDatabase.kt
index f38c53c..0fcca54 100755
--- a/app/src/main/java/com/tenlionsoft/aimz_k/model/AppDatabase.kt
+++ b/app/src/main/java/com/tenlionsoft/aimz_k/model/AppDatabase.kt
@@ -7,9 +7,14 @@ import androidx.room.RoomDatabase
/**
* 数据库的版本
*/
-@Database(entities = [MsgBean::class, MsgCategoryBean::class], version = 1, exportSchema = false)
+@Database(
+ entities = [MsgBean::class, MsgCategoryBean::class, ReplyBean::class],
+ version = 1,
+ exportSchema = false
+)
abstract class AppDatabase : RoomDatabase() {
abstract fun msgDao(): MsgDao
abstract fun categoryDao(): MsgCategoryDao
+ abstract fun replayDao(): ReplyDao
}
\ No newline at end of file
diff --git a/app/src/main/java/com/tenlionsoft/aimz_k/model/MsgDao.kt b/app/src/main/java/com/tenlionsoft/aimz_k/model/MsgDao.kt
index c578d2e..c29ade3 100644
--- a/app/src/main/java/com/tenlionsoft/aimz_k/model/MsgDao.kt
+++ b/app/src/main/java/com/tenlionsoft/aimz_k/model/MsgDao.kt
@@ -11,7 +11,7 @@ interface MsgDao {
* 更新信息状态
*/
@Query("UPDATE db_msg SET status = :status WHERE messageId = :messageId")
- fun updateStatus(messageId: String, status: String)
+ suspend fun updateStatus(messageId: String, status: String)
/**
* 获取全部信息
@@ -19,7 +19,7 @@ interface MsgDao {
* @return
*/
@Query("SELECT * FROM db_msg")
- fun getAllMsg(): List?
+ suspend fun getAllMsg(): List?
/**
* 根据ID获取消息
@@ -28,7 +28,7 @@ interface MsgDao {
* @return
*/
@Query("SELECT * FROM db_msg WHERE id =(:id) ")
- fun getMsgById(id: String?): List?
+ suspend fun getMsgById(id: String?): List?
/**
*
@@ -41,7 +41,7 @@ interface MsgDao {
* @return
*/
@Query("SELECT * FROM db_msg WHERE `senderId`=(:from)")
- fun getMsgByFrom(from: String?): List?
+ suspend fun getMsgByFrom(from: String?): List?
/**
* 根据发送给谁进行查询
@@ -50,7 +50,7 @@ interface MsgDao {
* @return
*/
@Query("SELECT * FROM db_msg WHERE `receiverId` =(:to)")
- fun getMsgByTo(to: String?): List?
+ suspend fun getMsgByTo(to: String?): List?
/**
@@ -62,13 +62,13 @@ interface MsgDao {
* @return
*/
@Query("SELECT * FROM db_msg WHERE `senderId`=(:form) ORDER BY timestamp LIMIT (((:page)-1)*(:pageSize)),(:pageSize)")
- fun getMsgByPage(form: String?, pageSize: Int, page: Int): List?
+ suspend fun getMsgByPage(form: String?, pageSize: Int, page: Int): List?
/**
* 查询与单人的聊天记录-分页
*/
@Query("SELECT * FROM db_msg t1 WHERE t1.id IN (SELECT id FROM db_msg WHERE `senderId`=(:form) AND `receiverId`=(:to) OR `senderId`=(:to) AND `receiverId`=(:form) ORDER BY timestamp DESC LIMIT (((:page)-1)*(:pageSize)),(:pageSize)) ORDER by t1.timestamp ASC")
- fun getMsgByFromOrToPage(
+ suspend fun getMsgByFromOrToPage(
form: String?,
to: String?,
pageSize: Int,
@@ -79,7 +79,7 @@ interface MsgDao {
* 查询与单人的聊天记录-全部
*/
@Query("SELECT * FROM db_msg t1 WHERE t1.id IN (SELECT id FROM db_msg WHERE senderId=:form AND receiverId=:to OR senderId=:to AND receiverId=:form ORDER BY timestamp DESC) ORDER by t1.timestamp ASC")
- fun getMsgByFromOrToPage(
+ suspend fun getMsgByFromOrToPage(
form: String,
to: String,
): List
@@ -96,13 +96,13 @@ interface MsgDao {
* @param beans
*/
@Insert(onConflict = OnConflictStrategy.REPLACE)
- fun insertAll(vararg beans: MsgBean)
+ suspend fun insertAll(vararg beans: MsgBean)
/**
* 批量添加
*/
@Insert(onConflict = OnConflictStrategy.REPLACE)
- fun insertAll(beans: List)
+ suspend fun insertAll(beans: List)
/**
@@ -117,5 +117,5 @@ interface MsgDao {
* 清除全部聊天记录
*/
@Query("DELETE FROM db_msg")
- fun delAllMsg()
+ suspend fun delAllMsg()
}
\ No newline at end of file
diff --git a/app/src/main/java/com/tenlionsoft/aimz_k/model/ReplyBean.kt b/app/src/main/java/com/tenlionsoft/aimz_k/model/ReplyBean.kt
new file mode 100644
index 0000000..3074f70
--- /dev/null
+++ b/app/src/main/java/com/tenlionsoft/aimz_k/model/ReplyBean.kt
@@ -0,0 +1,15 @@
+package com.tenlionsoft.aimz_k.model
+
+import androidx.room.ColumnInfo
+import androidx.room.Entity
+import androidx.room.PrimaryKey
+
+@Entity(tableName = "db_reply")
+data class ReplyBean(
+ @PrimaryKey(autoGenerate = true)
+ val id: Long = 0,
+ @ColumnInfo(name = "content")
+ val content: String,
+ @ColumnInfo(name = "remark")
+ var remark: String? = ""
+)
diff --git a/app/src/main/java/com/tenlionsoft/aimz_k/model/ReplyDao.kt b/app/src/main/java/com/tenlionsoft/aimz_k/model/ReplyDao.kt
new file mode 100644
index 0000000..5d5d865
--- /dev/null
+++ b/app/src/main/java/com/tenlionsoft/aimz_k/model/ReplyDao.kt
@@ -0,0 +1,52 @@
+package com.tenlionsoft.aimz_k.model
+
+import androidx.room.Dao
+import androidx.room.Insert
+import androidx.room.OnConflictStrategy
+import androidx.room.Query
+
+@Dao
+interface ReplyDao {
+ /**
+ * 更新内容
+ */
+ @Query("UPDATE db_reply SET content = :content WHERE id = :id")
+ suspend fun updateContent(id: Long, content: String)
+
+ /**
+ * 获取全部
+ *
+ * @return
+ */
+ @Query("SELECT * FROM db_reply")
+ suspend fun getAllReply(): List?
+
+ /**
+ * 添加多个
+ *
+ * @param beans
+ */
+ @Insert(onConflict = OnConflictStrategy.REPLACE)
+ suspend fun insertAll(vararg beans: ReplyBean)
+
+ /**
+ * 批量添加
+ */
+ @Insert(onConflict = OnConflictStrategy.REPLACE)
+ suspend fun insertAll(beans: List)
+
+
+ /**
+ * 添加-单个
+ *
+ * @param bean
+ */
+ @Insert(onConflict = OnConflictStrategy.REPLACE)
+ suspend fun insert(bean: ReplyBean)
+
+ /**
+ * 删除
+ */
+ @Query("DELETE FROM db_reply WHERE id=:id")
+ suspend fun delReply(id: Long)
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/tenlionsoft/aimz_k/page/activity/ManageReplyActivity.kt b/app/src/main/java/com/tenlionsoft/aimz_k/page/activity/ManageReplyActivity.kt
new file mode 100644
index 0000000..5273e9a
--- /dev/null
+++ b/app/src/main/java/com/tenlionsoft/aimz_k/page/activity/ManageReplyActivity.kt
@@ -0,0 +1,33 @@
+package com.tenlionsoft.aimz_k.page.activity
+
+import androidx.databinding.DataBindingUtil
+import androidx.lifecycle.ViewModelProvider
+import com.tenlionsoft.aimz_k.R
+import com.tenlionsoft.aimz_k.databinding.ActivityManageReplyBinding
+import com.tenlionsoft.aimz_k.viewmodel.ManageReplyViewModel
+import com.tenlionsoft.baselib.base.BaseActivity
+
+class ManageReplyActivity : BaseActivity() {
+ private lateinit var mBind: ActivityManageReplyBinding
+ private var viewModel: ManageReplyViewModel? = null
+
+ override fun bindView() {
+ mBind =
+ DataBindingUtil.setContentView(this@ManageReplyActivity, R.layout.activity_manage_reply)
+ mBind.ivBack.setOnClickListener { finish() }
+ viewModel = ViewModelProvider(this)[ManageReplyViewModel::class.java]
+ mBind.model = viewModel
+ mBind.lifecycleOwner = this
+ viewModel!!.showSoftKeyboard.observe(this) {
+ if (it) {
+ showSoftKeyBoard(mBind.etReplyContent)
+ mBind.etReplyContent.requestFocus()
+ } else {
+ hideSoftKeyboard()
+ mBind.etReplyContent.clearFocus()
+ }
+ }
+ }
+
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/tenlionsoft/aimz_k/page/fragments/MineFragment.kt b/app/src/main/java/com/tenlionsoft/aimz_k/page/fragments/MineFragment.kt
index afb3b08..e771a4c 100644
--- a/app/src/main/java/com/tenlionsoft/aimz_k/page/fragments/MineFragment.kt
+++ b/app/src/main/java/com/tenlionsoft/aimz_k/page/fragments/MineFragment.kt
@@ -1,31 +1,82 @@
package com.tenlionsoft.aimz_k.page.fragments
-import androidx.fragment.app.viewModels
+import android.content.Context
+import android.content.Intent
import android.os.Bundle
-import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
+import androidx.databinding.DataBindingUtil
+import androidx.fragment.app.Fragment
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.ViewModelProvider
+import com.bumptech.glide.Glide
+import com.bumptech.glide.load.engine.DiskCacheStrategy
+import com.bumptech.glide.request.RequestOptions
import com.tenlionsoft.aimz_k.R
+import com.tenlionsoft.aimz_k.databinding.FragmentMineBinding
+import com.tenlionsoft.aimz_k.page.activity.MainActivity
+import com.tenlionsoft.aimz_k.page.activity.ManageReplyActivity
import com.tenlionsoft.aimz_k.viewmodel.MineViewModel
+import com.tenlionsoft.baselib.utils.SpUtils
class MineFragment : Fragment() {
+ private lateinit var mBind: FragmentMineBinding
+ private lateinit var mActivity: MainActivity
companion object {
fun newInstance() = MineFragment()
}
- private val viewModel: MineViewModel by viewModels()
+ private lateinit var viewModel: MineViewModel
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
-
- }
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View {
- return inflater.inflate(R.layout.fragment_mine, container, false)
+ mBind = DataBindingUtil.inflate(
+ layoutInflater,
+ R.layout.fragment_mine,
+ container,
+ false
+ )
+ viewModel = ViewModelProvider(this, object : ViewModelProvider.Factory {
+ override fun create(modelClass: Class): T {
+ return MineViewModel() as T
+ }
+ })[MineViewModel::class.java]
+ mBind.model = viewModel
+ mBind.lifecycleOwner = this
+
+ initView()
+ return mBind.root
+ }
+
+ private fun initView() {
+ mBind.tvName.text = SpUtils.getNickName()
+ mBind.tvAccount.text = SpUtils.getUserName()
+ val requestOptions = RequestOptions()
+ .error(R.drawable.ic_user_default)
+ .placeholder(R.drawable.ic_user_default)
+ .skipMemoryCache(false)
+ .diskCacheStrategy(DiskCacheStrategy.RESOURCE)
+ .centerInside()
+ Glide.with(mActivity)
+ .load(SpUtils.getAvatar())
+ .apply(requestOptions)
+ .into(mBind.ivUserIcon)
+ mBind.llSetting.setOnClickListener {
+ startActivity(Intent(mActivity, ManageReplyActivity::class.java))
+ }
+
+ }
+
+
+ override fun onAttach(context: Context) {
+ super.onAttach(context)
+ if (context is MainActivity) {
+ mActivity = context
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/tenlionsoft/aimz_k/viewmodel/ChatPageViewModel.kt b/app/src/main/java/com/tenlionsoft/aimz_k/viewmodel/ChatPageViewModel.kt
index c300ef4..f68c855 100644
--- a/app/src/main/java/com/tenlionsoft/aimz_k/viewmodel/ChatPageViewModel.kt
+++ b/app/src/main/java/com/tenlionsoft/aimz_k/viewmodel/ChatPageViewModel.kt
@@ -23,6 +23,7 @@ import com.tenlionsoft.aimz_k.model.MsgBean
import com.tenlionsoft.aimz_k.model.MsgConvertBean
import com.tenlionsoft.aimz_k.model.PickerType
import com.tenlionsoft.aimz_k.model.Receiver
+import com.tenlionsoft.aimz_k.model.ReplyBean
import com.tenlionsoft.aimz_k.model.Sender
import com.tenlionsoft.aimz_k.net.UserApi
import com.tenlionsoft.baselib.base.BaseViewModel
@@ -59,7 +60,7 @@ class ChatPageViewModel(
var onItemClickListener: AdapterItemClickListener? = null
private val mGson: Gson = Gson()
private var msgHandlerList: ArrayList = arrayListOf()
-
+ private val _replyList = MutableLiveData?>()
private val handler = object : Handler(Looper.getMainLooper()) {
override fun handleMessage(msg: Message) {
super.handleMessage(msg)
@@ -89,13 +90,26 @@ class ChatPageViewModel(
Log.e("ChatPageViewModel", "Init: ${showSendBtn.value}")
viewModelScope.launch {
val list = getList()
+ val rList = getReplyList()
Log.e("ChatPageViewModel", "Init:${list} ")
+ if (rList != null) {
+ _replyList.value = rList
+ } else {
+ _replyList.value = emptyList()
+ }
_msgList.value = list
adapter.setData(list)
scrollListToBottom.value = true
}
}
+ private suspend fun getReplyList(): List? {
+ return withContext(Dispatchers.IO) {
+ val rDao = DbManager.db.replayDao()
+ return@withContext rDao.getAllReply()
+ }
+ }
+
//获取列表
private suspend fun getList(): List {
return withContext(Dispatchers.IO) {
diff --git a/app/src/main/java/com/tenlionsoft/aimz_k/viewmodel/ManageReplyViewModel.kt b/app/src/main/java/com/tenlionsoft/aimz_k/viewmodel/ManageReplyViewModel.kt
new file mode 100644
index 0000000..bf22b8c
--- /dev/null
+++ b/app/src/main/java/com/tenlionsoft/aimz_k/viewmodel/ManageReplyViewModel.kt
@@ -0,0 +1,97 @@
+package com.tenlionsoft.aimz_k.viewmodel
+
+import android.util.Log
+import androidx.lifecycle.MutableLiveData
+import androidx.lifecycle.viewModelScope
+import com.tenlionsoft.aimz_k.adapter.ReplyAdapter
+import com.tenlionsoft.aimz_k.model.DbManager
+import com.tenlionsoft.aimz_k.model.ReplyBean
+import com.tenlionsoft.baselib.base.BaseViewModel
+import com.tenlionsoft.baselib.utils.ToastUtils
+import com.tenlionsoft.baselib.widget.AdapterItemLongClickListener
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
+
+class ManageReplyViewModel : BaseViewModel(), AdapterItemLongClickListener {
+
+ val txtMsg = MutableLiveData("")
+ val _replyList = MutableLiveData?>()
+ var adapter: ReplyAdapter = ReplyAdapter(_replyList.value ?: emptyList(), this)
+ var onItemLongClickListener: AdapterItemLongClickListener = this
+ val curBean = MutableLiveData()
+
+ init {
+ getList()
+ }
+
+ private fun getList() {
+ viewModelScope.launch {
+ val list: List? = withContext(Dispatchers.IO) {
+ val rDao = DbManager.db.replayDao()
+ val list = rDao.getAllReply()
+ list
+ }
+ if (!list.isNullOrEmpty()) {
+ _replyList.value = list
+ } else {
+ _replyList.value = emptyList()
+ }
+ Log.e("ManageReplyViewModel", "init:${adapter} ${Thread.currentThread().name}");
+ adapter.setData(_replyList.value!!)
+ }
+ }
+
+ fun onTxtChange(s: CharSequence, start: Int, before: Int, count: Int) {
+ txtMsg.value = s.toString()
+ }
+
+ //添加短语
+ fun toAddReply() {
+ if (txtMsg.value != null && txtMsg.value!!.isNotEmpty()) {
+ viewModelScope.launch {
+ withContext(Dispatchers.IO) {
+ val rDao = DbManager.db.replayDao()
+ if (curBean.value != null) {
+ //更新
+ rDao.updateContent(curBean.value!!.id, txtMsg.value!!)
+ } else {
+ //新增
+ val b = ReplyBean(content = txtMsg.value!!)
+ rDao.insert(b)
+ }
+ }
+ txtMsg.value = ""
+ curBean.value = null
+ ToastUtils.success("保存成功")
+ getList()
+ showSoftKeyboard.value = false
+ }
+ } else {
+ ToastUtils.error("请输入短语")
+ }
+
+ }
+
+ override fun onItemLongClick(type: Int, d: ReplyBean) {
+ when (type) {
+ //删除
+ 0 -> {
+ viewModelScope.launch {
+ withContext(Dispatchers.IO) {
+ val rDao = DbManager.db.replayDao()
+ rDao.delReply(d.id)
+ }
+ ToastUtils.success("删除成功")
+ getList()
+ }
+ }
+ //修改
+ 1 -> {
+ curBean.value = d
+ txtMsg.value = d.content
+ showSoftKeyboard.value = true
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/tenlionsoft/aimz_k/widget/BindingUtils.kt b/app/src/main/java/com/tenlionsoft/aimz_k/widget/BindingUtils.kt
index 5403e1a..4d46868 100644
--- a/app/src/main/java/com/tenlionsoft/aimz_k/widget/BindingUtils.kt
+++ b/app/src/main/java/com/tenlionsoft/aimz_k/widget/BindingUtils.kt
@@ -54,9 +54,9 @@ object BindingUtils {
.apply(requestOptions)
.into(imageView)
}
-
}
+
@BindingAdapter("imgResource")
@JvmStatic
fun bindImgUrl(imageView: ImageView, url: Int) {
diff --git a/app/src/main/res/drawable-xhdpi/ic_add_circle.png b/app/src/main/res/drawable-xhdpi/ic_add_circle.png
new file mode 100644
index 0000000..346ac83
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_add_circle.png differ
diff --git a/app/src/main/res/layout/activity_manage_reply.xml b/app/src/main/res/layout/activity_manage_reply.xml
new file mode 100644
index 0000000..64d187f
--- /dev/null
+++ b/app/src/main/res/layout/activity_manage_reply.xml
@@ -0,0 +1,110 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_mine.xml b/app/src/main/res/layout/fragment_mine.xml
index cac56dc..8ba93ac 100644
--- a/app/src/main/res/layout/fragment_mine.xml
+++ b/app/src/main/res/layout/fragment_mine.xml
@@ -4,6 +4,9 @@
+
@@ -33,6 +37,7 @@
android:orientation="vertical">
@@ -76,7 +83,7 @@
android:layout_marginLeft="10dp"
android:text="设置"
android:textColor="@color/txt_black"
- android:textSize="20sp" />
+ android:textSize="14sp" />
@@ -105,7 +112,7 @@
android:layout_marginLeft="10dp"
android:text="退出登录"
android:textColor="@color/txt_black"
- android:textSize="20sp" />
+ android:textSize="14sp" />
diff --git a/app/src/main/res/layout/item_reply.xml b/app/src/main/res/layout/item_reply.xml
new file mode 100644
index 0000000..e529c85
--- /dev/null
+++ b/app/src/main/res/layout/item_reply.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/base/BaseActivity.kt b/baselib/src/main/java/com/tenlionsoft/baselib/base/BaseActivity.kt
index 1b54c25..f3579b6 100644
--- a/baselib/src/main/java/com/tenlionsoft/baselib/base/BaseActivity.kt
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/base/BaseActivity.kt
@@ -37,16 +37,14 @@ abstract class BaseActivity : DataBindingActivity() {
private fun hideSoftKeyboard(et: View?) {
val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
- if (et != null) {
- imm.hideSoftInputFromWindow(et.windowToken, 0)
- }
+ et?.postDelayed({ imm.hideSoftInputFromWindow(et.windowToken, 0) }, 100)
}
fun showSoftKeyBoard(view: View?) {
val imm = getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager
- if (view != null) {
- imm.showSoftInput(view, 0)
- }
+ view?.postDelayed({
+ imm.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT)
+ }, 100)
}
fun setStatusBarColor(dark: Boolean) {
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/base/BaseViewModel.kt b/baselib/src/main/java/com/tenlionsoft/baselib/base/BaseViewModel.kt
index bf5c58b..61375f8 100644
--- a/baselib/src/main/java/com/tenlionsoft/baselib/base/BaseViewModel.kt
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/base/BaseViewModel.kt
@@ -7,5 +7,5 @@ import com.tenlionsoft.baselib.model.ViewState
open class BaseViewModel : ViewModel() {
val showLoadDialog = MutableLiveData()
val pageState = MutableLiveData()
- val showSoftKeyboard = MutableLiveData(false)
+ val showSoftKeyboard = MutableLiveData(false)
}
\ No newline at end of file
diff --git a/baselib/src/main/res/values/colors.xml b/baselib/src/main/res/values/colors.xml
index 43d6243..50a70c9 100644
--- a/baselib/src/main/res/values/colors.xml
+++ b/baselib/src/main/res/values/colors.xml
@@ -9,5 +9,6 @@
#E75D58
#45F68B
#6F6E6E
+ #E6E6E6
#000000
\ No newline at end of file