diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 57bdebd..f08a52f 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -188,6 +188,32 @@
android:configChanges="keyboardHidden|orientation|locale"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
+
+
+
+
+
+
+
+
+
+
) : FragmentStateAdapter(fragmentActivity) {
+ private var fragmentList : MutableList =ArrayList()
+ init {
+ this.fragmentList = list
+ }
+
+ override fun getItemCount(): Int {
+ return fragmentList.size
+ }
+
+ override fun createFragment(position: Int): Fragment {
+ return fragmentList[position]
+ }
+
+ fun addFragment(fragment: Fragment){
+ fragmentList.add(fragment)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/dhsd/glowner/adapter/QuestionAdatper.kt b/app/src/main/java/com/dhsd/glowner/adapter/QuestionAdatper.kt
new file mode 100644
index 0000000..6f318b7
--- /dev/null
+++ b/app/src/main/java/com/dhsd/glowner/adapter/QuestionAdatper.kt
@@ -0,0 +1,31 @@
+package com.dhsd.glowner.adapter
+
+import android.content.Context
+import android.view.ViewGroup
+import com.chad.library.adapter4.BaseQuickAdapter
+import com.chad.library.adapter4.viewholder.QuickViewHolder
+import com.dahe.gldriver.bean.QuestionBean
+import com.dahe.mylibrary.utils.ImageLoader
+import com.dhsd.glowner.R
+
+/**
+ * @ClassName QuestionAdatper
+ * @Author john
+ * @Date 2024/3/25 17:04
+ * @Description TODO
+ */
+class QuestionAdatper : BaseQuickAdapter() {
+ override fun onBindViewHolder(holder: QuickViewHolder, position: Int, item: QuestionBean?) {
+ holder.run {
+ setText(R.id.tvTitle, item?.classroomName)
+ setText(R.id.tvDate, item?.updateTime)
+ ImageLoader.getInstance().loadImage(context,item?.classroomUrl,getView(R.id.ivBg))
+ }
+ }
+
+ override fun onCreateViewHolder(
+ context: Context,
+ parent: ViewGroup,
+ viewType: Int
+ ) = QuickViewHolder(R.layout.item_question, parent)
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/dhsd/glowner/adapter/RateAdapter.kt b/app/src/main/java/com/dhsd/glowner/adapter/RateAdapter.kt
new file mode 100644
index 0000000..1b6f831
--- /dev/null
+++ b/app/src/main/java/com/dhsd/glowner/adapter/RateAdapter.kt
@@ -0,0 +1,48 @@
+package com.dhsd.glowner.adapter
+
+import android.content.Context
+import android.view.ViewGroup
+import android.widget.ImageView
+import com.chad.library.adapter4.BaseQuickAdapter
+import com.chad.library.adapter4.viewholder.QuickViewHolder
+import com.dahe.gldriver.bean.RateBean
+import com.dahe.mylibrary.utils.ImageLoader
+import com.dhsd.glowner.R
+import me.zhanghai.android.materialratingbar.MaterialRatingBar
+
+/**
+ * @ClassName WaybillAdapter
+ * @Author 用户
+ * @Date 2024/3/18 16:27
+ * @Description 评价管理adapter
+ */
+class RateAdapter(var isInvite: Boolean = false) :
+ BaseQuickAdapter() {
+ override fun onBindViewHolder(holder: QuickViewHolder, position: Int, item: RateBean?) {
+ item?.let {
+ holder.run {
+ setText(R.id.tvDate, item.createTime)
+ setText(R.id.tvContent, item.opinionsContent)
+ setText(R.id.tvComName, item.realCompanyName)
+ setText(
+ R.id.tvRate,
+ """交易${item.shipperTransactionVolume} 好评率${item.shipperPositiveReviewRate.toInt() * 100}%"""
+ )
+
+ val rating = getView(R.id.rating)
+ rating.rating = item.opinionsStarRating.toFloat() / 2
+ ImageLoader.getInstance()
+ .loadRoundImage(context, it.avatar, 6, getView(R.id.ivHead))
+ }
+ }
+ }
+
+ override fun onCreateViewHolder(
+ context: Context,
+ parent: ViewGroup,
+ viewType: Int
+ ): QuickViewHolder {
+ // 返回一个 ViewHolder
+ return QuickViewHolder(R.layout.item_rate, parent)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/dhsd/glowner/base/AppConfig.kt b/app/src/main/java/com/dhsd/glowner/base/AppConfig.kt
index be37d1e..c2478b3 100644
--- a/app/src/main/java/com/dhsd/glowner/base/AppConfig.kt
+++ b/app/src/main/java/com/dhsd/glowner/base/AppConfig.kt
@@ -20,5 +20,6 @@ object AppConfig {
const val PWD = "DA_HE_PHONE"
const val CODE = "DA_HE_PHONE"
const val SUCCESS_TYPE = "DA_HE_SUCCESS_TYPE"
+ const val RATE_TYPE = "DA_HE_RATE_TYPE"//0:收到的评价 1:发表的评价
}
\ No newline at end of file
diff --git a/app/src/main/java/com/dhsd/glowner/bean/TabBean.kt b/app/src/main/java/com/dhsd/glowner/bean/TabBean.kt
index b86bd45..711f687 100644
--- a/app/src/main/java/com/dhsd/glowner/bean/TabBean.kt
+++ b/app/src/main/java/com/dhsd/glowner/bean/TabBean.kt
@@ -83,3 +83,50 @@ data class Material(
var materialUrl: String="",
var sortValue: String=""
)
+
+data class QuestionBean(
+ val classroomDesc: String,
+ val classroomId: String,
+ val classroomName: String,
+ val classroomUrl: String,
+ val createTime: String,
+ val isRecommend: String,
+ val isTop: String,
+ val sortValue: String,
+ val status: String,
+ val updateTime: String
+)
+
+data class QueDetail(
+ val classroomId: String,
+ val contentData: String
+)
+
+/**
+ * @ClassName ApiBean
+ * @Author john
+ * @Date 2024/3/18 09:59
+ * @Description TODO
+ */
+data class RateBean(
+ val createBy: String,
+ val createTime: String,
+ val driverId: Int,
+ val operatorType: String,
+ val opinionsContent: String,
+ val positiveReviewRate: String,
+ val totalNumberOfOrders: String,
+ val numberOfEvaluations1: String,
+ val numberOfEvaluations2: String,
+ val numberOfEvaluations3: String,
+ val opinionsId: Int,
+ val opinionsStarRating: Int,
+ val opinionsStatus: String,
+ val opinionsType: String,
+ val realCompanyName: String,
+ val shipperPositiveReviewRate: String,
+ val shipperTransactionVolume: String,
+ val avatar: String,
+ val orderId: Int,
+ val updateBy: String
+)
diff --git a/app/src/main/java/com/dhsd/glowner/net/Api.kt b/app/src/main/java/com/dhsd/glowner/net/Api.kt
index 764bc1d..ff45865 100644
--- a/app/src/main/java/com/dhsd/glowner/net/Api.kt
+++ b/app/src/main/java/com/dhsd/glowner/net/Api.kt
@@ -1,4 +1,7 @@
import com.dahe.gldriver.bean.ProBean
+import com.dahe.gldriver.bean.QueDetail
+import com.dahe.gldriver.bean.QuestionBean
+import com.dahe.gldriver.bean.RateBean
import com.dahe.gldriver.bean.UpPart
import com.dahe.glex.bean.*
import com.dahe.mylibrary.net.CommonResponseBean
@@ -217,4 +220,36 @@ interface Api {
*/
@GET(BASE_URL + "driver/app/info/getLastAppVersion")
fun getLastAppVersion(): Observable>
+
+
+ /**
+ * 安全课堂列表
+ * @return Observable>
+ */
+ @GET(BASE_URL + "driver/app/info/safeClassroomList")
+ fun safeClassroomList(): Observable>>
+
+ /**
+ * 安全课堂详情
+ * @param problemId String
+ * @return Observable>
+ */
+ @GET(BASE_URL + "driver/app/info/safeClassroomDetail")
+ fun safeClassroomDetail(@Query("classroomId") problemId: String): Observable>
+
+
+ /**
+ * 查询运单评价信息列表
+ * opinionsType 评价类型(0=司机评价,1=货主评价)
+ * @return Observable>
+ */
+ @GET(BASE_URL + "driver/opinions/list")
+ fun waybillRate(@Query("opinionsType") opinionsType: String): Observable>>
+
+ /**
+ * 查询司机总评价信息
+ * @return Observable>
+ */
+ @GET(BASE_URL + "driver/opinions/getDriverOpinionsStatInfo")
+ fun driverRate(): Observable>
}
\ No newline at end of file
diff --git a/app/src/main/java/com/dhsd/glowner/ui/mine/MineFragment.kt b/app/src/main/java/com/dhsd/glowner/ui/mine/MineFragment.kt
index b54e56f..f6bc0fb 100644
--- a/app/src/main/java/com/dhsd/glowner/ui/mine/MineFragment.kt
+++ b/app/src/main/java/com/dhsd/glowner/ui/mine/MineFragment.kt
@@ -24,6 +24,8 @@ import com.dhsd.glowner.databinding.FragmentMineBinding
import com.dhsd.glowner.ui.WebActivity
import com.dhsd.glowner.ui.mine.activity.AuthPartyActivity
import com.dhsd.glowner.ui.mine.activity.ComProActivity
+import com.dhsd.glowner.ui.mine.activity.QuesActivity
+import com.dhsd.glowner.ui.mine.activity.RateManActivity
import com.dhsd.glowner.ui.mine.activity.RulesActivity
import com.dhsd.glowner.ui.mine.activity.SettingActivity
import com.dhsd.glowner.utils.AppVersionUtils
@@ -119,6 +121,7 @@ class MineFragment : BaseFragment(), View.OnClickListener,
}
2 -> {
+ ActivityUtils.startActivity(mContext, QuesActivity::class.java)
// var bundle = Bundle()
// bundle.putString("title","我的百度")
// bundle.putString("url","www.baidu.com")
@@ -127,7 +130,7 @@ class MineFragment : BaseFragment(), View.OnClickListener,
}
3 -> {
- ToastUtils.showToast(mContext, tools[pos].title)
+ ActivityUtils.startActivity(mContext, RateManActivity::class.java)
}
}
diff --git a/app/src/main/java/com/dhsd/glowner/ui/mine/RateFragment.kt b/app/src/main/java/com/dhsd/glowner/ui/mine/RateFragment.kt
new file mode 100644
index 0000000..02f5d47
--- /dev/null
+++ b/app/src/main/java/com/dhsd/glowner/ui/mine/RateFragment.kt
@@ -0,0 +1,87 @@
+package com.dhsd.glowner.ui.mine
+
+import BaseObserver
+import RxHttpCallBack
+import android.graphics.Color
+import android.widget.LinearLayout
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import com.dahe.gldriver.base.AppConfig
+import com.dahe.gldriver.bean.RateBean
+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.ActivityUtils
+import com.dahe.mylibrary.utils.ConvertUtils
+import com.dhsd.glowner.R
+import com.dhsd.glowner.adapter.RateAdapter
+import com.dhsd.glowner.databinding.FragmentWaybillList2Binding
+import com.dhsd.glowner.databinding.FragmentWaybillListBinding
+import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
+import io.reactivex.rxjava3.schedulers.Schedulers
+
+/**
+ * @ClassName RateFragment
+ * @Author john
+ * @Date 2024/3/18 09:34
+ * @Description TODO
+ */
+class RateFragment : BaseFragment(), RefreshCallBack {
+ var rateType: Int = 0
+
+ lateinit var adapter: RateAdapter
+ override fun onFragmentVisibleChange(isVisible: Boolean) {
+ }
+
+ override fun onFragmentFirstVisible() {
+ setRefresh(binding.refresh,this)
+ arguments?.let {
+ rateType = it.getInt(AppConfig.RATE_TYPE, 0)
+ }
+
+ adapter = binding.recyclerView.run {
+ layoutManager = LinearLayoutManager(mContext, RecyclerView.VERTICAL, false)
+ addItemDecoration(
+ RecycleViewDivider(
+ LinearLayout.VERTICAL,
+ ConvertUtils.dp2px(16.0f),
+ Color.TRANSPARENT
+ )
+ )
+ adapter = RateAdapter()
+ adapter as RateAdapter
+ }.apply {
+ isStateViewEnable = true
+ }
+
+// binding.btnOk.setOnClickListener {
+// ActivityUtils.startActivity(mContext, InviteDriverActivity::class.java)
+// }
+ initData()
+ }
+
+ private fun initData() {
+ DataManager.getInstance().waybillRate(rateType.toString())
+ .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
+ )
+ }
+ }))
+ }
+
+ override fun getRefreshDate(stat: Int, page: Int, count: Int) {
+ initData()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/dhsd/glowner/ui/mine/activity/QueDetailActivity.kt b/app/src/main/java/com/dhsd/glowner/ui/mine/activity/QueDetailActivity.kt
new file mode 100644
index 0000000..d30dda6
--- /dev/null
+++ b/app/src/main/java/com/dhsd/glowner/ui/mine/activity/QueDetailActivity.kt
@@ -0,0 +1,75 @@
+package com.dhsd.glowner.ui.mine.activity
+
+import BaseObserver
+import RxHttpCallBack
+import android.os.Bundle
+import android.text.Html
+import android.webkit.WebView
+import android.widget.FrameLayout
+import com.dahe.gldriver.base.AppConfig
+import com.dahe.gldriver.bean.QueDetail
+import com.dahe.gldriver.bean.QuestionBean
+import com.dahe.mylibrary.base.BaseActivity
+import com.dahe.mylibrary.net.CommonResponseBean
+import com.dhsd.glowner.R
+import com.dhsd.glowner.databinding.ActivityQueDetailBinding
+import com.google.gson.Gson
+import com.just.agentweb.AgentWeb
+import com.just.agentweb.AgentWebUIControllerImplBase
+import com.just.agentweb.WebChromeClient
+import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
+import io.reactivex.rxjava3.schedulers.Schedulers
+
+/**
+ * @ClassName ComProActivity
+ * @Author john
+ * @Date 2024/3/25 16:42
+ * @Description 安全课堂详情
+ */
+class QueDetailActivity : BaseActivity() {
+ private var mAgentWeb: AgentWeb? = null
+ override fun initView(savedInstanceState: Bundle?) {
+ setStatusBarColor(R.color.white)
+ setTitleBar("安全课堂", true)
+ mAgentWeb = AgentWeb.with(this)
+ .setAgentWebParent(binding.WebViewLayout, FrameLayout.LayoutParams(-1, -1))
+ .useDefaultIndicator()
+ .setWebChromeClient(mWebChromeClient)
+ .setSecurityType(AgentWeb.SecurityType.DEFAULT_CHECK)
+ .setAgentWebUIController(AgentWebUIControllerImplBase())
+ .createAgentWeb()
+ .ready()
+ .go("")
+ }
+
+ override fun initDate() {
+ var proBean = Gson().fromJson(intent.extras?.getString(AppConfig.BEAN), QuestionBean::class.java)
+
+
+ DataManager.getInstance().safeClassroomDetail(proBean.classroomId)
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(BaseObserver(mContext, object : RxHttpCallBack() {
+ override fun onSuccess(t: CommonResponseBean) {
+ super.onSuccess(t)
+ binding.run {
+// tvContent.text = Html.fromHtml(t.data.contentData)
+ mAgentWeb?.webCreator?.webView?.loadDataWithBaseURL(null,t.data.contentData,"text/html" , "utf-8", null)
+ }
+ }
+ }))
+ }
+
+ private val mWebChromeClient: WebChromeClient = object : WebChromeClient() {
+ override fun onProgressChanged(view: WebView, newProgress: Int) {
+ super.onProgressChanged(view, newProgress)
+ }
+
+ override fun onReceivedTitle(view: WebView, title: String) {
+ super.onReceivedTitle(view, title)
+// setTitleBar(
+// if (TextUtils.isEmpty(mTitle)) title else mTitle
+// ) { if (!mAgentWeb!!.back()) finish() }
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/dhsd/glowner/ui/mine/activity/QuesActivity.kt b/app/src/main/java/com/dhsd/glowner/ui/mine/activity/QuesActivity.kt
new file mode 100644
index 0000000..0f88e2e
--- /dev/null
+++ b/app/src/main/java/com/dhsd/glowner/ui/mine/activity/QuesActivity.kt
@@ -0,0 +1,73 @@
+package com.dhsd.glowner.ui.mine.activity
+
+import BaseObserver
+import RxHttpCallBack
+import android.graphics.Color
+import android.os.Bundle
+import android.widget.LinearLayout
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import com.dahe.gldriver.base.AppConfig
+import com.dahe.gldriver.bean.QuestionBean
+import com.dahe.mylibrary.base.BaseActivity
+import com.dahe.mylibrary.net.CommonResponseBean
+import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider
+import com.dahe.mylibrary.utils.ActivityUtils
+import com.dahe.mylibrary.utils.ConvertUtils
+import com.dhsd.glowner.R
+import com.dhsd.glowner.adapter.QuestionAdatper
+import com.dhsd.glowner.databinding.ActivityQuesBinding
+import com.google.gson.Gson
+import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
+import io.reactivex.rxjava3.schedulers.Schedulers
+
+/**
+ * @ClassName QuesActivity
+ * @Author john
+ * @Date 2024/3/27 16:00
+ * @Description 安全课堂
+ */
+class QuesActivity : BaseActivity() {
+
+ lateinit var adapter: QuestionAdatper
+ override fun initView(savedInstanceState: Bundle?) {
+ setStatusBarColor(R.color.white)
+ setTitleBar("安全课堂", true)
+
+ binding.run {
+ adapter = recycler.run {
+ layoutManager = LinearLayoutManager(mContext, RecyclerView.VERTICAL, false)
+ addItemDecoration(
+ RecycleViewDivider(
+ LinearLayout.VERTICAL,
+ ConvertUtils.dp2px(10.0f),
+ Color.TRANSPARENT
+ )
+ )
+ adapter = QuestionAdatper()
+ adapter as QuestionAdatper
+ }.apply {
+ setOnItemClickListener { _, _, position ->
+ ActivityUtils.startActivity(
+ mContext,
+ QueDetailActivity::class.java,
+ Bundle().apply {
+ putString(AppConfig.BEAN, Gson().toJson(items[position]))
+ })
+ }
+ }
+ }
+ }
+
+ override fun initDate() {
+ DataManager.getInstance().safeClassroomList()
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(BaseObserver(mContext, object : RxHttpCallBack>() {
+ override fun onSuccess(t: CommonResponseBean>) {
+ super.onSuccess(t)
+ adapter.submitList(t.data)
+ }
+ }))
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/dhsd/glowner/ui/mine/activity/RateManActivity.kt b/app/src/main/java/com/dhsd/glowner/ui/mine/activity/RateManActivity.kt
new file mode 100644
index 0000000..77f51ad
--- /dev/null
+++ b/app/src/main/java/com/dhsd/glowner/ui/mine/activity/RateManActivity.kt
@@ -0,0 +1,149 @@
+package com.dhsd.glowner.ui.mine.activity
+
+import BaseObserver
+import RxHttpCallBack
+import android.content.Context
+import android.graphics.Color
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import androidx.viewpager2.widget.ViewPager2
+import com.dahe.gldriver.base.AppConfig
+import com.dahe.gldriver.bean.RateBean
+import com.dahe.mylibrary.base.BaseActivity
+import com.dahe.mylibrary.net.CommonResponseBean
+import com.dahe.mylibrary.utils.ImageLoader
+import com.dhsd.glowner.R
+import com.dhsd.glowner.adapter.PagersAdapter
+import com.dhsd.glowner.databinding.ActivityRateManBinding
+import com.dhsd.glowner.ui.mine.RateFragment
+import com.dhsd.glowner.utils.SPUtils
+import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
+import io.reactivex.rxjava3.schedulers.Schedulers
+import net.lucode.hackware.magicindicator.FragmentContainerHelper
+import net.lucode.hackware.magicindicator.buildins.UIUtil
+import net.lucode.hackware.magicindicator.buildins.commonnavigator.CommonNavigator
+import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.CommonNavigatorAdapter
+import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerIndicator
+import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerTitleView
+import net.lucode.hackware.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator
+import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.ColorTransitionPagerTitleView
+
+/**
+ * @ClassName RateManActivity
+ * @Author john
+ * @Date 2024/3/18 08:51
+ * @Description 评价管理
+ */
+class RateManActivity : BaseActivity() {
+
+ private val mFragmentContainerHelper = FragmentContainerHelper()
+ var mFragments = mutableListOf()
+ val titles = mutableListOf(
+ "收到的评价", "发表的评价"
+ )
+
+
+ override fun initView(savedInstanceState: Bundle?) {
+ setStatusBarColor(R.color.white)
+ setTitleBar("评价管理", true)
+
+ mFragments.run {
+ add(RateFragment().apply {
+ arguments = Bundle().apply {
+ putInt(AppConfig.RATE_TYPE, 0)
+ }
+ })
+ add(RateFragment().apply {
+ arguments = Bundle().apply {
+ putInt(AppConfig.RATE_TYPE, 1)
+ }
+ })
+ }
+
+ var pagerAdapter = PagersAdapter(this, mFragments)
+
+
+ mFragmentContainerHelper.handlePageSelected(0, true)
+
+ binding.viewPager.adapter = pagerAdapter
+ binding.viewPager.currentItem = 0
+ binding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() {
+ override fun onPageSelected(position: Int) {
+ super.onPageSelected(position)
+ mFragmentContainerHelper.handlePageSelected(position, true)
+ }
+ });
+
+ var commonNavigator = CommonNavigator(mContext)
+ commonNavigator.run {
+ isAdjustMode = true
+ adapter = object : CommonNavigatorAdapter() {
+ override fun getCount(): Int {
+ return titles.size
+ }
+
+ override fun getTitleView(context: Context?, index: Int): IPagerTitleView {
+ val colorTransitionPagerTitleView = ColorTransitionPagerTitleView(context)
+ colorTransitionPagerTitleView.normalColor = Color.BLACK
+ colorTransitionPagerTitleView.selectedColor = Color.RED
+ colorTransitionPagerTitleView.text = titles[index]
+ colorTransitionPagerTitleView.setOnClickListener {
+ mFragmentContainerHelper.handlePageSelected(index)
+ switchPages(index)
+ }
+ return colorTransitionPagerTitleView
+ }
+
+ override fun getIndicator(context: Context?): IPagerIndicator {
+ val indicator = LinePagerIndicator(context)
+ indicator.mode = LinePagerIndicator.MODE_WRAP_CONTENT
+ indicator.yOffset = UIUtil.dip2px(context, 3.0).toFloat()
+ indicator.setColors(Color.RED)
+ return indicator
+ }
+
+ }
+ }
+
+ binding.magicIndicator.navigator = commonNavigator
+ mFragmentContainerHelper.attachMagicIndicator(binding.magicIndicator)
+
+ }
+
+ override fun initDate() {
+ val userInfo = SPUtils.instance.getUserInfo(mContext)
+ if (userInfo != null) {
+ binding.run {
+ tvName.text = userInfo.userName
+ ImageLoader.getInstance()
+ .loadCircleImage(mContext, userInfo.avatar, ivHead, R.drawable.head_defaut)
+ }
+ }
+ DataManager.getInstance().driverRate().subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(BaseObserver(mContext, object : RxHttpCallBack() {
+ override fun onSuccess(t: CommonResponseBean) {
+ super.onSuccess(t)
+ t.data?.let {
+ binding.run {
+ tvRating.text = if (it.positiveReviewRate.isNullOrEmpty()) "0%" else """${(it.positiveReviewRate.toInt() * 100)}%"""
+ pbOne.progress =
+ if (it.numberOfEvaluations1.isNullOrEmpty()) 0 else (it.numberOfEvaluations1.toInt() * 100 / it.totalNumberOfOrders.toInt())
+
+ pbTwo.progress =
+ if (it.numberOfEvaluations2.isNullOrEmpty()) 0 else (it.numberOfEvaluations2.toInt() * 100 / it.totalNumberOfOrders.toInt())
+
+ pbThree.progress =
+ if (it.numberOfEvaluations3.isNullOrEmpty()) 0 else (it.numberOfEvaluations3.toInt() * 100 / it.totalNumberOfOrders.toInt())
+ }
+ }
+ }
+ }))
+
+
+ }
+
+ private fun switchPages(index: Int) {
+ binding.viewPager.currentItem = index
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable-xxhdpi/bg_que.png b/app/src/main/res/drawable-xxhdpi/bg_que.png
new file mode 100644
index 0000000..8b5d384
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/bg_que.png differ
diff --git a/app/src/main/res/layout/activity_que_detail.xml b/app/src/main/res/layout/activity_que_detail.xml
new file mode 100644
index 0000000..b6321bb
--- /dev/null
+++ b/app/src/main/res/layout/activity_que_detail.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_ques.xml b/app/src/main/res/layout/activity_ques.xml
new file mode 100644
index 0000000..3039355
--- /dev/null
+++ b/app/src/main/res/layout/activity_ques.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_rate_man.xml b/app/src/main/res/layout/activity_rate_man.xml
new file mode 100644
index 0000000..4ff4762
--- /dev/null
+++ b/app/src/main/res/layout/activity_rate_man.xml
@@ -0,0 +1,245 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_waybill_list2.xml b/app/src/main/res/layout/fragment_waybill_list2.xml
new file mode 100644
index 0000000..2868871
--- /dev/null
+++ b/app/src/main/res/layout/fragment_waybill_list2.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_question.xml b/app/src/main/res/layout/item_question.xml
new file mode 100644
index 0000000..a854bc3
--- /dev/null
+++ b/app/src/main/res/layout/item_question.xml
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_rate.xml b/app/src/main/res/layout/item_rate.xml
new file mode 100644
index 0000000..df8a6f7
--- /dev/null
+++ b/app/src/main/res/layout/item_rate.xml
@@ -0,0 +1,125 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/mylibrary/build.gradle b/mylibrary/build.gradle
index 4c9e9e2..e6ad49f 100644
--- a/mylibrary/build.gradle
+++ b/mylibrary/build.gradle
@@ -99,6 +99,9 @@ dependencies {
api 'com.github.jenly1314.AppUpdater:app-updater:1.2.0'
api 'com.github.jenly1314.AppUpdater:app-dialog:1.2.0'
+ //评价星星
+ api 'me.zhanghai.android.materialratingbar:library:1.4.0'
+
// api 'com.gyf.cactus:cactus:1.1.3-beta13'
diff --git a/mylibrary/src/main/java/com/dahe/mylibrary/net/CommonResponseBean.java b/mylibrary/src/main/java/com/dahe/mylibrary/net/CommonResponseBean.java
index e354bc0..cdf785c 100644
--- a/mylibrary/src/main/java/com/dahe/mylibrary/net/CommonResponseBean.java
+++ b/mylibrary/src/main/java/com/dahe/mylibrary/net/CommonResponseBean.java
@@ -12,6 +12,15 @@ public class CommonResponseBean implements Serializable {
private int code;
private String msg;
+ private int total;
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
public T getData() {
return data;