From fcc2f166cef341a89a269fe30ff5a2777407c7b0 Mon Sep 17 00:00:00 2001 From: lijia Date: Thu, 18 Apr 2024 09:26:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B6=88=E6=81=AF=E5=8A=9F=E8=83=BD=E5=AF=B9?= =?UTF-8?q?=E6=8E=A5=EF=BC=8C=E4=B8=BA=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dahe/gldriver/adapter/MessageAdapter.kt | 12 +++- .../com/dahe/gldriver/bean/MessageBean.kt | 24 +++++++ .../main/java/com/dahe/gldriver/net/Api.kt | 11 ++++ .../gldriver/ui/message/MessageFragment.kt | 63 ++++++++++++++----- .../res/drawable/simple_count_badge_bg.xml | 8 +++ app/src/main/res/layout/item_message.xml | 16 ++++- 6 files changed, 111 insertions(+), 23 deletions(-) create mode 100644 app/src/main/java/com/dahe/gldriver/bean/MessageBean.kt create mode 100644 app/src/main/res/drawable/simple_count_badge_bg.xml diff --git a/app/src/main/java/com/dahe/gldriver/adapter/MessageAdapter.kt b/app/src/main/java/com/dahe/gldriver/adapter/MessageAdapter.kt index 9b21968..6c0c329 100644 --- a/app/src/main/java/com/dahe/gldriver/adapter/MessageAdapter.kt +++ b/app/src/main/java/com/dahe/gldriver/adapter/MessageAdapter.kt @@ -5,6 +5,7 @@ import android.view.ViewGroup import com.chad.library.adapter4.BaseQuickAdapter import com.chad.library.adapter4.viewholder.QuickViewHolder import com.dahe.gldriver.R +import com.dahe.gldriver.bean.MessageBean import com.dahe.glex.bean.WayBillBean /** @@ -13,11 +14,16 @@ import com.dahe.glex.bean.WayBillBean * @Date 2024/1/24 14:40 * @Description TODO */ -class MessageAdapter: BaseQuickAdapter() { +class MessageAdapter : BaseQuickAdapter() { - override fun onBindViewHolder(holder: QuickViewHolder, position: Int, item: WayBillBean?) { - + override fun onBindViewHolder(holder: QuickViewHolder, position: Int, item: MessageBean?) { + holder.run { + setText(R.id.tvTitle, item?.messageTypeLable) + setText(R.id.tvData, item?.createTime) + setText(R.id.tvProduct, item?.messageTitle) + setGone(R.id.tvBadge,item?.isRead=="1") + } } override fun onCreateViewHolder( diff --git a/app/src/main/java/com/dahe/gldriver/bean/MessageBean.kt b/app/src/main/java/com/dahe/gldriver/bean/MessageBean.kt new file mode 100644 index 0000000..99d0e06 --- /dev/null +++ b/app/src/main/java/com/dahe/gldriver/bean/MessageBean.kt @@ -0,0 +1,24 @@ +package com.dahe.gldriver.bean + +/** + * @ClassName MessageBean + * @Author john + * @Date 2024/4/18 08:44 + * @Description TODO + */ +data class MessageBean( + val createBy: String, + val createTime: String, + val driverId: String, + val isRead: String, + val messageContent: String, + val messageId: String, + val messageTitle: String, + val messageType: String, + val messageTypeLable: String, + val phone: String, + val remark: String, + val status: String, + val updateBy: String, + val updateTime: String +) \ No newline at end of file diff --git a/app/src/main/java/com/dahe/gldriver/net/Api.kt b/app/src/main/java/com/dahe/gldriver/net/Api.kt index bb0ea2e..85dc02f 100644 --- a/app/src/main/java/com/dahe/gldriver/net/Api.kt +++ b/app/src/main/java/com/dahe/gldriver/net/Api.kt @@ -11,6 +11,7 @@ import com.dahe.gldriver.bean.DiCarColor import com.dahe.gldriver.bean.DriverBean import com.dahe.gldriver.bean.FaceBean import com.dahe.gldriver.bean.InviteRecord +import com.dahe.gldriver.bean.MessageBean import com.dahe.gldriver.bean.OcrPersonBean import com.dahe.gldriver.bean.OrderChild import com.dahe.gldriver.bean.OrderDetailBean @@ -564,6 +565,16 @@ interface Api { @GET(BASE_URL + "driver/driver/getESignPsnAuthUrl") fun getESignPsnAuthUrl(): Observable> + /** + * 查询司机消息通知列表 + * @return Observable>> + */ + @GET(BASE_URL+"driver/message/list") + fun messageList():Observable>> + + @GET(BASE_URL+"driver/message/read") + fun messageRead(@Query("messageId") messageId :String):Observable> + companion object { // String BASE_URL = "https://tmstest.dahehuoyun.com/"; const val BASE_URL = BuildConfig.BASE_URL diff --git a/app/src/main/java/com/dahe/gldriver/ui/message/MessageFragment.kt b/app/src/main/java/com/dahe/gldriver/ui/message/MessageFragment.kt index 78464a0..5ac9833 100644 --- a/app/src/main/java/com/dahe/gldriver/ui/message/MessageFragment.kt +++ b/app/src/main/java/com/dahe/gldriver/ui/message/MessageFragment.kt @@ -6,14 +6,22 @@ import android.widget.LinearLayout import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.dahe.gldriver.R +import com.dahe.gldriver.adapter.BusinessListAdapter import com.dahe.gldriver.adapter.MessageAdapter +import com.dahe.gldriver.bean.MessageBean import com.dahe.gldriver.databinding.FragmentMessageBinding import com.dahe.gldriver.databinding.FragmentWaybillBinding +import com.dahe.gldriver.net.BaseObserver +import com.dahe.gldriver.net.DataManager +import com.dahe.gldriver.net.RxHttpCallBack import com.dahe.glex.bean.WayBillBean import com.dahe.mylibrary.base.BaseFragment import com.dahe.mylibrary.callback.RefreshCallBack +import com.dahe.mylibrary.net.CommonResponseBean import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider import com.dahe.mylibrary.utils.ConvertUtils +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers +import io.reactivex.rxjava3.schedulers.Schedulers import net.lucode.hackware.magicindicator.ViewPagerHelper import net.lucode.hackware.magicindicator.buildins.commonnavigator.CommonNavigator import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.CommonNavigatorAdapter @@ -31,7 +39,7 @@ import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.ColorT */ class MessageFragment : BaseFragment(), RefreshCallBack { - + lateinit var adapter: MessageAdapter override fun onFragmentVisibleChange(isVisible: Boolean) { if (isVisible) { } @@ -39,30 +47,41 @@ class MessageFragment : BaseFragment(), RefreshCallBack } override fun onFragmentFirstVisible() { - setRefresh(binding.refresh,this) + setRefresh(binding.refresh, this) initRecy() + getData() } override fun getRefreshDate(stat: Int, page: Int, count: Int) { + getData() + } + private fun getData() { + DataManager.getInstance().messageList() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(BaseObserver(mContext, object : RxHttpCallBack>() { + override fun onSuccess(t: CommonResponseBean>) { + super.onSuccess(t) + if (t.data == null || t.data.size == 0) { + adapter.submitList(null) + adapter.setStateViewLayout(mContext, R.layout.empty_view) + } else { + adapter.submitList(t.data) + } + setFinishRefresh( + binding.refresh, + t.total > mRefreshPage * mRefreshCount + ) + } + })) } private fun initRecy() { - var datas = mutableListOf( - WayBillBean(), - WayBillBean(), - WayBillBean(), - WayBillBean(), - WayBillBean(), - WayBillBean(), - WayBillBean(), - WayBillBean() - ) - - var adapter = binding.recyclerView.run { - layoutManager = LinearLayoutManager(mContext,RecyclerView.VERTICAL,false) + adapter = binding.recyclerView.run { + layoutManager = LinearLayoutManager(mContext, RecyclerView.VERTICAL, false) addItemDecoration( RecycleViewDivider( LinearLayout.VERTICAL, @@ -70,14 +89,24 @@ class MessageFragment : BaseFragment(), RefreshCallBack Color.TRANSPARENT ) ) - setHasFixedSize(true) adapter = MessageAdapter() adapter as MessageAdapter }.apply { isStateViewEnable = true + setOnItemClickListener { _, _, position -> + DataManager.getInstance().messageRead(items[position].messageId) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(BaseObserver(mContext, object : RxHttpCallBack() { + override fun onSuccess(t: CommonResponseBean) { + super.onSuccess(t) + + getData() + } + })) + } } - adapter.submitList(datas) } } \ No newline at end of file diff --git a/app/src/main/res/drawable/simple_count_badge_bg.xml b/app/src/main/res/drawable/simple_count_badge_bg.xml new file mode 100644 index 0000000..61c2b2d --- /dev/null +++ b/app/src/main/res/drawable/simple_count_badge_bg.xml @@ -0,0 +1,8 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_message.xml b/app/src/main/res/layout/item_message.xml index 4685732..755f85f 100644 --- a/app/src/main/res/layout/item_message.xml +++ b/app/src/main/res/layout/item_message.xml @@ -2,10 +2,11 @@ + android:layout_marginRight="@dimen/dp_18" + android:background="@drawable/shape_message_item_bg" + android:padding="@dimen/dp_11"> + + + \ No newline at end of file