From 33e89003ca173c9f4f1bf9b6cea8c8bfdeae2155 Mon Sep 17 00:00:00 2001 From: lijia Date: Thu, 24 Oct 2024 16:04:00 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=89=E6=8B=A9=E8=BD=A6=E8=BE=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 21 ++- .../dhsd/glowner/adapter/DriverCarsAdapter.kt | 54 ++++++ .../java/com/dhsd/glowner/bean/CarBean.kt | 41 +++++ .../java/com/dhsd/glowner/bean/OrderBean.kt | 11 +- .../com/dhsd/glowner/cuspop/PopBottomCar.kt | 2 + app/src/main/java/com/dhsd/glowner/net/Api.kt | 30 +++- .../com/dhsd/glowner/ui/home/HomeFragment.kt | 73 +++++--- .../ui/mine/activity/ChoiceCarActivity.kt | 169 ++++++++++++++++++ .../ui/mine/activity/ChoiceFleetActivity.kt | 21 +++ .../res/drawable-xxhdpi/search_icon_white.png | Bin 0 -> 1429 bytes .../res/drawable/select_choice_car_bg.xml | 7 + app/src/main/res/drawable/shape_discar_8.xml | 14 ++ app/src/main/res/drawable/shape_gray_bg20.xml | 7 + .../main/res/layout/activity_choice_car.xml | 78 ++++++++ .../res/layout/activity_choice_fleet_car.xml | 78 ++++++++ app/src/main/res/layout/item_driver_cars.xml | 136 ++++++++++++++ .../com/dahe/mylibrary/base/BaseActivity.java | 2 +- .../recycleviewswipe/RecycleViewDivider.java | 23 +-- mylibrary/src/main/res/values/colors.xml | 1 + 19 files changed, 710 insertions(+), 58 deletions(-) create mode 100644 app/src/main/java/com/dhsd/glowner/adapter/DriverCarsAdapter.kt create mode 100644 app/src/main/java/com/dhsd/glowner/bean/CarBean.kt create mode 100644 app/src/main/java/com/dhsd/glowner/ui/mine/activity/ChoiceCarActivity.kt create mode 100644 app/src/main/java/com/dhsd/glowner/ui/mine/activity/ChoiceFleetActivity.kt create mode 100644 app/src/main/res/drawable-xxhdpi/search_icon_white.png create mode 100644 app/src/main/res/drawable/select_choice_car_bg.xml create mode 100644 app/src/main/res/drawable/shape_discar_8.xml create mode 100644 app/src/main/res/drawable/shape_gray_bg20.xml create mode 100644 app/src/main/res/layout/activity_choice_car.xml create mode 100644 app/src/main/res/layout/activity_choice_fleet_car.xml create mode 100644 app/src/main/res/layout/item_driver_cars.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1ef2720..745ee11 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -54,14 +54,14 @@ android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" - android:usesCleartextTraffic="true" android:theme="@style/Theme.GLOwner" + android:usesCleartextTraffic="true" tools:targetApi="31"> - + @@ -114,40 +113,34 @@ + + \ No newline at end of file diff --git a/app/src/main/java/com/dhsd/glowner/adapter/DriverCarsAdapter.kt b/app/src/main/java/com/dhsd/glowner/adapter/DriverCarsAdapter.kt new file mode 100644 index 0000000..9e778d7 --- /dev/null +++ b/app/src/main/java/com/dhsd/glowner/adapter/DriverCarsAdapter.kt @@ -0,0 +1,54 @@ +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.mylibrary.utils.ImageLoader +import com.dhsd.glowner.R +import com.dhsd.glowner.bean.CarBean + +/** + * @ClassName WaybillAdapter + * @Author 用户 + * @Date 2024/1/23 16:27 + * @Description TODO + */ +class DriverCarsAdapter() : + BaseQuickAdapter() { + override fun onBindViewHolder(holder: QuickViewHolder, position: Int, item: CarBean?) { + holder.run { + if (item != null) { + setBackgroundResource(R.id.cdContent, if (item.isSelect) R.drawable.shape_discar_8 else R.drawable.shape_white_8) + } + setText(R.id.tvCarNum, item?.vehicleNum) + setText(R.id.tvCarType, item?.vehicleType) + setText(R.id.tvDriverName, item?.contactName) + setText(R.id.tvPhone, item?.contactPhone) + setText(R.id.tvCarLen, """${if (!item?.carLong.isNullOrEmpty()) item?.carLong else ""}mm""") + setText( + R.id.tvCarWei, + """${ + if (!item?.approvedLoad.isNullOrEmpty()) item?.approvedLoad?.toFloat() + ?.div(1000) else if (!item?.tractionWeight.isNullOrEmpty()) item?.tractionWeight?.toFloat() + ?.div(1000) else 0 + }吨""" + ) + + ImageLoader.getInstance() + .loadRoundImage(context, item?.carUrl, 6, getView(R.id.ivHead)) + ImageLoader.getInstance() + .loadRoundImage(context, item?.avatar, 6, getView(R.id.ivDriverHead)) + } + } + + override fun onCreateViewHolder( + context: Context, + parent: ViewGroup, + viewType: Int + ): QuickViewHolder { + // 返回一个 ViewHolder + return QuickViewHolder(R.layout.item_driver_cars, parent) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/dhsd/glowner/bean/CarBean.kt b/app/src/main/java/com/dhsd/glowner/bean/CarBean.kt new file mode 100644 index 0000000..002bea8 --- /dev/null +++ b/app/src/main/java/com/dhsd/glowner/bean/CarBean.kt @@ -0,0 +1,41 @@ +package com.dhsd.glowner.bean + +/** + * @ClassName CarBean + * @Author john + * @Date 2024/10/24 10:46 + * @Description TODO + */ +data class CarBean( + val approvedLoad: String="", + val tractionWeight: String="", + val carHeight: String="", + var carId: String="", + var driverId: String="", + var roadLicenseValidityOverdue: String="", + var licenseValidityOverdue: String="", + val carLong: String="", + val carUrl: String="", + val carWidth: String="", + val energySign: String="", + val energySignCode: String="", + val isTrailer: String="", + val plateColor: String="", + val plateColorCode: String="", + val trailerApprovedLoad: String="", + val trailerHeight: String="", + val trailerId: String="", + val trailerLong: String="", + val trailerUrl: String="", + val trailerVehicleNum: String="", + val trailerVehicleType: String="", + val trailerVehicleTypeCode: String="", + var vehicleNum: String="", + val vehicleType: String="", + val contactName: String="", + val vehicleTypeCode: String="", + val idcardName: String="", + val contactPhone: String="", + val avatar: String="", + var isSelect: Boolean = false +) diff --git a/app/src/main/java/com/dhsd/glowner/bean/OrderBean.kt b/app/src/main/java/com/dhsd/glowner/bean/OrderBean.kt index e46e9e5..f570d7c 100644 --- a/app/src/main/java/com/dhsd/glowner/bean/OrderBean.kt +++ b/app/src/main/java/com/dhsd/glowner/bean/OrderBean.kt @@ -7,8 +7,8 @@ package com.dahe.glex.bean * @Description TODO */ -data class OrderListBean( - var rows: List +data class OrderListBean( + var rows: List ) data class TextOrder(val orderId: String) @@ -110,3 +110,10 @@ data class OrderBean( val vehicleLength: String, val vehicleType: String ) + +data class DispatchBean( + var orderId: String, + var shipperCaptainId: String = "", + var shipperDriverId: String, + var shipperCarId: String +) diff --git a/app/src/main/java/com/dhsd/glowner/cuspop/PopBottomCar.kt b/app/src/main/java/com/dhsd/glowner/cuspop/PopBottomCar.kt index 96a5e7f..80365c2 100644 --- a/app/src/main/java/com/dhsd/glowner/cuspop/PopBottomCar.kt +++ b/app/src/main/java/com/dhsd/glowner/cuspop/PopBottomCar.kt @@ -48,6 +48,8 @@ class PopBottomCar( // isSelect = true // currCar = this // } + + currCar = cars.find { it.isSelect } initRecycle(recycler) btnOk.setOnClickListener { if (currCar == null) { 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 9eea314..62e74e4 100644 --- a/app/src/main/java/com/dhsd/glowner/net/Api.kt +++ b/app/src/main/java/com/dhsd/glowner/net/Api.kt @@ -1,13 +1,14 @@ - import com.dahe.glex.bean.* import com.dahe.mylibrary.net.CommonResponseBean import com.dhsd.glowner.BuildConfig +import com.dhsd.glowner.bean.CarBean import com.dhsd.glowner.bean.LoginBean import io.reactivex.rxjava3.core.Observable import retrofit2.http.Body import retrofit2.http.GET import retrofit2.http.POST import retrofit2.http.PUT +import retrofit2.http.Query /** @@ -28,6 +29,7 @@ interface Api { companion object { const val BASE_URL = BuildConfig.BASE_URL + //获取版本 const val VERSION = BASE_URL + "app/version" } @@ -37,21 +39,37 @@ interface Api { * 是否需要验证码登录 * @return Observable> */ - @GET(BASE_URL+"devApi/code") + @GET(BASE_URL + "devApi/code") fun getCode(): Observable> /** * 是否需要验证码登录 * @return Observable> */ - @POST(BASE_URL+"devApi/auth/login") + @POST(BASE_URL + "devApi/auth/login") fun login(@Body bean: LoginBean): Observable> - @GET(BASE_URL+"devApi/business/shipper/order/list") - fun getOrderList(): Observable> + @GET(BASE_URL + "devApi/business/shipper/order/list") + fun getOrderList(): Observable>> - @PUT(BASE_URL+"devApi/business/shipper/order/cancelSourceOfOrder") + @PUT(BASE_URL + "devApi/business/shipper/order/cancelSourceOfOrder") fun cancelSourceOfOrder(@Body bean: TextOrder): Observable> + /** + * 查询车辆信息列表 + */ + @GET(BASE_URL + "devApi/business/ft/common/dict/driver/all") + fun getCarList(@Query("searchValue") searchValue: String): Observable>> + + + /** + * 货主指派车辆 + * @param bean DispatchBean + * @return Observable> + */ + @POST(BASE_URL+"devApi/business/shipper/order/dispatchVehicles") + fun dispatchVehicles(@Body bean: DispatchBean): Observable> + + } \ No newline at end of file diff --git a/app/src/main/java/com/dhsd/glowner/ui/home/HomeFragment.kt b/app/src/main/java/com/dhsd/glowner/ui/home/HomeFragment.kt index 177d4a8..e7ac5c5 100644 --- a/app/src/main/java/com/dhsd/glowner/ui/home/HomeFragment.kt +++ b/app/src/main/java/com/dhsd/glowner/ui/home/HomeFragment.kt @@ -3,11 +3,18 @@ package com.dhsd.glowner.ui.home import BaseObserver import DataManager import RxHttpCallBack +import android.app.Activity +import android.content.Intent import android.graphics.Color +import android.os.Bundle import android.widget.LinearLayout +import androidx.activity.result.ActivityResultRegistry +import androidx.activity.result.contract.ActivityResultContracts +import androidx.appcompat.app.AppCompatActivity import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.chad.library.adapter4.BaseQuickAdapter +import com.dahe.gldriver.base.AppConfig import com.dahe.glex.bean.OrderBean import com.dahe.glex.bean.OrderListBean import com.dahe.glex.bean.TextOrder @@ -25,6 +32,7 @@ import com.dhsd.glowner.bean.PopBean import com.dhsd.glowner.cuspop.OnCarSelectListener import com.dhsd.glowner.databinding.FragmentHomeBinding import com.dhsd.glowner.ui.home.activtiy.SendGoodsActivity +import com.dhsd.glowner.ui.mine.activity.ChoiceCarActivity import com.dhsd.glowner.utils.CommonPopUtils import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.schedulers.Schedulers @@ -36,6 +44,15 @@ import io.reactivex.rxjava3.schedulers.Schedulers * @Description TODO */ class HomeFragment : BaseFragment(), RefreshCallBack { + + private val launcher = + registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> + if (result.resultCode == AppCompatActivity.RESULT_OK) { + initData() + } + } + + lateinit var adapter: WaybillAdapter override fun onFragmentVisibleChange(isVisible: Boolean) { if (isVisible) { @@ -49,11 +66,11 @@ class HomeFragment : BaseFragment(), RefreshCallBack { binding.tvMar.isSelected = true binding.ivNor.setOnClickListener { - ActivityUtils.startActivity(mContext,SendGoodsActivity::class.java) + ActivityUtils.startActivity(mContext, SendGoodsActivity::class.java) } binding.ivNor.setOnClickListener { - ActivityUtils.startActivity(mContext,SendGoodsActivity::class.java) + ActivityUtils.startActivity(mContext, SendGoodsActivity::class.java) } initData() @@ -66,16 +83,6 @@ class HomeFragment : BaseFragment(), RefreshCallBack { private fun initRecy() { setRefresh(binding.refresh, this) - var datas = mutableListOf( - WayBillBean(), - WayBillBean(), - WayBillBean(), - WayBillBean(), - WayBillBean(), - WayBillBean(), - WayBillBean(), - WayBillBean() - ) adapter = binding.recyclerView.run { layoutManager = LinearLayoutManager(mContext, RecyclerView.VERTICAL, false) setHasFixedSize(true) @@ -92,20 +99,26 @@ class HomeFragment : BaseFragment(), RefreshCallBack { setOnItemClickListener { _, _, position -> ToastUtils.showToast(mContext, position.toString()) } - addOnItemChildClickListener(R.id.btnOk) { adapter, view, position -> + addOnItemChildClickListener(R.id.btnOk) { adapter, _, position -> // ActivityUtils.startActivity(mContext, WaybillDetailActivity::class.java) - CommonPopUtils.getInstance().showCarList(mContext + val item = adapter.getItem(position) + CommonPopUtils.getInstance().showCarList( + mContext ) { _, position -> - - showToast(position.toString()) + if (position === 0) { + launcher.launch(Intent(mContext, ChoiceCarActivity::class.java).apply { + putExtras(Bundle().apply { putString(AppConfig.ID, item?.orderId) }) + }) + } } } addOnItemChildClickListener(R.id.btnCancel) { adapter, view, position -> val item = adapter.getItem(position) as OrderBean - DataManager.getInstance().cancelSourceOfOrder(TextOrder(item.orderId)).subscribeOn(Schedulers.io()) + DataManager.getInstance().cancelSourceOfOrder(TextOrder(item.orderId)) + .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(BaseObserver(mContext,object : RxHttpCallBack(){ + .subscribe(BaseObserver(mContext, object : RxHttpCallBack() { override fun onSuccess(t: CommonResponseBean) { super.onSuccess(t) showToast(t.msg) @@ -121,23 +134,27 @@ class HomeFragment : BaseFragment(), RefreshCallBack { DataManager.getInstance().getOrderList() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(BaseObserver(mContext,object :RxHttpCallBack(binding.refresh){ - override fun onSuccess(t: CommonResponseBean) { - super.onSuccess(t) - initList(t.data.rows) - } + .subscribe( + BaseObserver(mContext, + object : RxHttpCallBack>(binding.refresh) { + override fun onSuccess(t: CommonResponseBean>) { + super.onSuccess(t) + initList(t.data.rows) + } - })) + }) + ) } private fun initList(rows: List) { - if (rows.isEmpty()){ + if (rows.isEmpty()) { + adapter.submitList(null) adapter.setStateViewLayout(mContext, R.layout.empty_view) - }else{ - if (mRefreshPage===1){ + } else { + if (mRefreshPage === 1) { adapter?.submitList(rows) - }else{ + } else { adapter?.addAll(rows) } } diff --git a/app/src/main/java/com/dhsd/glowner/ui/mine/activity/ChoiceCarActivity.kt b/app/src/main/java/com/dhsd/glowner/ui/mine/activity/ChoiceCarActivity.kt new file mode 100644 index 0000000..e89eca9 --- /dev/null +++ b/app/src/main/java/com/dhsd/glowner/ui/mine/activity/ChoiceCarActivity.kt @@ -0,0 +1,169 @@ +package com.dhsd.glowner.ui.mine.activity + +import BaseObserver +import DataManager +import RxHttpCallBack +import android.content.Intent +import android.graphics.Color +import android.os.Bundle +import android.view.View +import android.widget.AdapterView.OnItemClickListener +import android.widget.LinearLayout +import androidx.appcompat.app.AppCompatActivity +import androidx.core.widget.addTextChangedListener +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.chad.library.adapter4.BaseQuickAdapter +import com.dahe.gldriver.base.AppConfig +import com.dahe.glex.bean.DispatchBean +import com.dahe.glex.bean.OrderBean +import com.dahe.glex.bean.OrderListBean +import com.dahe.mylibrary.base.BaseActivity +import com.dahe.mylibrary.net.CommonResponseBean +import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider +import com.dahe.mylibrary.utils.ConvertUtils +import com.dahe.mylibrary.utils.ToastUtils +import com.dhsd.glowner.R +import com.dhsd.glowner.adapter.DriverCarsAdapter +import com.dhsd.glowner.bean.CarBean +import com.dhsd.glowner.databinding.ActivityChoiceCarBinding +import com.dhsd.glowner.utils.OnLimitClickHelper +import com.dhsd.glowner.utils.OnLimitClickListener +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers +import io.reactivex.rxjava3.schedulers.Schedulers + +/** + * @ClassName ChoiceCarActivity + * @Author john + * @Date 2024/10/24 10:17 + * @Description 选择车辆 + */ +class ChoiceCarActivity : BaseActivity(), OnLimitClickListener { + + lateinit var adapter: DriverCarsAdapter + var searchValue: String = "" + private var orderId: String = "" + private var selectCar: CarBean? = null + override fun initView(savedInstanceState: Bundle?) { + setStatusBarColor(R.color.white) + setTitleBar("选择车辆", View.OnClickListener { finish() }, true, "我的熟车") { + ToastUtils.showToast(mContext, "查看单据") + } + + orderId = intent.extras?.getString(AppConfig.ID).toString() + binding.recycler.run { + + this@ChoiceCarActivity.adapter = run { + layoutManager = LinearLayoutManager(mContext, RecyclerView.VERTICAL, false) + addItemDecoration( + RecycleViewDivider( + LinearLayout.VERTICAL, + ConvertUtils.dp2px(12.0f), + Color.TRANSPARENT + ) + ) + adapter = DriverCarsAdapter() + adapter as DriverCarsAdapter + }.apply { + isStateViewEnable = true + submitList(null) + setStateViewLayout(mContext, R.layout.empty_view) + setOnItemClickListener { adapter, _, position -> + adapter.items.find { it.isSelect }?.isSelect = false + adapter.getItem(position)?.isSelect = true + selectCar = adapter.getItem(position) + + notifyDataSetChanged() + + } + } + } + binding.etInput.addTextChangedListener { + val text = it.toString() + if (text.isNotEmpty()) { + searchValue = text + getCarList() + } else { + searchValue = "" + } + } + + binding.btnOk.setOnClickListener(OnLimitClickHelper(this)) + } + + override fun initDate() { + + } + + override fun onClick(view: View?) { + super.onClick(view) + when (view?.id) { + binding.btnOk.id -> { + dispatchVehicles() + } + } + } + + private fun getCarList() { + DataManager.getInstance().getCarList(searchValue) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(BaseObserver(mContext, object : RxHttpCallBack>() { + override fun onSuccess(t: CommonResponseBean>) { + super.onSuccess(t) + initList(t.data) + } + })) + } + + + private fun initList(rows: List) { + if (rows.isEmpty()) { + adapter.submitList(null) + adapter.setStateViewLayout(mContext, R.layout.empty_view) + } else { + if (mRefreshPage === 1) { + adapter?.submitList(rows) + } else { + adapter?.addAll(rows) + } + } + } + + + /** + * 分配车辆 + */ + private fun dispatchVehicles() { + if (orderId.isEmpty()) + return + + + + + + if (selectCar == null) { + showToast("请选择车辆") + return + } + DataManager.getInstance().dispatchVehicles( + DispatchBean( + orderId, + "", + selectCar?.driverId.toString(), + selectCar?.carId.toString() + ) + ) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(BaseObserver(mContext, object : RxHttpCallBack() { + override fun onSuccess(t: CommonResponseBean) { + super.onSuccess(t) + showToast(t.msg) + // 设置返回结果 + setResult(AppCompatActivity.RESULT_OK, Intent()) + finish() + } + })) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/dhsd/glowner/ui/mine/activity/ChoiceFleetActivity.kt b/app/src/main/java/com/dhsd/glowner/ui/mine/activity/ChoiceFleetActivity.kt new file mode 100644 index 0000000..b57d6cb --- /dev/null +++ b/app/src/main/java/com/dhsd/glowner/ui/mine/activity/ChoiceFleetActivity.kt @@ -0,0 +1,21 @@ +package com.dhsd.glowner.ui.mine.activity + +import android.os.Bundle +import com.dahe.mylibrary.base.BaseActivity +import com.dhsd.glowner.databinding.ActivityChoiceFleetCarBinding + +/** + * @ClassName ChoiceFleetActivity + * @Author john + * @Date 2024/10/24 16:02 + * @Description 选择车队/车辆 + */ +class ChoiceFleetActivity : BaseActivity() { + override fun initView(savedInstanceState: Bundle?) { + TODO("Not yet implemented") + } + + override fun initDate() { + TODO("Not yet implemented") + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable-xxhdpi/search_icon_white.png b/app/src/main/res/drawable-xxhdpi/search_icon_white.png new file mode 100644 index 0000000000000000000000000000000000000000..bcebbfca61d7fb49cd4a1d7870c1ffd8873bc33e GIT binary patch literal 1429 zcmeAS@N?(olHy`uVBq!ia0vp^(jd&i1|)m0dc-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxR5#hc&_u!9QqR!T z(8R(}N5ROz&{*HVSl`fC*U-qyz|zXlQ~?TIxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD$Tv3bSNU;+l1ennz|zM-B0$V)JVzP|XC=H|jx7ncO3BHWAB;NpiyW)Z+ZoqGVvir744~DzI`cN=+=uFAB-e&w+(vKt_H^esM;Afr7KMf`)Hma%LWg zuL;)R>ucqiS6q^qmz?V9Vygr+LN7Bj#mdyk(a_n*%*fT$(!kKr)x^=r%+$@&*v#3* z#nITs)EuVQB|o_|H#M&WrZ)wl*BGZ>P+G_>0NU)5T9jFqn&MWJpQ`}&vsET;w;13w z52`l>w_6Nx>eUB2MjsTjNHGl)0wy026P|8?9C*r4%>yR)B4E1SurFJRfq{v`)5S5Q z;?|aHXT8N78IFH^+gb6cGl*Z5HMQ}_rO6^Jf-V<|R|*(kaQP*^tL)W-g945#`sA!i zv|cPZ8hl~tBJ&RloM{=dE?eF_<4$s2_PYFm`9|H{pI4kW`A|8ncHYgOXU}amwsw?g zbL@Kj;&8jc&KgI1u0FGW8_(7p@lvfSjD4TCz*m}au=1+m{`&_~9%ya+64kT% z`T2?N$1dJ(-m(6deZj@j^ox^~XB-t;ms67Qghx#@N<%cPbA80YmA-6|)gJ?MO?Di5 zw=z6@yF`lV%DLY&6Dvb2g3=~jUHZ*x(xJT9$D{lcBW-o^Cm*s)z7ag(tH9~17ys(! zU!0@KR_7h~d86j9RJY@t=Mx`Wz4Paq{aq&Q_G#7D&}zQTZ~yvmSwFMXS^xNZ#f=uR z(D_S6PfPUbAE}*{{&k+*Z>~RwUN5P<)?sS%S)|N+ZoYT4^zYDxo6jr|&U)UPt$43l zbIqeKV$I(YS&A(JUe%UyT#mYKWhPm|XS{2*WSUaeScR0kL`}Ov@MU-?zx)T_Xo7z{k7jGvL|0S#yNSJlX+WES@<&H z@&dE6*wQC_XHV51+`7AK`df=NvEgF%8#?koKGg`)GHCFQa8zewKL38BhVdGGCF}Lq u{!6Br2d#gzBR@srw666>5%=q?5)9SH^yW*RfBqCyP + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_discar_8.xml b/app/src/main/res/drawable/shape_discar_8.xml new file mode 100644 index 0000000..305ee27 --- /dev/null +++ b/app/src/main/res/drawable/shape_discar_8.xml @@ -0,0 +1,14 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_gray_bg20.xml b/app/src/main/res/drawable/shape_gray_bg20.xml new file mode 100644 index 0000000..085b019 --- /dev/null +++ b/app/src/main/res/drawable/shape_gray_bg20.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_choice_car.xml b/app/src/main/res/layout/activity_choice_car.xml new file mode 100644 index 0000000..11b11a1 --- /dev/null +++ b/app/src/main/res/layout/activity_choice_car.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_choice_fleet_car.xml b/app/src/main/res/layout/activity_choice_fleet_car.xml new file mode 100644 index 0000000..11b11a1 --- /dev/null +++ b/app/src/main/res/layout/activity_choice_fleet_car.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_driver_cars.xml b/app/src/main/res/layout/item_driver_cars.xml new file mode 100644 index 0000000..ced996f --- /dev/null +++ b/app/src/main/res/layout/item_driver_cars.xml @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mylibrary/src/main/java/com/dahe/mylibrary/base/BaseActivity.java b/mylibrary/src/main/java/com/dahe/mylibrary/base/BaseActivity.java index 29ba5a9..7dc0199 100644 --- a/mylibrary/src/main/java/com/dahe/mylibrary/base/BaseActivity.java +++ b/mylibrary/src/main/java/com/dahe/mylibrary/base/BaseActivity.java @@ -185,7 +185,7 @@ public abstract class BaseActivity extends AppCompatActi @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) protected void setTitleBar(String title, View.OnClickListener listener, boolean isVisible, String right, View.OnClickListener rightListener) { mToolbar = (Toolbar) findViewById(R.id.common_toolbar); - mToolbar.setBackgroundColor(Color.TRANSPARENT); + mToolbar.setBackgroundColor(statusColor == -1 ? Color.TRANSPARENT : ContextCompat.getColor(mContext, statusColor)); if (!TextUtils.isEmpty(title)) ((TextView) findViewById(R.id.common_toolBar_title)).setText(title); TextView mTextRight = (TextView) findViewById(R.id.common_toolBar_text_right); diff --git a/mylibrary/src/main/java/com/dahe/mylibrary/recycleviewswipe/RecycleViewDivider.java b/mylibrary/src/main/java/com/dahe/mylibrary/recycleviewswipe/RecycleViewDivider.java index 77bb594..4d38aa2 100644 --- a/mylibrary/src/main/java/com/dahe/mylibrary/recycleviewswipe/RecycleViewDivider.java +++ b/mylibrary/src/main/java/com/dahe/mylibrary/recycleviewswipe/RecycleViewDivider.java @@ -25,15 +25,14 @@ public class RecycleViewDivider extends RecyclerView.ItemDecoration { private static final int[] ATTRS = new int[]{android.R.attr.listDivider}; /** - * * 默认分割线:高度为2px,颜色为灰色 * 获取属性值, * * @param context - * @param orientation 列表方向 + * @param orientation 列表方向 */ - public RecycleViewDivider(Context context, int orientation){ + public RecycleViewDivider(Context context, int orientation) { if (orientation != LinearLayoutManager.VERTICAL && orientation != LinearLayoutManager.HORIZONTAL) { throw new IllegalArgumentException("请输入正确的参数!"); } @@ -88,7 +87,11 @@ public class RecycleViewDivider extends RecyclerView.ItemDecoration { public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { if (mOrientation == LinearLayoutManager.VERTICAL) { - outRect.set(0, 0, 0, mDividerHeight); + if (parent.getChildAdapterPosition(view) == 0) { + outRect.set(0, mDividerHeight, 0, mDividerHeight); + } else { + outRect.set(0, 0, 0, mDividerHeight); + } } else { outRect.set(0, 0, mDividerHeight, 0); } @@ -97,10 +100,10 @@ public class RecycleViewDivider extends RecyclerView.ItemDecoration { @Override public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) { super.onDraw(c, parent, state); - if(mOrientation==LinearLayoutManager.VERTICAL){ - drawVerticalLine(c,parent); - }else{ - drawHorizontalLine(c,parent); + if (mOrientation == LinearLayoutManager.VERTICAL) { + drawVerticalLine(c, parent); + } else { + drawHorizontalLine(c, parent); } } @@ -111,7 +114,7 @@ public class RecycleViewDivider extends RecyclerView.ItemDecoration { final int bottom = parent.getMeasuredHeight() - parent.getPaddingBottom(); final int childSize = parent.getChildCount(); for (int i = 0; i < childSize - 1; i++) { - if ((i+1) % 3 != 0) { + if ((i + 1) % 3 != 0) { final View child = parent.getChildAt(i); RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) child.getLayoutParams(); final int left = child.getRight() + layoutParams.rightMargin; @@ -134,7 +137,7 @@ public class RecycleViewDivider extends RecyclerView.ItemDecoration { final int right = parent.getMeasuredWidth() - parent.getPaddingRight(); final int childSize = parent.getChildCount(); for (int i = 0; i < childSize; i++) { - if (i < childSize -1) { + if (i < childSize - 1) { final View child = parent.getChildAt(i); RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) child.getLayoutParams(); final int top = child.getBottom() + layoutParams.bottomMargin; diff --git a/mylibrary/src/main/res/values/colors.xml b/mylibrary/src/main/res/values/colors.xml index 0e6f231..9a32e1d 100644 --- a/mylibrary/src/main/res/values/colors.xml +++ b/mylibrary/src/main/res/values/colors.xml @@ -18,6 +18,7 @@ #F5F5F5 + #F3F3F5 #E1E1E1 #000000 #E6E6E6