diff --git a/app/build.gradle b/app/build.gradle index 95e54ef..661e259 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -32,9 +32,15 @@ android { //暂时填写默认值即可. JPUSH_CHANNEL : "developer-default", + OPPO_APPKEY : "OP-", // OPPO平台注册的appkey + OPPO_APPID : "OP-", // OPPO平台注册的appid + OPPO_APPSECRET: "OP-",//OPPO平台注册的appsecret + XIAOMI_APPKEY : "MI-5992028541716",// 小米平台注册的appkey XIAOMI_APPID : "MI-2882303761520285716", // 小米平台注册的appid + VIVO_APPKEY:"", + VIVO_APPID:"", HONOR_APPID:"109849297" ] // 配置 APK 输出路径 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2f42e35..2e1925b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -165,6 +165,14 @@ android:launchMode="singleTop" android:screenOrientation="portrait" /> + + + + (), Consumer { } private fun initUnreadCountReceiver() { - /* unreadCountReceiver = object : BroadcastReceiver() { + unreadCountReceiver = object : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { val unreadCount = intent.getLongExtra(TUIConstants.UNREAD_COUNT_EXTRA, 0) // if (unreadCount > 0) { @@ -91,7 +92,7 @@ class MainActivity : BaseVmAct(), Consumer { val unreadCountFilter = IntentFilter() unreadCountFilter.addAction(TUIConstants.CONVERSATION_UNREAD_COUNT_ACTION) LocalBroadcastManager.getInstance(this) - .registerReceiver(unreadCountReceiver as BroadcastReceiver, unreadCountFilter)*/ + .registerReceiver(unreadCountReceiver as BroadcastReceiver, unreadCountFilter) } private val listFragment by lazy { @@ -128,7 +129,7 @@ class MainActivity : BaseVmAct(), Consumer { Log.e("yansu", "请求 ${MMkvHelper.getString(Const.USER_ID)}") mViewModel.getImUserSig("user_" + MMkvHelper.getLong(Const.USER_ID)) }*/ -// initUnreadCountReceiver() + initUnreadCountReceiver() JPushInterface.setBadgeNumber(this, 0) // //前台空服务 // val service = RouteManager.getAny(ARouterUrl.NONE_SERVICE) as Service @@ -374,7 +375,7 @@ class MainActivity : BaseVmAct(), Consumer { private fun addNv() { val menuView = binding.mBottom.getChildAt(0) as BottomNavigationMenuView //这里就是获取所添加的每一个Tab(或者叫menu), - val tab = menuView.getChildAt(3) as BottomNavigationItemView + val tab = menuView.getChildAt(2) as BottomNavigationItemView //加载我们的角标View,新创建的一个布局 badegView = LayoutInflater.from(this).inflate(R.layout.item_msg_count, tab, true) diff --git a/app/src/main/java/com/zj365/dc/activity/MessageDetailNewAct.kt b/app/src/main/java/com/zj365/dc/activity/MessageDetailNewAct.kt index 503ddb5..6b82632 100644 --- a/app/src/main/java/com/zj365/dc/activity/MessageDetailNewAct.kt +++ b/app/src/main/java/com/zj365/dc/activity/MessageDetailNewAct.kt @@ -4,13 +4,18 @@ import android.view.View import com.alibaba.android.arouter.facade.annotation.Route import com.xty.base.act.BaseVmAct import com.xty.base.vm.BaseVm +import com.xty.common.Dateutils import com.xty.common.arouter.ARouterUrl +import com.xty.network.model.MessageBean +import com.xty.network.model.MessageTypeDataBean import com.zj365.dc.databinding.ActMessageDetailNewBinding @Route(path = ARouterUrl.MESSAGE_DETAIL_NEW) class MessageDetailNewAct: BaseVmAct() { val binding by lazy { ActMessageDetailNewBinding.inflate(layoutInflater) } + var msgBean : MessageTypeDataBean.MessageTypeBean? = null + override fun liveObserver() { } @@ -25,4 +30,21 @@ class MessageDetailNewAct: BaseVmAct() { finish() } } + + override fun initData() { + super.initData() + intent.extras?.let { + if(it.containsKey("bean")){ + msgBean=it.getSerializable("bean") as MessageTypeDataBean.MessageTypeBean + msgBean?.let { + binding.tvMsgTitle.text = it.notifyTitle + binding.tvMsgTime.text = Dateutils.formatTime(it.notifyCreateTime,Dateutils.YYYY_MM_DD_HH_MM) + binding.tvMsgContent.text = it.notifyContent + } + + + } + } + + } } \ No newline at end of file diff --git a/app/src/main/java/com/zj365/dc/adapter/HomeMessageAdapter.kt b/app/src/main/java/com/zj365/dc/adapter/HomeMessageAdapter.kt index b762f01..7bea6f7 100644 --- a/app/src/main/java/com/zj365/dc/adapter/HomeMessageAdapter.kt +++ b/app/src/main/java/com/zj365/dc/adapter/HomeMessageAdapter.kt @@ -1,17 +1,55 @@ package com.zj365.dc.adapter +import android.text.TextUtils +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.cardview.widget.CardView import com.chad.library.adapter.base.viewholder.BaseViewHolder import com.xty.base.adapter.BaseAdapter import com.xty.common.Dateutils -import com.xty.network.model.ScienceBean import com.xty.network.model.SystemMsgBean import com.zj365.dc.R class HomeMessageAdapter : BaseAdapter(R.layout.item_home_message) { override fun convert(holder: BaseViewHolder, item: SystemMsgBean) { - holder.setText(R.id.tv_msg_title,item.title) - holder.setText(R.id.tv_msg_content,item.content) - holder.setText(R.id.tv_msg_time,Dateutils.formatTime(item.time,Dateutils.YYYY_MM_DD_HH_MM)) + if (item.type == 1){ + holder.getView(R.id.img_msg).setImageDrawable(context.resources.getDrawable(R.mipmap.icon_msg_system)) + }else if (item.type == 2){ + holder.getView(R.id.img_msg).setImageDrawable(context.resources.getDrawable(R.mipmap.icon_msg_assistant)) + }else{ + holder.getView(R.id.img_msg).setImageDrawable(context.resources.getDrawable(R.mipmap.icon_msg_welfare)) + } + holder.setText(R.id.tv_msg_title,item.name) + holder.setText(R.id.tv_msg_content,item.msg) + if(!TextUtils.isEmpty(item.time)){ + holder.setText(R.id.tv_msg_time,Dateutils.formatTime(item.time.toLong(),Dateutils.YYYY_MM_DD_HH_MM)) + } + + var num = holder.getView(R.id.mBadge) + var card = holder.getView(R.id.mCard) + if(item.unReadCount > 0){ + card.visibility = View.VISIBLE + num.text = if (item.unReadCount > 99) "99+" else "${item.unReadCount}" + + num.post{ + var layoutParams = num.layoutParams as ViewGroup.LayoutParams + var numTxt = num.text.toString() + card.radius = num.height / 2f + var textWidth = num.paint.measureText(numTxt) + if (num.height >= textWidth) { //等宽高的圆形 + layoutParams.width = num.height + + } else { //宽高不等 将宽度两边加10 + layoutParams.width = textWidth.toInt() + 20 + } + num.layoutParams = layoutParams + } + + }else{ + card.visibility = View.GONE + } } } \ No newline at end of file diff --git a/app/src/main/java/com/zj365/dc/fragment/MessageFragment.kt b/app/src/main/java/com/zj365/dc/fragment/MessageFragment.kt index 6e5c7f3..17fc404 100644 --- a/app/src/main/java/com/zj365/dc/fragment/MessageFragment.kt +++ b/app/src/main/java/com/zj365/dc/fragment/MessageFragment.kt @@ -1,14 +1,18 @@ package com.zj365.dc.fragment +import android.content.Intent import android.graphics.Color import android.view.View +import androidx.localbroadcastmanager.content.LocalBroadcastManager import androidx.recyclerview.widget.LinearLayoutManager -import com.alibaba.android.arouter.facade.annotation.Route +import com.tencent.qcloud.tuicore.TUIConstants import com.xty.base.fragment.BaseFragList import com.xty.common.arouter.ARouterUrl import com.xty.common.arouter.RouteManager import com.xty.common.event.LoginOrRegisterEvent import com.xty.common.event.LoginOutEvent +import com.xty.common.event.MessageReadEvent +import com.xty.network.model.SystemMsgBean import com.zj365.dc.adapter.HomeMessageAdapter import com.zj365.dc.databinding.FragMessageBinding import com.zj365.dc.vm.MessageVm @@ -20,14 +24,24 @@ class MessageFragment : BaseFragList() { val binding by lazy { FragMessageBinding.inflate(layoutInflater) } val adapter by lazy { HomeMessageAdapter() } + + var msgList = ArrayList() override fun initAdapter() { binding.mRecycle.layoutManager= LinearLayoutManager(requireContext()) binding.mRecycle.adapter=adapter adapter.setOnItemClickListener { adapter, view, position -> - RouteManager.goAct(ARouterUrl.MESSAGE_DETAIL_NEW) + var bean = adapter.getItem(position) as SystemMsgBean + bundle.clear() + bundle.putInt("msgType",bean.type) + RouteManager.goAct(ARouterUrl.MESSAGE_TYPE,bundle) } } + override fun initData() { + super.initData() + + } + override fun initView() { super.initView() statusBar(binding.title.mView) @@ -37,7 +51,7 @@ class MessageFragment : BaseFragList() { binding.title.mTvRight.visibility = View.VISIBLE binding.title.mIvBack.visibility = View.INVISIBLE binding.title.mTvRight.setOnClickListener { - + mViewModel.setAllRead() } initAdapter() setRecycleRefresh(binding.mRecycle,binding.mRefresh) @@ -50,6 +64,17 @@ class MessageFragment : BaseFragList() { override fun setViewModel()= MessageVm() override fun observer() { + mViewModel.msgData.observe(this){ + adapter.setNewInstance(it.data.list) + val intent = Intent() + intent.action = TUIConstants.CONVERSATION_UNREAD_COUNT_ACTION + intent.putExtra(TUIConstants.UNREAD_COUNT_EXTRA, it.data.unReadCount) + LocalBroadcastManager.getInstance(requireContext()) + .sendBroadcast(intent) + } + mViewModel.msgAllRead.observe(this){ + refresh() + } } @@ -65,4 +90,9 @@ class MessageFragment : BaseFragList() { } + @Subscribe(threadMode = ThreadMode.MAIN) + fun readMsg(event:MessageReadEvent){ + refresh() + } + } \ No newline at end of file diff --git a/app/src/main/java/com/zj365/dc/fragment/MineFrag.kt b/app/src/main/java/com/zj365/dc/fragment/MineFrag.kt index 9a65b7f..9adc28e 100644 --- a/app/src/main/java/com/zj365/dc/fragment/MineFrag.kt +++ b/app/src/main/java/com/zj365/dc/fragment/MineFrag.kt @@ -188,14 +188,14 @@ class MineFrag : BaseVmFrag(),EasyPermissions.PermissionCallbacks { override fun onResume() { super.onResume() - if (!checkNetworkAvailable(requireContext())) { + /* if (!checkNetworkAvailable(requireContext())) { binding.mNoNetwork.root.visibility = View.VISIBLE } else { - if (binding.mNoNetwork.root.visibility == View.VISIBLE) { + if (binding.mNoNetwork.root.visibility == View.VISIBLE) {*/ mViewModel.getMySetting() - } +// } mViewModel.getScore(1) - } +// } } override fun observer() { @@ -265,7 +265,7 @@ class MineFrag : BaseVmFrag(),EasyPermissions.PermissionCallbacks { if (null == it.data) return@observe it.data.let { settingBean -> Const.mainLiveData.value = settingBean - binding.mNoNetwork.root.visibility = View.GONE +// binding.mNoNetwork.root.visibility = View.GONE } } diff --git a/app/src/main/java/com/zj365/dc/vm/MessageVm.kt b/app/src/main/java/com/zj365/dc/vm/MessageVm.kt index 04b8cf1..168469f 100644 --- a/app/src/main/java/com/zj365/dc/vm/MessageVm.kt +++ b/app/src/main/java/com/zj365/dc/vm/MessageVm.kt @@ -1,10 +1,26 @@ package com.zj365.dc.vm +import androidx.lifecycle.MutableLiveData import com.xty.base.vm.BaseVm +import com.xty.network.model.RespBody +import com.xty.network.model.SystemMsgDataResp class MessageVm(): BaseVm() { + val msgData by lazy { MutableLiveData> ()} + + val msgAllRead by lazy { MutableLiveData>() } fun getSystemMsg(){ + startHttp { + var response = apiInterface().getSystemMsg() + response.getCodeStatus(msgData, nowData) + } + } + fun setAllRead(){ + startHttp(true) { + var response = apiInterface().setMessageReadAll() + response.getCodeStatus(msgAllRead, nowData) + } } } \ No newline at end of file diff --git a/app/src/main/res/layout/frag_message.xml b/app/src/main/res/layout/frag_message.xml index be11b72..0274418 100644 --- a/app/src/main/res/layout/frag_message.xml +++ b/app/src/main/res/layout/frag_message.xml @@ -4,7 +4,7 @@ android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="@color/white" + android:background="@color/col_6F7" tools:ignore="MissingDefaultResource"> + android:background="@color/white" + /> - + app:layout_constraintLeft_toLeftOf="parent"> + + + + + + + + + + + tools:text="17已经预约成功17已经预约成功17已经预约成功17已经预约成功17已经预约成功17已经预约成功"/> () { } else { bundle.clear() bundle.putSerializable("bean", data) - RouteManager.goAct(ARouterUrl.MESSAGE_DETAIL, bundle) + RouteManager.goAct(ARouterUrl.MESSAGE_DETAIL_NEW, bundle) } } } @@ -110,10 +110,10 @@ class MessageAct : BaseListAct() { adapter.notifyItemChanged(clickPosition) bundle.clear() bundle.putSerializable("bean", clickBean) - RouteManager.goAct(ARouterUrl.MESSAGE_DETAIL, bundle) + RouteManager.goAct(ARouterUrl.MESSAGE_DETAIL_NEW, bundle) } mViewModel.messageLive.observe(this) { - when (nowPosition) { + /* when (nowPosition) { 3 -> { val list = mutableListOf() list.add(it.data.message) @@ -130,7 +130,7 @@ class MessageAct : BaseListAct() { else -> { setDate(adapter, it.data.systemMessage as MutableList) } - } + }*/ } mViewModel.deleteLive.observe(this) { mViewModel.getMessageList(page, 0) diff --git a/mine/src/main/java/com/zj365/mime/act/MessageDetailAct.kt b/mine/src/main/java/com/zj365/mime/act/MessageDetailAct.kt index b81e8bf..b980dc6 100644 --- a/mine/src/main/java/com/zj365/mime/act/MessageDetailAct.kt +++ b/mine/src/main/java/com/zj365/mime/act/MessageDetailAct.kt @@ -31,7 +31,7 @@ class MessageDetailAct: IBaseAct() { } binding.mMsg.text=content - onEventObject(baseContext, UmengEventId.WarningMsg, "查看预警消息详情$content") + // onEventObject(baseContext, UmengEventId.WarningMsg, "查看预警消息详情$content") } override fun initView() { diff --git a/mine/src/main/java/com/zj365/mime/act/MessageTypeListAct.kt b/mine/src/main/java/com/zj365/mime/act/MessageTypeListAct.kt index d58252e..bf4e0e1 100644 --- a/mine/src/main/java/com/zj365/mime/act/MessageTypeListAct.kt +++ b/mine/src/main/java/com/zj365/mime/act/MessageTypeListAct.kt @@ -8,6 +8,7 @@ import com.alibaba.android.arouter.facade.annotation.Route import com.xty.base.act.BaseListAct import com.xty.common.arouter.ARouterUrl import com.xty.common.arouter.RouteManager +import com.xty.common.event.MessageReadEvent import com.xty.common.getImageUrl import com.xty.common.util.CommonToastUtils import com.zj365.mime.R @@ -16,20 +17,24 @@ import com.zj365.mime.databinding.ActMessageBinding import com.zj365.mime.vm.MessageVm import com.zj365.mime.weight.MessagePop import com.xty.network.model.MessageBean +import com.xty.network.model.MessageTypeDataBean +import org.greenrobot.eventbus.EventBus import java.lang.StringBuilder /** * 我的消息 */ -@Route(path = ARouterUrl.MESSAGE) +@Route(path = ARouterUrl.MESSAGE_TYPE) class MessageTypeListAct : BaseListAct() { var choiceMode:Boolean = false val binding by lazy { ActMessageBinding.inflate(layoutInflater) } val adapter by lazy { MessageAdapter() } - var clickBean: MessageBean.SysMsg? = null + var clickBean: MessageTypeDataBean.MessageTypeBean? = null var clickPosition = 0 val array by lazy { resources.getStringArray(R.array.msg_array) } var nowPosition = 1 + + var msgType:Int = 1 //根据type消息获取消息列表 消息类型1,消息消息,2,福利官,3,小助手 val popWindow by lazy { MessagePop(this) { if (it != nowPosition) { @@ -46,6 +51,8 @@ class MessageTypeListAct : BaseListAct() { override fun initData() { super.initData() isDarkBar = true + + msgType = intent.getIntExtra("msgType",0) } override fun initView() { @@ -56,7 +63,7 @@ class MessageTypeListAct : BaseListAct() { mTvTitle.text = getString(R.string.sys_message) mTvRight.visibility = View.VISIBLE mTvRight.text = getString(R.string.message_manager) - mTvRight.setTextColor(ContextCompat.getColor(this@MessageTypeListAct,R.color.col_25C)) + mTvRight.setTextColor(ContextCompat.getColor(this@MessageTypeListAct,R.color.col_02c)) titleBg.setBackgroundColor(ContextCompat.getColor(this@MessageTypeListAct,R.color.white)) mTvRight.setOnClickListener { @@ -76,7 +83,7 @@ class MessageTypeListAct : BaseListAct() { binding.llDelete.setOnClickListener{ val ids = StringBuilder() adapter.data.forEachIndexed{ pos, any -> - var msg = any as MessageBean.SysMsg + var msg = any as MessageTypeDataBean.MessageTypeBean if(msg.isChoice){ ids.append("${msg.id},") } @@ -88,11 +95,6 @@ class MessageTypeListAct : BaseListAct() { binding.title.mIvBack.setOnClickListener { finish() } -// binding.mSpinner.setOnClickListener { -// popWindow.showAction(it) -// } - -// binding.mSpinner.text = array[nowPosition] } private fun choiceMode(mode:Boolean){ @@ -132,7 +134,7 @@ class MessageTypeListAct : BaseListAct() { bundle.putString("chatImage", getImageUrl(bean.avatar)) RouteManager.goAct(ARouterUrl.CHAT_MSG, bundle) } else { - val data = bean as MessageBean.SysMsg + val data = bean as MessageTypeDataBean.MessageTypeBean if (data.notifyStatus == 0) { clickBean = data mViewModel.readMsg(data.id, data.notifyId) @@ -140,17 +142,17 @@ class MessageTypeListAct : BaseListAct() { } else { bundle.clear() bundle.putSerializable("bean", data) - RouteManager.goAct(ARouterUrl.MESSAGE_DETAIL, bundle) + RouteManager.goAct(ARouterUrl.MESSAGE_DETAIL_NEW, bundle) } } } R.id.mDelete -> { - val sysBean = bean as MessageBean.SysMsg + val sysBean = bean as MessageTypeDataBean.MessageTypeBean mViewModel.deleteMsg(sysBean.notifyId) } R.id.cbChoice->{ - val sysBean = bean as MessageBean.SysMsg + val sysBean = bean as MessageTypeDataBean.MessageTypeBean val choiceView = view as CheckBox sysBean.isChoice = choiceView.isChecked if(choiceView.isChecked){ @@ -165,58 +167,61 @@ class MessageTypeListAct : BaseListAct() { override fun liveObserver() { mViewModel.readLive.observe(this) { - (adapter.data[clickPosition] as MessageBean.SysMsg).notifyStatus = 1 + (adapter.data[clickPosition] as MessageTypeDataBean.MessageTypeBean).notifyStatus = 1 adapter.notifyItemChanged(clickPosition) bundle.clear() bundle.putSerializable("bean", clickBean) - RouteManager.goAct(ARouterUrl.MESSAGE_DETAIL, bundle) + RouteManager.goAct(ARouterUrl.MESSAGE_DETAIL_NEW, bundle) + EventBus.getDefault().post(MessageReadEvent()) } mViewModel.messageLive.observe(this) { when (nowPosition) { 3 -> { val list = mutableListOf() - list.add(it.data.message) + list.add(it.data.records) setDate(adapter, list) } 0 -> { val list = mutableListOf() - list.add(it.data.message) + list.add(it.data.records) it?.data?.let { - it.systemMessage.let { it1 -> list.addAll(it1) } + it.records.let { it1 -> list.addAll(it1) } } setDate(adapter, list) } else -> { it?.data?.let { - setDate(adapter, it?.systemMessage as MutableList) + setDate(adapter, it?.records as MutableList) } } } } mViewModel.deleteLive.observe(this) { - mViewModel.getMessageList(page, 0) + mViewModel.getMessageList(page, msgType) } mViewModel.deletesLive.observe(this){ adapter.getDeletePos().forEachIndexed{_, any -> if (adapter.data.size > any){ adapter.data.removeAt(any) + EventBus.getDefault().post(MessageReadEvent()) }else{ CommonToastUtils.showLoserToast("删除失败") } } adapter.data.forEachIndexed{_, any -> - val msg = any as MessageBean.SysMsg + val msg = any as MessageTypeDataBean.MessageTypeBean msg.isChoice = false } adapter.getDeletePos().clear() choiceMode(false) CommonToastUtils.showSucceedToast("删除成功") + EventBus.getDefault().post(MessageReadEvent()) } } override fun loadData() { adapter.getDeletePos().clear() - mViewModel.getMessageList(page, 0) + mViewModel.getMessageList(page, msgType) } } \ No newline at end of file diff --git a/mine/src/main/java/com/zj365/mime/adapter/MessageAdapter.kt b/mine/src/main/java/com/zj365/mime/adapter/MessageAdapter.kt index 274c8df..9ed2075 100644 --- a/mine/src/main/java/com/zj365/mime/adapter/MessageAdapter.kt +++ b/mine/src/main/java/com/zj365/mime/adapter/MessageAdapter.kt @@ -15,6 +15,7 @@ import com.xty.base.adapter.BaseAdapter import com.xty.common.setImageUser import com.zj365.mime.R import com.xty.network.model.MessageBean +import com.xty.network.model.MessageTypeDataBean import de.hdodenhof.circleimageview.CircleImageView import okhttp3.internal.filterList @@ -36,7 +37,7 @@ class MessageAdapter():BaseAdapter(R.layout.item_message) { // holder.setGone(R.id.mDelete,true) // setBadge(item.count,holder.getView(R.id.msgCard),holder.getView(R.id.mBadge)) // }else - if(item is MessageBean.SysMsg){ + if(item is MessageTypeDataBean.MessageTypeBean){ holder.setGone(R.id.mRelMsg,false).setGone(R.id.mChat,true) holder.setText(R.id.mContent,item.notifyContent) .setText(R.id.mTvTime,RxTimeTool.milliseconds2String(item.notifyCreateTime)) diff --git a/mine/src/main/java/com/zj365/mime/vm/MessageVm.kt b/mine/src/main/java/com/zj365/mime/vm/MessageVm.kt index 4127f91..aa5541a 100644 --- a/mine/src/main/java/com/zj365/mime/vm/MessageVm.kt +++ b/mine/src/main/java/com/zj365/mime/vm/MessageVm.kt @@ -4,23 +4,23 @@ import androidx.lifecycle.MutableLiveData import com.xty.base.vm.BaseVm import com.xty.common.util.CommonUtils import com.xty.network.model.MessageBean +import com.xty.network.model.MessageTypeDataBean import com.xty.network.model.RespBody import org.json.JSONObject class MessageVm : BaseVm(){ - val messageLive by lazy{MutableLiveData>()} + val messageLive by lazy{MutableLiveData>()} val readLive by lazy{MutableLiveData>()} val deleteLive by lazy{MutableLiveData>()} val deletesLive by lazy { MutableLiveData>() } fun getMessageList(page:Int,type:Int){ startHttp { var json=JSONObject() - // json.put("pageNum",page) - //json.put("pageSize",Const.PAGE_SIZE) json.put("type",type) - json.put("userId", CommonUtils.getMyUserId()) + json.put("pageNum", page) + json.put("pageSize",20) - var respnse=apiInterface().getMessageList(retrofits.getRequestBody(json.toString())) + var respnse=apiInterface().getMessageListForType(retrofits.getRequestBody(json.toString())) respnse.getCodeStatus(messageLive,nowData) } } @@ -29,11 +29,8 @@ class MessageVm : BaseVm(){ startHttp { var json=JSONObject() json.put("id", id) - json.put("notifyId", notifyId) - json.put("notifyStatus",1) - json.put("notifyHandStatus",2) - var respnse=apiInterface().readMsg(retrofits.getRequestBody(json.toString())) + var respnse=apiInterface().setMessageRead(retrofits.getRequestBody(json.toString())) respnse.getCodeStatus(readLive,nowData) } } diff --git a/mine/src/main/res/mipmap-xhdpi/ic_round_choice.png b/mine/src/main/res/mipmap-xhdpi/ic_round_choice.png index eb0fc97..b81185e 100644 Binary files a/mine/src/main/res/mipmap-xhdpi/ic_round_choice.png and b/mine/src/main/res/mipmap-xhdpi/ic_round_choice.png differ diff --git a/network/src/main/java/com/xty/network/ApiInterface.kt b/network/src/main/java/com/xty/network/ApiInterface.kt index 5c084d3..f97916a 100644 --- a/network/src/main/java/com/xty/network/ApiInterface.kt +++ b/network/src/main/java/com/xty/network/ApiInterface.kt @@ -1017,6 +1017,9 @@ interface ApiInterface { @POST("customer/message") suspend fun getMessageList(@Body rb: RequestBody): RespBody + @POST("customer/message/messageList") + suspend fun getMessageListForType(@Body rb: RequestBody):RespBody + /** * 我的预警消息 */ @@ -1032,7 +1035,7 @@ interface ApiInterface { /** * 批量删除消息 */ - @POST("butler/message/deleteMsg") + @POST("customer/message/deleteMsg") suspend fun deleteMsgs(@Body ids: RequestBody): RespBody /** @@ -1326,6 +1329,21 @@ interface ApiInterface { @GET("customer/device/findUserBaseInfo") suspend fun getUserInfo(@Query("userId") userId: String): RespBody + /** + * 获取首页系统消息 + */ + @POST("customer/message/index") + suspend fun getSystemMsg():RespBody + + /** + * 设置消息已读 + */ + @POST("customer/message/setMessageRead") + suspend fun setMessageRead(@Body rb: RequestBody): RespBody + + @POST("customer/message/setAllMessageRead") + suspend fun setMessageReadAll(): RespBody + /** * 解绑设备SN号 */ diff --git a/network/src/main/java/com/xty/network/model/MessageTypeDataBean.kt b/network/src/main/java/com/xty/network/model/MessageTypeDataBean.kt new file mode 100644 index 0000000..52f2feb --- /dev/null +++ b/network/src/main/java/com/xty/network/model/MessageTypeDataBean.kt @@ -0,0 +1,34 @@ +package com.xty.network.model + +import com.google.gson.annotations.SerializedName +import java.io.Serializable + +data class MessageTypeDataBean ( + var records:ArrayList, + var total:Int, + var size:Int, + var current:Int +):Serializable{ + + data class MessageTypeBean( + + val notifyContent: String, + val notifyCreateTime: Long, + val notifyHandStatus: Int, + val notifyId: String, + var notifyStatus: Int, + val notifyTitle: String, + val notifyType: Int, + val notifyUserType: Int, + val remark: Any, + val type: Int, + val userId: String, + val id: String, + val reportPresetId:String, + val titleStatus:String, + val time:String, + var isChoice:Boolean = false + ):Serializable{ + + } +} \ No newline at end of file diff --git a/network/src/main/java/com/xty/network/model/SystemMsgBean.kt b/network/src/main/java/com/xty/network/model/SystemMsgBean.kt index 58fb3dc..c743aa3 100644 --- a/network/src/main/java/com/xty/network/model/SystemMsgBean.kt +++ b/network/src/main/java/com/xty/network/model/SystemMsgBean.kt @@ -2,4 +2,6 @@ package com.xty.network.model import android.content.ContentResolver -data class SystemMsgBean(var id:Long,var title:String,var time:Long,var content:String) +data class SystemMsgBean(var unReadCount:Long,var name:String,var time:String,var msg:String,var type:Int) + +data class SystemMsgDataResp(var unReadCount:Long,var list:ArrayList)