diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index 716593d..cb6dcfc 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -57,6 +57,15 @@ ): String /** + * 通知公告已读 + */ + @POST("/system/notice/read") + suspend fun readNotice( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** * 获取设备列表 */ @POST("/meter/assets/listPage") diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index 716593d..cb6dcfc 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -57,6 +57,15 @@ ): String /** + * 通知公告已读 + */ + @POST("/system/notice/read") + suspend fun readNotice( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** * 获取设备列表 */ @POST("/meter/assets/listPage") diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index ed81ea1..5a06108 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -108,6 +108,20 @@ } /** + * TODO 参数异常 + * 通知公告已读 + */ + suspend fun readNotice(userId: String, ids: Array): String { + val param = JsonObject() + param.addProperty("userId", userId) + param.add("ids", gson.toJsonTree(ids, typeToken).asJsonArray) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.readNotice(AuthenticationHelper.token!!, requestBody) + } + + /** * 获取设备列表 */ suspend fun getEquipmentList( diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index 716593d..cb6dcfc 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -57,6 +57,15 @@ ): String /** + * 通知公告已读 + */ + @POST("/system/notice/read") + suspend fun readNotice( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** * 获取设备列表 */ @POST("/meter/assets/listPage") diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index ed81ea1..5a06108 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -108,6 +108,20 @@ } /** + * TODO 参数异常 + * 通知公告已读 + */ + suspend fun readNotice(userId: String, ids: Array): String { + val param = JsonObject() + param.addProperty("userId", userId) + param.add("ids", gson.toJsonTree(ids, typeToken).asJsonArray) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.readNotice(AuthenticationHelper.token!!, requestBody) + } + + /** * 获取设备列表 */ suspend fun getEquipmentList( diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 68222e5..7f79a55 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -1,8 +1,11 @@ package com.casic.xz.meterage.view.notice +import android.content.Intent +import android.net.Uri import android.os.Handler import android.util.Log import android.view.View +import androidx.core.app.NotificationManagerCompat import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R @@ -11,13 +14,18 @@ import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.NoticeListModel +import com.casic.xz.meterage.model.UserInfoModel +import com.casic.xz.meterage.utils.BadeHelper +import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.NoticeViewModel +import com.casic.xz.meterage.vm.UserViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_notice_list.* @@ -26,8 +34,10 @@ class NoticeListActivity : KotlinBaseActivity() { private lateinit var weakReferenceHandler: WeakReferenceHandler + private lateinit var userViewModel: UserViewModel private lateinit var noticeViewModel: NoticeViewModel private lateinit var noticeAdapter: NormalRecyclerAdapter + private lateinit var userInfo: UserInfoModel.DataModel private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -35,11 +45,18 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) + userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) + userViewModel.userInfo.observe(this) { + if (it.code == 200) { + userInfo = it.data + } + } + noticeViewModel = ViewModelProvider(this)[NoticeViewModel::class.java] noticeViewModel.noticeList.observe(this) { if (it.code == 200) { val dataRows = it.data?.rows!! -// countBadeNumber(dataRows) when { isRefresh -> { dataBeans.clear() @@ -62,6 +79,13 @@ weakReferenceHandler.sendEmptyMessage(2023013101) } } + + noticeViewModel.readNoticeResult.observe(this) { + if (it.code == 200) { + //刷新列表小红点 + weakReferenceHandler.sendEmptyMessage(2023013101) + } + } } override fun initEvent() { @@ -80,25 +104,11 @@ } override fun onConfirmClick() { - //TODO 设置为已读 + noticeViewModel.readNotice(userInfo.id, arrayOf()) } }).build().show() } - if (hasNoticePermission()) { - openSystemNoticeLayout.visibility = View.GONE - openSystemNoticeLayout.visibility = View.GONE - } else { - openSystemNoticeLayout.setOnClickListener { - - } - - - closeLayoutView.setOnClickListener { - openSystemNoticeLayout.visibility = View.GONE - } - } - noticeLayout.setOnRefreshListener { isRefresh = true //刷新之后页码重置 @@ -115,6 +125,25 @@ override fun onResume() { super.onResume() + //判断通知栏权限 + if (NotificationManagerCompat.from(this).areNotificationsEnabled()) { + openSystemNoticeLayout.visibility = View.GONE + openSystemNoticeLayout.visibility = View.GONE + } else { + openSystemNoticeLayout.setOnClickListener { + val localIntent = Intent() + localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + localIntent.action = "android.settings.APPLICATION_DETAILS_SETTINGS" + localIntent.data = Uri.fromParts("package", packageName, null) + startActivity(localIntent) + } + + + closeLayoutView.setOnClickListener { + openSystemNoticeLayout.visibility = View.GONE + } + } + pageIndex = 1 getNoticeListByPage() } @@ -129,6 +158,7 @@ if (isRefresh || isLoadMore) { noticeAdapter.notifyDataSetChanged() } else { + BadeHelper.setBadgeNum(this, dataBeans.size) if (dataBeans.size == 0) { emptyView!!.showEmptyPage("没有任何消息") { pageIndex = 1 diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index 716593d..cb6dcfc 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -57,6 +57,15 @@ ): String /** + * 通知公告已读 + */ + @POST("/system/notice/read") + suspend fun readNotice( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** * 获取设备列表 */ @POST("/meter/assets/listPage") diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index ed81ea1..5a06108 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -108,6 +108,20 @@ } /** + * TODO 参数异常 + * 通知公告已读 + */ + suspend fun readNotice(userId: String, ids: Array): String { + val param = JsonObject() + param.addProperty("userId", userId) + param.add("ids", gson.toJsonTree(ids, typeToken).asJsonArray) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.readNotice(AuthenticationHelper.token!!, requestBody) + } + + /** * 获取设备列表 */ suspend fun getEquipmentList( diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 68222e5..7f79a55 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -1,8 +1,11 @@ package com.casic.xz.meterage.view.notice +import android.content.Intent +import android.net.Uri import android.os.Handler import android.util.Log import android.view.View +import androidx.core.app.NotificationManagerCompat import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R @@ -11,13 +14,18 @@ import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.NoticeListModel +import com.casic.xz.meterage.model.UserInfoModel +import com.casic.xz.meterage.utils.BadeHelper +import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.NoticeViewModel +import com.casic.xz.meterage.vm.UserViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_notice_list.* @@ -26,8 +34,10 @@ class NoticeListActivity : KotlinBaseActivity() { private lateinit var weakReferenceHandler: WeakReferenceHandler + private lateinit var userViewModel: UserViewModel private lateinit var noticeViewModel: NoticeViewModel private lateinit var noticeAdapter: NormalRecyclerAdapter + private lateinit var userInfo: UserInfoModel.DataModel private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -35,11 +45,18 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) + userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) + userViewModel.userInfo.observe(this) { + if (it.code == 200) { + userInfo = it.data + } + } + noticeViewModel = ViewModelProvider(this)[NoticeViewModel::class.java] noticeViewModel.noticeList.observe(this) { if (it.code == 200) { val dataRows = it.data?.rows!! -// countBadeNumber(dataRows) when { isRefresh -> { dataBeans.clear() @@ -62,6 +79,13 @@ weakReferenceHandler.sendEmptyMessage(2023013101) } } + + noticeViewModel.readNoticeResult.observe(this) { + if (it.code == 200) { + //刷新列表小红点 + weakReferenceHandler.sendEmptyMessage(2023013101) + } + } } override fun initEvent() { @@ -80,25 +104,11 @@ } override fun onConfirmClick() { - //TODO 设置为已读 + noticeViewModel.readNotice(userInfo.id, arrayOf()) } }).build().show() } - if (hasNoticePermission()) { - openSystemNoticeLayout.visibility = View.GONE - openSystemNoticeLayout.visibility = View.GONE - } else { - openSystemNoticeLayout.setOnClickListener { - - } - - - closeLayoutView.setOnClickListener { - openSystemNoticeLayout.visibility = View.GONE - } - } - noticeLayout.setOnRefreshListener { isRefresh = true //刷新之后页码重置 @@ -115,6 +125,25 @@ override fun onResume() { super.onResume() + //判断通知栏权限 + if (NotificationManagerCompat.from(this).areNotificationsEnabled()) { + openSystemNoticeLayout.visibility = View.GONE + openSystemNoticeLayout.visibility = View.GONE + } else { + openSystemNoticeLayout.setOnClickListener { + val localIntent = Intent() + localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + localIntent.action = "android.settings.APPLICATION_DETAILS_SETTINGS" + localIntent.data = Uri.fromParts("package", packageName, null) + startActivity(localIntent) + } + + + closeLayoutView.setOnClickListener { + openSystemNoticeLayout.visibility = View.GONE + } + } + pageIndex = 1 getNoticeListByPage() } @@ -129,6 +158,7 @@ if (isRefresh || isLoadMore) { noticeAdapter.notifyDataSetChanged() } else { + BadeHelper.setBadgeNum(this, dataBeans.size) if (dataBeans.size == 0) { emptyView!!.showEmptyPage("没有任何消息") { pageIndex = 1 diff --git a/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt index 7f97fa1..3565eb2 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt @@ -3,6 +3,7 @@ import androidx.lifecycle.MutableLiveData import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.extensions.separateResponseCode +import com.casic.xz.meterage.model.ActionResultModel import com.casic.xz.meterage.model.NoticeListModel import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson @@ -18,6 +19,7 @@ private val gson by lazy { Gson() } val noticeList = MutableLiveData() + val readNoticeResult = MutableLiveData() fun getNoticeList( noticeNo: String, @@ -44,4 +46,16 @@ }, { it.cause.toString().show(BaseApplication.get()) }) + + fun readNotice(userId: String, ids: Array) = launch({ + val response = RetrofitServiceManager.readNotice(userId, ids) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + readNoticeResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + }, { + it.cause.toString().show(BaseApplication.get()) + }) } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index 716593d..cb6dcfc 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -57,6 +57,15 @@ ): String /** + * 通知公告已读 + */ + @POST("/system/notice/read") + suspend fun readNotice( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** * 获取设备列表 */ @POST("/meter/assets/listPage") diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index ed81ea1..5a06108 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -108,6 +108,20 @@ } /** + * TODO 参数异常 + * 通知公告已读 + */ + suspend fun readNotice(userId: String, ids: Array): String { + val param = JsonObject() + param.addProperty("userId", userId) + param.add("ids", gson.toJsonTree(ids, typeToken).asJsonArray) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.readNotice(AuthenticationHelper.token!!, requestBody) + } + + /** * 获取设备列表 */ suspend fun getEquipmentList( diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 68222e5..7f79a55 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -1,8 +1,11 @@ package com.casic.xz.meterage.view.notice +import android.content.Intent +import android.net.Uri import android.os.Handler import android.util.Log import android.view.View +import androidx.core.app.NotificationManagerCompat import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R @@ -11,13 +14,18 @@ import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.NoticeListModel +import com.casic.xz.meterage.model.UserInfoModel +import com.casic.xz.meterage.utils.BadeHelper +import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.NoticeViewModel +import com.casic.xz.meterage.vm.UserViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_notice_list.* @@ -26,8 +34,10 @@ class NoticeListActivity : KotlinBaseActivity() { private lateinit var weakReferenceHandler: WeakReferenceHandler + private lateinit var userViewModel: UserViewModel private lateinit var noticeViewModel: NoticeViewModel private lateinit var noticeAdapter: NormalRecyclerAdapter + private lateinit var userInfo: UserInfoModel.DataModel private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -35,11 +45,18 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) + userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) + userViewModel.userInfo.observe(this) { + if (it.code == 200) { + userInfo = it.data + } + } + noticeViewModel = ViewModelProvider(this)[NoticeViewModel::class.java] noticeViewModel.noticeList.observe(this) { if (it.code == 200) { val dataRows = it.data?.rows!! -// countBadeNumber(dataRows) when { isRefresh -> { dataBeans.clear() @@ -62,6 +79,13 @@ weakReferenceHandler.sendEmptyMessage(2023013101) } } + + noticeViewModel.readNoticeResult.observe(this) { + if (it.code == 200) { + //刷新列表小红点 + weakReferenceHandler.sendEmptyMessage(2023013101) + } + } } override fun initEvent() { @@ -80,25 +104,11 @@ } override fun onConfirmClick() { - //TODO 设置为已读 + noticeViewModel.readNotice(userInfo.id, arrayOf()) } }).build().show() } - if (hasNoticePermission()) { - openSystemNoticeLayout.visibility = View.GONE - openSystemNoticeLayout.visibility = View.GONE - } else { - openSystemNoticeLayout.setOnClickListener { - - } - - - closeLayoutView.setOnClickListener { - openSystemNoticeLayout.visibility = View.GONE - } - } - noticeLayout.setOnRefreshListener { isRefresh = true //刷新之后页码重置 @@ -115,6 +125,25 @@ override fun onResume() { super.onResume() + //判断通知栏权限 + if (NotificationManagerCompat.from(this).areNotificationsEnabled()) { + openSystemNoticeLayout.visibility = View.GONE + openSystemNoticeLayout.visibility = View.GONE + } else { + openSystemNoticeLayout.setOnClickListener { + val localIntent = Intent() + localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + localIntent.action = "android.settings.APPLICATION_DETAILS_SETTINGS" + localIntent.data = Uri.fromParts("package", packageName, null) + startActivity(localIntent) + } + + + closeLayoutView.setOnClickListener { + openSystemNoticeLayout.visibility = View.GONE + } + } + pageIndex = 1 getNoticeListByPage() } @@ -129,6 +158,7 @@ if (isRefresh || isLoadMore) { noticeAdapter.notifyDataSetChanged() } else { + BadeHelper.setBadgeNum(this, dataBeans.size) if (dataBeans.size == 0) { emptyView!!.showEmptyPage("没有任何消息") { pageIndex = 1 diff --git a/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt index 7f97fa1..3565eb2 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt @@ -3,6 +3,7 @@ import androidx.lifecycle.MutableLiveData import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.extensions.separateResponseCode +import com.casic.xz.meterage.model.ActionResultModel import com.casic.xz.meterage.model.NoticeListModel import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson @@ -18,6 +19,7 @@ private val gson by lazy { Gson() } val noticeList = MutableLiveData() + val readNoticeResult = MutableLiveData() fun getNoticeList( noticeNo: String, @@ -44,4 +46,16 @@ }, { it.cause.toString().show(BaseApplication.get()) }) + + fun readNotice(userId: String, ids: Array) = launch({ + val response = RetrofitServiceManager.readNotice(userId, ids) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + readNoticeResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + }, { + it.cause.toString().show(BaseApplication.get()) + }) } \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_text_view_red_radius_10.xml b/app/src/main/res/drawable/bg_text_view_red_radius_10.xml index 8017b3b..17ba3a7 100644 --- a/app/src/main/res/drawable/bg_text_view_red_radius_10.xml +++ b/app/src/main/res/drawable/bg_text_view_red_radius_10.xml @@ -2,7 +2,7 @@ - + \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index 716593d..cb6dcfc 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -57,6 +57,15 @@ ): String /** + * 通知公告已读 + */ + @POST("/system/notice/read") + suspend fun readNotice( + @Header("token") token: String, + @Body requestBody: RequestBody + ): String + + /** * 获取设备列表 */ @POST("/meter/assets/listPage") diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index ed81ea1..5a06108 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -108,6 +108,20 @@ } /** + * TODO 参数异常 + * 通知公告已读 + */ + suspend fun readNotice(userId: String, ids: Array): String { + val param = JsonObject() + param.addProperty("userId", userId) + param.add("ids", gson.toJsonTree(ids, typeToken).asJsonArray) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.readNotice(AuthenticationHelper.token!!, requestBody) + } + + /** * 获取设备列表 */ suspend fun getEquipmentList( diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 68222e5..7f79a55 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -1,8 +1,11 @@ package com.casic.xz.meterage.view.notice +import android.content.Intent +import android.net.Uri import android.os.Handler import android.util.Log import android.view.View +import androidx.core.app.NotificationManagerCompat import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R @@ -11,13 +14,18 @@ import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.NoticeListModel +import com.casic.xz.meterage.model.UserInfoModel +import com.casic.xz.meterage.utils.BadeHelper +import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.NoticeViewModel +import com.casic.xz.meterage.vm.UserViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_notice_list.* @@ -26,8 +34,10 @@ class NoticeListActivity : KotlinBaseActivity() { private lateinit var weakReferenceHandler: WeakReferenceHandler + private lateinit var userViewModel: UserViewModel private lateinit var noticeViewModel: NoticeViewModel private lateinit var noticeAdapter: NormalRecyclerAdapter + private lateinit var userInfo: UserInfoModel.DataModel private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -35,11 +45,18 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) + userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) + userViewModel.userInfo.observe(this) { + if (it.code == 200) { + userInfo = it.data + } + } + noticeViewModel = ViewModelProvider(this)[NoticeViewModel::class.java] noticeViewModel.noticeList.observe(this) { if (it.code == 200) { val dataRows = it.data?.rows!! -// countBadeNumber(dataRows) when { isRefresh -> { dataBeans.clear() @@ -62,6 +79,13 @@ weakReferenceHandler.sendEmptyMessage(2023013101) } } + + noticeViewModel.readNoticeResult.observe(this) { + if (it.code == 200) { + //刷新列表小红点 + weakReferenceHandler.sendEmptyMessage(2023013101) + } + } } override fun initEvent() { @@ -80,25 +104,11 @@ } override fun onConfirmClick() { - //TODO 设置为已读 + noticeViewModel.readNotice(userInfo.id, arrayOf()) } }).build().show() } - if (hasNoticePermission()) { - openSystemNoticeLayout.visibility = View.GONE - openSystemNoticeLayout.visibility = View.GONE - } else { - openSystemNoticeLayout.setOnClickListener { - - } - - - closeLayoutView.setOnClickListener { - openSystemNoticeLayout.visibility = View.GONE - } - } - noticeLayout.setOnRefreshListener { isRefresh = true //刷新之后页码重置 @@ -115,6 +125,25 @@ override fun onResume() { super.onResume() + //判断通知栏权限 + if (NotificationManagerCompat.from(this).areNotificationsEnabled()) { + openSystemNoticeLayout.visibility = View.GONE + openSystemNoticeLayout.visibility = View.GONE + } else { + openSystemNoticeLayout.setOnClickListener { + val localIntent = Intent() + localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + localIntent.action = "android.settings.APPLICATION_DETAILS_SETTINGS" + localIntent.data = Uri.fromParts("package", packageName, null) + startActivity(localIntent) + } + + + closeLayoutView.setOnClickListener { + openSystemNoticeLayout.visibility = View.GONE + } + } + pageIndex = 1 getNoticeListByPage() } @@ -129,6 +158,7 @@ if (isRefresh || isLoadMore) { noticeAdapter.notifyDataSetChanged() } else { + BadeHelper.setBadgeNum(this, dataBeans.size) if (dataBeans.size == 0) { emptyView!!.showEmptyPage("没有任何消息") { pageIndex = 1 diff --git a/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt index 7f97fa1..3565eb2 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt @@ -3,6 +3,7 @@ import androidx.lifecycle.MutableLiveData import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.extensions.separateResponseCode +import com.casic.xz.meterage.model.ActionResultModel import com.casic.xz.meterage.model.NoticeListModel import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson @@ -18,6 +19,7 @@ private val gson by lazy { Gson() } val noticeList = MutableLiveData() + val readNoticeResult = MutableLiveData() fun getNoticeList( noticeNo: String, @@ -44,4 +46,16 @@ }, { it.cause.toString().show(BaseApplication.get()) }) + + fun readNotice(userId: String, ids: Array) = launch({ + val response = RetrofitServiceManager.readNotice(userId, ids) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + readNoticeResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + }, { + it.cause.toString().show(BaseApplication.get()) + }) } \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_text_view_red_radius_10.xml b/app/src/main/res/drawable/bg_text_view_red_radius_10.xml index 8017b3b..17ba3a7 100644 --- a/app/src/main/res/drawable/bg_text_view_red_radius_10.xml +++ b/app/src/main/res/drawable/bg_text_view_red_radius_10.xml @@ -2,7 +2,7 @@ - + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_notice_list.xml b/app/src/main/res/layout/activity_notice_list.xml index 439847b..4143dd1 100644 --- a/app/src/main/res/layout/activity_notice_list.xml +++ b/app/src/main/res/layout/activity_notice_list.xml @@ -39,6 +39,11 @@ android:src="@mipmap/message_blue" /> + + ): String { + val param = JsonObject() + param.addProperty("userId", userId) + param.add("ids", gson.toJsonTree(ids, typeToken).asJsonArray) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.readNotice(AuthenticationHelper.token!!, requestBody) + } + + /** * 获取设备列表 */ suspend fun getEquipmentList( diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 68222e5..7f79a55 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -1,8 +1,11 @@ package com.casic.xz.meterage.view.notice +import android.content.Intent +import android.net.Uri import android.os.Handler import android.util.Log import android.view.View +import androidx.core.app.NotificationManagerCompat import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R @@ -11,13 +14,18 @@ import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.NoticeListModel +import com.casic.xz.meterage.model.UserInfoModel +import com.casic.xz.meterage.utils.BadeHelper +import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.NoticeViewModel +import com.casic.xz.meterage.vm.UserViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_notice_list.* @@ -26,8 +34,10 @@ class NoticeListActivity : KotlinBaseActivity() { private lateinit var weakReferenceHandler: WeakReferenceHandler + private lateinit var userViewModel: UserViewModel private lateinit var noticeViewModel: NoticeViewModel private lateinit var noticeAdapter: NormalRecyclerAdapter + private lateinit var userInfo: UserInfoModel.DataModel private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -35,11 +45,18 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) + userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) + userViewModel.userInfo.observe(this) { + if (it.code == 200) { + userInfo = it.data + } + } + noticeViewModel = ViewModelProvider(this)[NoticeViewModel::class.java] noticeViewModel.noticeList.observe(this) { if (it.code == 200) { val dataRows = it.data?.rows!! -// countBadeNumber(dataRows) when { isRefresh -> { dataBeans.clear() @@ -62,6 +79,13 @@ weakReferenceHandler.sendEmptyMessage(2023013101) } } + + noticeViewModel.readNoticeResult.observe(this) { + if (it.code == 200) { + //刷新列表小红点 + weakReferenceHandler.sendEmptyMessage(2023013101) + } + } } override fun initEvent() { @@ -80,25 +104,11 @@ } override fun onConfirmClick() { - //TODO 设置为已读 + noticeViewModel.readNotice(userInfo.id, arrayOf()) } }).build().show() } - if (hasNoticePermission()) { - openSystemNoticeLayout.visibility = View.GONE - openSystemNoticeLayout.visibility = View.GONE - } else { - openSystemNoticeLayout.setOnClickListener { - - } - - - closeLayoutView.setOnClickListener { - openSystemNoticeLayout.visibility = View.GONE - } - } - noticeLayout.setOnRefreshListener { isRefresh = true //刷新之后页码重置 @@ -115,6 +125,25 @@ override fun onResume() { super.onResume() + //判断通知栏权限 + if (NotificationManagerCompat.from(this).areNotificationsEnabled()) { + openSystemNoticeLayout.visibility = View.GONE + openSystemNoticeLayout.visibility = View.GONE + } else { + openSystemNoticeLayout.setOnClickListener { + val localIntent = Intent() + localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + localIntent.action = "android.settings.APPLICATION_DETAILS_SETTINGS" + localIntent.data = Uri.fromParts("package", packageName, null) + startActivity(localIntent) + } + + + closeLayoutView.setOnClickListener { + openSystemNoticeLayout.visibility = View.GONE + } + } + pageIndex = 1 getNoticeListByPage() } @@ -129,6 +158,7 @@ if (isRefresh || isLoadMore) { noticeAdapter.notifyDataSetChanged() } else { + BadeHelper.setBadgeNum(this, dataBeans.size) if (dataBeans.size == 0) { emptyView!!.showEmptyPage("没有任何消息") { pageIndex = 1 diff --git a/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt index 7f97fa1..3565eb2 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt @@ -3,6 +3,7 @@ import androidx.lifecycle.MutableLiveData import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.extensions.separateResponseCode +import com.casic.xz.meterage.model.ActionResultModel import com.casic.xz.meterage.model.NoticeListModel import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson @@ -18,6 +19,7 @@ private val gson by lazy { Gson() } val noticeList = MutableLiveData() + val readNoticeResult = MutableLiveData() fun getNoticeList( noticeNo: String, @@ -44,4 +46,16 @@ }, { it.cause.toString().show(BaseApplication.get()) }) + + fun readNotice(userId: String, ids: Array) = launch({ + val response = RetrofitServiceManager.readNotice(userId, ids) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + readNoticeResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + }, { + it.cause.toString().show(BaseApplication.get()) + }) } \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_text_view_red_radius_10.xml b/app/src/main/res/drawable/bg_text_view_red_radius_10.xml index 8017b3b..17ba3a7 100644 --- a/app/src/main/res/drawable/bg_text_view_red_radius_10.xml +++ b/app/src/main/res/drawable/bg_text_view_red_radius_10.xml @@ -2,7 +2,7 @@ - + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_notice_list.xml b/app/src/main/res/layout/activity_notice_list.xml index 439847b..4143dd1 100644 --- a/app/src/main/res/layout/activity_notice_list.xml +++ b/app/src/main/res/layout/activity_notice_list.xml @@ -39,6 +39,11 @@ android:src="@mipmap/message_blue" /> + + + android:padding="@dimen/dp_5"> ): String { + val param = JsonObject() + param.addProperty("userId", userId) + param.add("ids", gson.toJsonTree(ids, typeToken).asJsonArray) + val requestBody = param.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + return api.readNotice(AuthenticationHelper.token!!, requestBody) + } + + /** * 获取设备列表 */ suspend fun getEquipmentList( diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt index 68222e5..7f79a55 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/NoticeListActivity.kt @@ -1,8 +1,11 @@ package com.casic.xz.meterage.view.notice +import android.content.Intent +import android.net.Uri import android.os.Handler import android.util.Log import android.view.View +import androidx.core.app.NotificationManagerCompat import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DividerItemDecoration import com.casic.xz.meterage.R @@ -11,13 +14,18 @@ import com.casic.xz.meterage.extensions.initLayoutImmersionBar import com.casic.xz.meterage.extensions.showEmptyPage import com.casic.xz.meterage.model.NoticeListModel +import com.casic.xz.meterage.model.UserInfoModel +import com.casic.xz.meterage.utils.BadeHelper +import com.casic.xz.meterage.utils.LocaleConstant import com.casic.xz.meterage.vm.NoticeViewModel +import com.casic.xz.meterage.vm.UserViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.widget.dialog.AlertControlDialog import kotlinx.android.synthetic.main.activity_notice_list.* @@ -26,8 +34,10 @@ class NoticeListActivity : KotlinBaseActivity() { private lateinit var weakReferenceHandler: WeakReferenceHandler + private lateinit var userViewModel: UserViewModel private lateinit var noticeViewModel: NoticeViewModel private lateinit var noticeAdapter: NormalRecyclerAdapter + private lateinit var userInfo: UserInfoModel.DataModel private var dataBeans: MutableList = ArrayList() private var pageIndex = 1 private var isRefresh = false @@ -35,11 +45,18 @@ override fun initData() { weakReferenceHandler = WeakReferenceHandler(callback) + userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) + userViewModel.userInfo.observe(this) { + if (it.code == 200) { + userInfo = it.data + } + } + noticeViewModel = ViewModelProvider(this)[NoticeViewModel::class.java] noticeViewModel.noticeList.observe(this) { if (it.code == 200) { val dataRows = it.data?.rows!! -// countBadeNumber(dataRows) when { isRefresh -> { dataBeans.clear() @@ -62,6 +79,13 @@ weakReferenceHandler.sendEmptyMessage(2023013101) } } + + noticeViewModel.readNoticeResult.observe(this) { + if (it.code == 200) { + //刷新列表小红点 + weakReferenceHandler.sendEmptyMessage(2023013101) + } + } } override fun initEvent() { @@ -80,25 +104,11 @@ } override fun onConfirmClick() { - //TODO 设置为已读 + noticeViewModel.readNotice(userInfo.id, arrayOf()) } }).build().show() } - if (hasNoticePermission()) { - openSystemNoticeLayout.visibility = View.GONE - openSystemNoticeLayout.visibility = View.GONE - } else { - openSystemNoticeLayout.setOnClickListener { - - } - - - closeLayoutView.setOnClickListener { - openSystemNoticeLayout.visibility = View.GONE - } - } - noticeLayout.setOnRefreshListener { isRefresh = true //刷新之后页码重置 @@ -115,6 +125,25 @@ override fun onResume() { super.onResume() + //判断通知栏权限 + if (NotificationManagerCompat.from(this).areNotificationsEnabled()) { + openSystemNoticeLayout.visibility = View.GONE + openSystemNoticeLayout.visibility = View.GONE + } else { + openSystemNoticeLayout.setOnClickListener { + val localIntent = Intent() + localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + localIntent.action = "android.settings.APPLICATION_DETAILS_SETTINGS" + localIntent.data = Uri.fromParts("package", packageName, null) + startActivity(localIntent) + } + + + closeLayoutView.setOnClickListener { + openSystemNoticeLayout.visibility = View.GONE + } + } + pageIndex = 1 getNoticeListByPage() } @@ -129,6 +158,7 @@ if (isRefresh || isLoadMore) { noticeAdapter.notifyDataSetChanged() } else { + BadeHelper.setBadgeNum(this, dataBeans.size) if (dataBeans.size == 0) { emptyView!!.showEmptyPage("没有任何消息") { pageIndex = 1 diff --git a/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt index 7f97fa1..3565eb2 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt @@ -3,6 +3,7 @@ import androidx.lifecycle.MutableLiveData import com.casic.xz.meterage.base.BaseApplication import com.casic.xz.meterage.extensions.separateResponseCode +import com.casic.xz.meterage.model.ActionResultModel import com.casic.xz.meterage.model.NoticeListModel import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson @@ -18,6 +19,7 @@ private val gson by lazy { Gson() } val noticeList = MutableLiveData() + val readNoticeResult = MutableLiveData() fun getNoticeList( noticeNo: String, @@ -44,4 +46,16 @@ }, { it.cause.toString().show(BaseApplication.get()) }) + + fun readNotice(userId: String, ids: Array) = launch({ + val response = RetrofitServiceManager.readNotice(userId, ids) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + readNoticeResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + }, { + it.cause.toString().show(BaseApplication.get()) + }) } \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_text_view_red_radius_10.xml b/app/src/main/res/drawable/bg_text_view_red_radius_10.xml index 8017b3b..17ba3a7 100644 --- a/app/src/main/res/drawable/bg_text_view_red_radius_10.xml +++ b/app/src/main/res/drawable/bg_text_view_red_radius_10.xml @@ -2,7 +2,7 @@ - + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_notice_list.xml b/app/src/main/res/layout/activity_notice_list.xml index 439847b..4143dd1 100644 --- a/app/src/main/res/layout/activity_notice_list.xml +++ b/app/src/main/res/layout/activity_notice_list.xml @@ -39,6 +39,11 @@ android:src="@mipmap/message_blue" /> + + + android:padding="@dimen/dp_5"> 50dp 55dp 60dp + 70dp 75dp 80dp 100dp