diff --git a/app/src/main/java/com/casic/br/fragment/MessagePageFragment.kt b/app/src/main/java/com/casic/br/fragment/MessagePageFragment.kt index 20c44ae..613e893 100644 --- a/app/src/main/java/com/casic/br/fragment/MessagePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/MessagePageFragment.kt @@ -4,9 +4,11 @@ import androidx.lifecycle.ViewModelProvider import com.casic.br.R import com.casic.br.adapter.MessageListAdapter +import com.casic.br.base.BaseApplication import com.casic.br.extensions.initLayoutImmersionBar import com.casic.br.extensions.showEmptyPage import com.casic.br.model.PushMessageModel +import com.casic.br.utils.BadeHelper import com.casic.br.vm.MessageViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.show @@ -27,6 +29,7 @@ private var pageIndex = 1 private var isRefresh = false private var isLoadMore = false + private var clickedPosition = 0 override fun initLayoutView(): Int = R.layout.fragment_message @@ -40,29 +43,55 @@ messageViewModel = ViewModelProvider(this)[MessageViewModel::class.java] messageViewModel.listModel.observe(this, { if (it.code == 200) { - val dataRows = it.data?.rows + val dataRows = it.data?.rows!! + countBadeNumber(dataRows) when { isRefresh -> { dataBeans.clear() - dataBeans = dataRows!! + dataBeans = dataRows messageLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows?.size == 0) { + if (dataRows.size == 0) { "到底了,别拉了".show(requireContext()) } - dataBeans.addAll(dataRows!!) + dataBeans.addAll(dataRows) messageLayout.finishLoadMore() isLoadMore = false } else -> { - dataBeans = dataRows!! + dataBeans = dataRows } } weakReferenceHandler.sendEmptyMessage(2022101001) } }) + + messageViewModel.deleteResult.observe(this, { + dataBeans.removeAt(clickedPosition) + messageAdapter.notifyItemRemoved(clickedPosition) + messageAdapter.notifyItemRangeChanged( + clickedPosition, dataBeans.size - clickedPosition + ) + countBadeNumber(dataBeans) + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage("没有任何消息") { + pageIndex = 1 + obtainMessageListByPage() + } + } + }) + + messageViewModel.updateResult.observe(this, { + val rowsModel = dataBeans[clickedPosition] + rowsModel.messageStatus = "1" + messageAdapter.notifyItemChanged(clickedPosition) + messageAdapter.notifyItemRangeChanged( + clickedPosition, dataBeans.size - clickedPosition + ) + countBadeNumber(dataBeans) + }) } override fun initEvent() { @@ -93,43 +122,54 @@ messageViewModel.obtainMessageListByPage("", "", "", pageIndex) } - private val callback = Handler.Callback { - if (it.what == 2022101001) { - if (isRefresh || isLoadMore) { - messageAdapter.notifyDataSetChanged() - } else { - if (dataBeans.size == 0) { - emptyView!!.showEmptyPage("没有任何消息") { - pageIndex = 1 - obtainMessageListByPage() - } - } else { - emptyView!!.hide() - messageAdapter = MessageListAdapter(requireContext(), dataBeans) - messageRecyclerView.adapter = messageAdapter - messageAdapter.setOnItemClickListener(object : - MessageListAdapter.OnItemClickListener { - override fun onDeleteClicked(position: Int) { - messageViewModel.deleteMessageById(dataBeans[position].id) - dataBeans.removeAt(position) - messageAdapter.notifyItemRemoved(position) - messageAdapter.notifyItemRangeChanged( - position, dataBeans.size - position - ) - } + private fun countBadeNumber(dataRows: MutableList) { + var unReadMessage = 0 + dataRows.forEach { message -> + if (message.messageStatus == "0") { + unReadMessage += 1 + } + } + BadeHelper.setBadgeNum(BaseApplication.obtainInstance(), unReadMessage) + } - override fun onShowMoreClicked(position: Int) { -// deviceViewModel.obtainDeviceDetail(dataBeans[position].deviceCode) - //更改数据库里通知状态 - messageViewModel.updateMessageById(dataBeans[position].id, "1") - messageAdapter.notifyItemChanged(position) - messageAdapter.notifyItemRangeChanged( - position, dataBeans.size - position - ) + private val callback = Handler.Callback { + when (it.what) { + 2022101001 -> { + if (isRefresh || isLoadMore) { + messageAdapter.notifyDataSetChanged() + } else { + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage("没有任何消息") { + pageIndex = 1 + obtainMessageListByPage() } - }) + } else { + emptyView!!.hide() + messageAdapter = MessageListAdapter(requireContext(), dataBeans) + messageRecyclerView.adapter = messageAdapter + messageAdapter.setOnItemClickListener(object : + MessageListAdapter.OnItemClickListener { + override fun onDeleteClicked(position: Int) { + clickedPosition = position + messageViewModel.deleteMessageById(dataBeans[clickedPosition].id) + } + + override fun onShowMoreClicked(position: Int) { + //更改数据库里通知状态 + clickedPosition = position + messageViewModel.updateMessageById( + dataBeans[clickedPosition].id, "1" + ) + } + }) + } } } + 2022101002 -> { + isRefresh = true + pageIndex = 1 + obtainMessageListByPage() + } } true } diff --git a/app/src/main/java/com/casic/br/fragment/MessagePageFragment.kt b/app/src/main/java/com/casic/br/fragment/MessagePageFragment.kt index 20c44ae..613e893 100644 --- a/app/src/main/java/com/casic/br/fragment/MessagePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/MessagePageFragment.kt @@ -4,9 +4,11 @@ import androidx.lifecycle.ViewModelProvider import com.casic.br.R import com.casic.br.adapter.MessageListAdapter +import com.casic.br.base.BaseApplication import com.casic.br.extensions.initLayoutImmersionBar import com.casic.br.extensions.showEmptyPage import com.casic.br.model.PushMessageModel +import com.casic.br.utils.BadeHelper import com.casic.br.vm.MessageViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.show @@ -27,6 +29,7 @@ private var pageIndex = 1 private var isRefresh = false private var isLoadMore = false + private var clickedPosition = 0 override fun initLayoutView(): Int = R.layout.fragment_message @@ -40,29 +43,55 @@ messageViewModel = ViewModelProvider(this)[MessageViewModel::class.java] messageViewModel.listModel.observe(this, { if (it.code == 200) { - val dataRows = it.data?.rows + val dataRows = it.data?.rows!! + countBadeNumber(dataRows) when { isRefresh -> { dataBeans.clear() - dataBeans = dataRows!! + dataBeans = dataRows messageLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows?.size == 0) { + if (dataRows.size == 0) { "到底了,别拉了".show(requireContext()) } - dataBeans.addAll(dataRows!!) + dataBeans.addAll(dataRows) messageLayout.finishLoadMore() isLoadMore = false } else -> { - dataBeans = dataRows!! + dataBeans = dataRows } } weakReferenceHandler.sendEmptyMessage(2022101001) } }) + + messageViewModel.deleteResult.observe(this, { + dataBeans.removeAt(clickedPosition) + messageAdapter.notifyItemRemoved(clickedPosition) + messageAdapter.notifyItemRangeChanged( + clickedPosition, dataBeans.size - clickedPosition + ) + countBadeNumber(dataBeans) + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage("没有任何消息") { + pageIndex = 1 + obtainMessageListByPage() + } + } + }) + + messageViewModel.updateResult.observe(this, { + val rowsModel = dataBeans[clickedPosition] + rowsModel.messageStatus = "1" + messageAdapter.notifyItemChanged(clickedPosition) + messageAdapter.notifyItemRangeChanged( + clickedPosition, dataBeans.size - clickedPosition + ) + countBadeNumber(dataBeans) + }) } override fun initEvent() { @@ -93,43 +122,54 @@ messageViewModel.obtainMessageListByPage("", "", "", pageIndex) } - private val callback = Handler.Callback { - if (it.what == 2022101001) { - if (isRefresh || isLoadMore) { - messageAdapter.notifyDataSetChanged() - } else { - if (dataBeans.size == 0) { - emptyView!!.showEmptyPage("没有任何消息") { - pageIndex = 1 - obtainMessageListByPage() - } - } else { - emptyView!!.hide() - messageAdapter = MessageListAdapter(requireContext(), dataBeans) - messageRecyclerView.adapter = messageAdapter - messageAdapter.setOnItemClickListener(object : - MessageListAdapter.OnItemClickListener { - override fun onDeleteClicked(position: Int) { - messageViewModel.deleteMessageById(dataBeans[position].id) - dataBeans.removeAt(position) - messageAdapter.notifyItemRemoved(position) - messageAdapter.notifyItemRangeChanged( - position, dataBeans.size - position - ) - } + private fun countBadeNumber(dataRows: MutableList) { + var unReadMessage = 0 + dataRows.forEach { message -> + if (message.messageStatus == "0") { + unReadMessage += 1 + } + } + BadeHelper.setBadgeNum(BaseApplication.obtainInstance(), unReadMessage) + } - override fun onShowMoreClicked(position: Int) { -// deviceViewModel.obtainDeviceDetail(dataBeans[position].deviceCode) - //更改数据库里通知状态 - messageViewModel.updateMessageById(dataBeans[position].id, "1") - messageAdapter.notifyItemChanged(position) - messageAdapter.notifyItemRangeChanged( - position, dataBeans.size - position - ) + private val callback = Handler.Callback { + when (it.what) { + 2022101001 -> { + if (isRefresh || isLoadMore) { + messageAdapter.notifyDataSetChanged() + } else { + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage("没有任何消息") { + pageIndex = 1 + obtainMessageListByPage() } - }) + } else { + emptyView!!.hide() + messageAdapter = MessageListAdapter(requireContext(), dataBeans) + messageRecyclerView.adapter = messageAdapter + messageAdapter.setOnItemClickListener(object : + MessageListAdapter.OnItemClickListener { + override fun onDeleteClicked(position: Int) { + clickedPosition = position + messageViewModel.deleteMessageById(dataBeans[clickedPosition].id) + } + + override fun onShowMoreClicked(position: Int) { + //更改数据库里通知状态 + clickedPosition = position + messageViewModel.updateMessageById( + dataBeans[clickedPosition].id, "1" + ) + } + }) + } } } + 2022101002 -> { + isRefresh = true + pageIndex = 1 + obtainMessageListByPage() + } } true } diff --git a/app/src/main/java/com/casic/br/service/PushIntentService.kt b/app/src/main/java/com/casic/br/service/PushIntentService.kt index 5035789..b4b3301 100644 --- a/app/src/main/java/com/casic/br/service/PushIntentService.kt +++ b/app/src/main/java/com/casic/br/service/PushIntentService.kt @@ -46,7 +46,7 @@ return } Log.d(kTag, "通知到达 -> msg = ${msg.toJson()}") - MessagePageFragment.weakReferenceHandler.sendEmptyMessage(2022101001) + MessagePageFragment.weakReferenceHandler.sendEmptyMessage(2022101002) } // 通知点击 diff --git a/app/src/main/java/com/casic/br/fragment/MessagePageFragment.kt b/app/src/main/java/com/casic/br/fragment/MessagePageFragment.kt index 20c44ae..613e893 100644 --- a/app/src/main/java/com/casic/br/fragment/MessagePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/MessagePageFragment.kt @@ -4,9 +4,11 @@ import androidx.lifecycle.ViewModelProvider import com.casic.br.R import com.casic.br.adapter.MessageListAdapter +import com.casic.br.base.BaseApplication import com.casic.br.extensions.initLayoutImmersionBar import com.casic.br.extensions.showEmptyPage import com.casic.br.model.PushMessageModel +import com.casic.br.utils.BadeHelper import com.casic.br.vm.MessageViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.show @@ -27,6 +29,7 @@ private var pageIndex = 1 private var isRefresh = false private var isLoadMore = false + private var clickedPosition = 0 override fun initLayoutView(): Int = R.layout.fragment_message @@ -40,29 +43,55 @@ messageViewModel = ViewModelProvider(this)[MessageViewModel::class.java] messageViewModel.listModel.observe(this, { if (it.code == 200) { - val dataRows = it.data?.rows + val dataRows = it.data?.rows!! + countBadeNumber(dataRows) when { isRefresh -> { dataBeans.clear() - dataBeans = dataRows!! + dataBeans = dataRows messageLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows?.size == 0) { + if (dataRows.size == 0) { "到底了,别拉了".show(requireContext()) } - dataBeans.addAll(dataRows!!) + dataBeans.addAll(dataRows) messageLayout.finishLoadMore() isLoadMore = false } else -> { - dataBeans = dataRows!! + dataBeans = dataRows } } weakReferenceHandler.sendEmptyMessage(2022101001) } }) + + messageViewModel.deleteResult.observe(this, { + dataBeans.removeAt(clickedPosition) + messageAdapter.notifyItemRemoved(clickedPosition) + messageAdapter.notifyItemRangeChanged( + clickedPosition, dataBeans.size - clickedPosition + ) + countBadeNumber(dataBeans) + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage("没有任何消息") { + pageIndex = 1 + obtainMessageListByPage() + } + } + }) + + messageViewModel.updateResult.observe(this, { + val rowsModel = dataBeans[clickedPosition] + rowsModel.messageStatus = "1" + messageAdapter.notifyItemChanged(clickedPosition) + messageAdapter.notifyItemRangeChanged( + clickedPosition, dataBeans.size - clickedPosition + ) + countBadeNumber(dataBeans) + }) } override fun initEvent() { @@ -93,43 +122,54 @@ messageViewModel.obtainMessageListByPage("", "", "", pageIndex) } - private val callback = Handler.Callback { - if (it.what == 2022101001) { - if (isRefresh || isLoadMore) { - messageAdapter.notifyDataSetChanged() - } else { - if (dataBeans.size == 0) { - emptyView!!.showEmptyPage("没有任何消息") { - pageIndex = 1 - obtainMessageListByPage() - } - } else { - emptyView!!.hide() - messageAdapter = MessageListAdapter(requireContext(), dataBeans) - messageRecyclerView.adapter = messageAdapter - messageAdapter.setOnItemClickListener(object : - MessageListAdapter.OnItemClickListener { - override fun onDeleteClicked(position: Int) { - messageViewModel.deleteMessageById(dataBeans[position].id) - dataBeans.removeAt(position) - messageAdapter.notifyItemRemoved(position) - messageAdapter.notifyItemRangeChanged( - position, dataBeans.size - position - ) - } + private fun countBadeNumber(dataRows: MutableList) { + var unReadMessage = 0 + dataRows.forEach { message -> + if (message.messageStatus == "0") { + unReadMessage += 1 + } + } + BadeHelper.setBadgeNum(BaseApplication.obtainInstance(), unReadMessage) + } - override fun onShowMoreClicked(position: Int) { -// deviceViewModel.obtainDeviceDetail(dataBeans[position].deviceCode) - //更改数据库里通知状态 - messageViewModel.updateMessageById(dataBeans[position].id, "1") - messageAdapter.notifyItemChanged(position) - messageAdapter.notifyItemRangeChanged( - position, dataBeans.size - position - ) + private val callback = Handler.Callback { + when (it.what) { + 2022101001 -> { + if (isRefresh || isLoadMore) { + messageAdapter.notifyDataSetChanged() + } else { + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage("没有任何消息") { + pageIndex = 1 + obtainMessageListByPage() } - }) + } else { + emptyView!!.hide() + messageAdapter = MessageListAdapter(requireContext(), dataBeans) + messageRecyclerView.adapter = messageAdapter + messageAdapter.setOnItemClickListener(object : + MessageListAdapter.OnItemClickListener { + override fun onDeleteClicked(position: Int) { + clickedPosition = position + messageViewModel.deleteMessageById(dataBeans[clickedPosition].id) + } + + override fun onShowMoreClicked(position: Int) { + //更改数据库里通知状态 + clickedPosition = position + messageViewModel.updateMessageById( + dataBeans[clickedPosition].id, "1" + ) + } + }) + } } } + 2022101002 -> { + isRefresh = true + pageIndex = 1 + obtainMessageListByPage() + } } true } diff --git a/app/src/main/java/com/casic/br/service/PushIntentService.kt b/app/src/main/java/com/casic/br/service/PushIntentService.kt index 5035789..b4b3301 100644 --- a/app/src/main/java/com/casic/br/service/PushIntentService.kt +++ b/app/src/main/java/com/casic/br/service/PushIntentService.kt @@ -46,7 +46,7 @@ return } Log.d(kTag, "通知到达 -> msg = ${msg.toJson()}") - MessagePageFragment.weakReferenceHandler.sendEmptyMessage(2022101001) + MessagePageFragment.weakReferenceHandler.sendEmptyMessage(2022101002) } // 通知点击 diff --git a/app/src/main/java/com/casic/br/vm/MessageViewModel.kt b/app/src/main/java/com/casic/br/vm/MessageViewModel.kt index d37e1e6..05fe059 100644 --- a/app/src/main/java/com/casic/br/vm/MessageViewModel.kt +++ b/app/src/main/java/com/casic/br/vm/MessageViewModel.kt @@ -4,6 +4,7 @@ import com.casic.br.base.BaseApplication import com.casic.br.extensions.separateResponseCode import com.casic.br.extensions.toErrorMessage +import com.casic.br.model.CommonResultModel import com.casic.br.model.PushMessageModel import com.casic.br.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson @@ -16,6 +17,8 @@ private val gson by lazy { Gson() } val listModel = MutableLiveData() + val deleteResult = MutableLiveData() + val updateResult = MutableLiveData() fun obtainMessageListByPage( messageCode: String, messageTitle: String, messageContent: String, offset: Int @@ -38,7 +41,11 @@ fun deleteMessageById(id: String) = launch({ val response = RetrofitServiceManager.deleteMessageById(id) val responseCode = response.separateResponseCode() - if (responseCode != 200) { + if (responseCode == 200) { + deleteResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } else { response.toErrorMessage().show(BaseApplication.obtainInstance()) } }, { @@ -48,7 +55,11 @@ fun updateMessageById(id: String, messageStatus: String) = launch({ val response = RetrofitServiceManager.updateMessageById(id, messageStatus) val responseCode = response.separateResponseCode() - if (responseCode != 200) { + if (responseCode == 200) { + updateResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } else { response.toErrorMessage().show(BaseApplication.obtainInstance()) } }, { diff --git a/app/src/main/java/com/casic/br/fragment/MessagePageFragment.kt b/app/src/main/java/com/casic/br/fragment/MessagePageFragment.kt index 20c44ae..613e893 100644 --- a/app/src/main/java/com/casic/br/fragment/MessagePageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/MessagePageFragment.kt @@ -4,9 +4,11 @@ import androidx.lifecycle.ViewModelProvider import com.casic.br.R import com.casic.br.adapter.MessageListAdapter +import com.casic.br.base.BaseApplication import com.casic.br.extensions.initLayoutImmersionBar import com.casic.br.extensions.showEmptyPage import com.casic.br.model.PushMessageModel +import com.casic.br.utils.BadeHelper import com.casic.br.vm.MessageViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.extensions.show @@ -27,6 +29,7 @@ private var pageIndex = 1 private var isRefresh = false private var isLoadMore = false + private var clickedPosition = 0 override fun initLayoutView(): Int = R.layout.fragment_message @@ -40,29 +43,55 @@ messageViewModel = ViewModelProvider(this)[MessageViewModel::class.java] messageViewModel.listModel.observe(this, { if (it.code == 200) { - val dataRows = it.data?.rows + val dataRows = it.data?.rows!! + countBadeNumber(dataRows) when { isRefresh -> { dataBeans.clear() - dataBeans = dataRows!! + dataBeans = dataRows messageLayout.finishRefresh() isRefresh = false } isLoadMore -> { - if (dataRows?.size == 0) { + if (dataRows.size == 0) { "到底了,别拉了".show(requireContext()) } - dataBeans.addAll(dataRows!!) + dataBeans.addAll(dataRows) messageLayout.finishLoadMore() isLoadMore = false } else -> { - dataBeans = dataRows!! + dataBeans = dataRows } } weakReferenceHandler.sendEmptyMessage(2022101001) } }) + + messageViewModel.deleteResult.observe(this, { + dataBeans.removeAt(clickedPosition) + messageAdapter.notifyItemRemoved(clickedPosition) + messageAdapter.notifyItemRangeChanged( + clickedPosition, dataBeans.size - clickedPosition + ) + countBadeNumber(dataBeans) + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage("没有任何消息") { + pageIndex = 1 + obtainMessageListByPage() + } + } + }) + + messageViewModel.updateResult.observe(this, { + val rowsModel = dataBeans[clickedPosition] + rowsModel.messageStatus = "1" + messageAdapter.notifyItemChanged(clickedPosition) + messageAdapter.notifyItemRangeChanged( + clickedPosition, dataBeans.size - clickedPosition + ) + countBadeNumber(dataBeans) + }) } override fun initEvent() { @@ -93,43 +122,54 @@ messageViewModel.obtainMessageListByPage("", "", "", pageIndex) } - private val callback = Handler.Callback { - if (it.what == 2022101001) { - if (isRefresh || isLoadMore) { - messageAdapter.notifyDataSetChanged() - } else { - if (dataBeans.size == 0) { - emptyView!!.showEmptyPage("没有任何消息") { - pageIndex = 1 - obtainMessageListByPage() - } - } else { - emptyView!!.hide() - messageAdapter = MessageListAdapter(requireContext(), dataBeans) - messageRecyclerView.adapter = messageAdapter - messageAdapter.setOnItemClickListener(object : - MessageListAdapter.OnItemClickListener { - override fun onDeleteClicked(position: Int) { - messageViewModel.deleteMessageById(dataBeans[position].id) - dataBeans.removeAt(position) - messageAdapter.notifyItemRemoved(position) - messageAdapter.notifyItemRangeChanged( - position, dataBeans.size - position - ) - } + private fun countBadeNumber(dataRows: MutableList) { + var unReadMessage = 0 + dataRows.forEach { message -> + if (message.messageStatus == "0") { + unReadMessage += 1 + } + } + BadeHelper.setBadgeNum(BaseApplication.obtainInstance(), unReadMessage) + } - override fun onShowMoreClicked(position: Int) { -// deviceViewModel.obtainDeviceDetail(dataBeans[position].deviceCode) - //更改数据库里通知状态 - messageViewModel.updateMessageById(dataBeans[position].id, "1") - messageAdapter.notifyItemChanged(position) - messageAdapter.notifyItemRangeChanged( - position, dataBeans.size - position - ) + private val callback = Handler.Callback { + when (it.what) { + 2022101001 -> { + if (isRefresh || isLoadMore) { + messageAdapter.notifyDataSetChanged() + } else { + if (dataBeans.size == 0) { + emptyView!!.showEmptyPage("没有任何消息") { + pageIndex = 1 + obtainMessageListByPage() } - }) + } else { + emptyView!!.hide() + messageAdapter = MessageListAdapter(requireContext(), dataBeans) + messageRecyclerView.adapter = messageAdapter + messageAdapter.setOnItemClickListener(object : + MessageListAdapter.OnItemClickListener { + override fun onDeleteClicked(position: Int) { + clickedPosition = position + messageViewModel.deleteMessageById(dataBeans[clickedPosition].id) + } + + override fun onShowMoreClicked(position: Int) { + //更改数据库里通知状态 + clickedPosition = position + messageViewModel.updateMessageById( + dataBeans[clickedPosition].id, "1" + ) + } + }) + } } } + 2022101002 -> { + isRefresh = true + pageIndex = 1 + obtainMessageListByPage() + } } true } diff --git a/app/src/main/java/com/casic/br/service/PushIntentService.kt b/app/src/main/java/com/casic/br/service/PushIntentService.kt index 5035789..b4b3301 100644 --- a/app/src/main/java/com/casic/br/service/PushIntentService.kt +++ b/app/src/main/java/com/casic/br/service/PushIntentService.kt @@ -46,7 +46,7 @@ return } Log.d(kTag, "通知到达 -> msg = ${msg.toJson()}") - MessagePageFragment.weakReferenceHandler.sendEmptyMessage(2022101001) + MessagePageFragment.weakReferenceHandler.sendEmptyMessage(2022101002) } // 通知点击 diff --git a/app/src/main/java/com/casic/br/vm/MessageViewModel.kt b/app/src/main/java/com/casic/br/vm/MessageViewModel.kt index d37e1e6..05fe059 100644 --- a/app/src/main/java/com/casic/br/vm/MessageViewModel.kt +++ b/app/src/main/java/com/casic/br/vm/MessageViewModel.kt @@ -4,6 +4,7 @@ import com.casic.br.base.BaseApplication import com.casic.br.extensions.separateResponseCode import com.casic.br.extensions.toErrorMessage +import com.casic.br.model.CommonResultModel import com.casic.br.model.PushMessageModel import com.casic.br.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson @@ -16,6 +17,8 @@ private val gson by lazy { Gson() } val listModel = MutableLiveData() + val deleteResult = MutableLiveData() + val updateResult = MutableLiveData() fun obtainMessageListByPage( messageCode: String, messageTitle: String, messageContent: String, offset: Int @@ -38,7 +41,11 @@ fun deleteMessageById(id: String) = launch({ val response = RetrofitServiceManager.deleteMessageById(id) val responseCode = response.separateResponseCode() - if (responseCode != 200) { + if (responseCode == 200) { + deleteResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } else { response.toErrorMessage().show(BaseApplication.obtainInstance()) } }, { @@ -48,7 +55,11 @@ fun updateMessageById(id: String, messageStatus: String) = launch({ val response = RetrofitServiceManager.updateMessageById(id, messageStatus) val responseCode = response.separateResponseCode() - if (responseCode != 200) { + if (responseCode == 200) { + updateResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } else { response.toErrorMessage().show(BaseApplication.obtainInstance()) } }, { diff --git a/app/src/main/res/layout/item_message_rv_l.xml b/app/src/main/res/layout/item_message_rv_l.xml index 27201df..bc502fc 100644 --- a/app/src/main/res/layout/item_message_rv_l.xml +++ b/app/src/main/res/layout/item_message_rv_l.xml @@ -76,7 +76,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" - android:text="点击查看" + android:text="标记已读" android:textColor="@color/mainTextColor" android:textSize="@dimen/sp_14" /> @@ -87,11 +87,6 @@ android:layout_gravity="center_vertical" android:layout_marginHorizontal="@dimen/dp_3" android:background="@drawable/dot_red" /> - - \ No newline at end of file