车辆信息回显

This commit is contained in:
lijia 2024-05-11 17:31:12 +08:00
parent be767e7d46
commit 77448b0e90
9 changed files with 172 additions and 54 deletions

View File

@ -8,6 +8,6 @@ import com.arpa.hndahesudintocctmsdriver.bean.UpDrivingInfoBean
* @Date 2024/4/27 15:48 * @Date 2024/4/27 15:48
* @Description TODO * @Description TODO
*/ */
open interface OnCarInfoInterface { fun interface OnCarInfoInterface {
fun onResutl(upDrivingInfoBean: UpDrivingInfoBean) fun onResutl(upDrivingInfoBean: UpDrivingInfoBean)
} }

View File

@ -415,6 +415,15 @@ interface Api {
@POST(BASE_URL + "driver/car/addTrailer") @POST(BASE_URL + "driver/car/addTrailer")
fun addTrailer(@Body upDrivingInfoBean: UpDrivingInfoBean): Observable<CommonResponseBean<Any>> fun addTrailer(@Body upDrivingInfoBean: UpDrivingInfoBean): Observable<CommonResponseBean<Any>>
/**
*
* 绑定挂车
* */
@POST(BASE_URL + "driver/car/bindTraiiler")
fun bindTraiiler(@Body carBean: CarBean): Observable<CommonResponseBean<Any>>
/** /**
* *
* 修改挂车信息 * 修改挂车信息

View File

@ -1,6 +1,7 @@
package com.arpa.hndahesudintocctmsdriver.ui.account.authperson package com.arpa.hndahesudintocctmsdriver.ui.account.authperson
import android.os.Bundle import android.os.Bundle
import android.view.View
import com.arpa.hndahesudintocctmsdriver.R import com.arpa.hndahesudintocctmsdriver.R
import com.arpa.hndahesudintocctmsdriver.base.AppConfig import com.arpa.hndahesudintocctmsdriver.base.AppConfig
import com.arpa.hndahesudintocctmsdriver.bean.CarBean import com.arpa.hndahesudintocctmsdriver.bean.CarBean
@ -25,6 +26,7 @@ import com.arpa.mylibrary.utils.TimeUtil
import com.arpa.mylibrary.utils.ToastUtils import com.arpa.mylibrary.utils.ToastUtils
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers import io.reactivex.rxjava3.schedulers.Schedulers
import kotlin.contracts.Returns
/** /**
* @ClassName AuthRoleActivity * @ClassName AuthRoleActivity
@ -140,11 +142,20 @@ class AuthDrivingActivity : BaseActivity<ActivityAuthDrivingBinding>() {
ToastUtils.showToast(mContext, "请选择正确证件照片") ToastUtils.showToast(mContext, "请选择正确证件照片")
return@ocrDriveing return@ocrDriveing
} }
ImageLoader.getInstance() ImageLoader.getInstance()
.loadRoundImage(mContext, picPath.locPic, 12, binding.ivFront) .loadRoundImage(mContext, picPath.locPic, 12, binding.ivFront)
upDrivingInfoBean.licenseFaceUrl = picPath.picPath//行驶证照片(正面) upDrivingInfoBean.licenseFaceUrl = picPath.picPath//行驶证照片(正面)
result?.data?.face?.data?.let { result?.data?.face?.data?.let {
var isHave = false
getCarInfoByCarNum(it.licensePlateNumber) { upDrivingInfoBean->
initViewByData(upDrivingInfoBean)
isHave = true
return@getCarInfoByCarNum
}
if (isHave)
return@ocrDriveing
var isHasFow = it.vehicleType.contains("牵引车") var isHasFow = it.vehicleType.contains("牵引车")
upDrivingInfoBean.isTrailer = if (isHasFow) "1" else "0"//是否有挂车(0否 1是) upDrivingInfoBean.isTrailer = if (isHasFow) "1" else "0"//是否有挂车(0否 1是)
@ -152,8 +163,9 @@ class AuthDrivingActivity : BaseActivity<ActivityAuthDrivingBinding>() {
engineNo = it.engineNumber engineNo = it.engineNumber
vinCode = it.vinCode vinCode = it.vinCode
model = it.model model = it.model
licenseRegisterDate = TimeUtil.changeDateNoneFormat(it.registrationDate,"yyyy-MM-dd") licenseRegisterDate =
licenseIssueDate = TimeUtil.changeDateNoneFormat(it.issueDate,"yyyy-MM-dd") TimeUtil.changeDateNoneFormat(it.registrationDate, "yyyy-MM-dd")
licenseIssueDate = TimeUtil.changeDateNoneFormat(it.issueDate, "yyyy-MM-dd")
address = it.address address = it.address
} }
@ -232,7 +244,7 @@ class AuthDrivingActivity : BaseActivity<ActivityAuthDrivingBinding>() {
//车长 //车长
if (it.overallDimension.contains("mm")) { if (it.overallDimension.contains("mm")) {
var overall = it.overallDimension.replace("mm", "") var overall = it.overallDimension.replace("mm", "")
var splits = overall.split("×","x","X") var splits = overall.split("×", "x", "X")
if (splits.size == 3) { if (splits.size == 3) {
upDrivingInfoBean.carLong = upDrivingInfoBean.carLong =
if (splits[0].toIntOrNull() != null) splits[0] else "" if (splits[0].toIntOrNull() != null) splits[0] else ""
@ -277,7 +289,7 @@ class AuthDrivingActivity : BaseActivity<ActivityAuthDrivingBinding>() {
useNature = binding.etUseNature.text.trim().toString() useNature = binding.etUseNature.text.trim().toString()
} }
if(upDrivingInfoBean.vehicleNum.contains("")){ if (upDrivingInfoBean.vehicleNum.contains("")) {
showToast("车牌号码不合规") showToast("车牌号码不合规")
return return
} }
@ -308,7 +320,7 @@ class AuthDrivingActivity : BaseActivity<ActivityAuthDrivingBinding>() {
.subscribe(BaseObserver(mContext, object : RxHttpCallBack<UpDrivingInfoBean>() { .subscribe(BaseObserver(mContext, object : RxHttpCallBack<UpDrivingInfoBean>() {
override fun onSuccess(t: CommonResponseBean<UpDrivingInfoBean>) { override fun onSuccess(t: CommonResponseBean<UpDrivingInfoBean>) {
super.onSuccess(t) super.onSuccess(t)
if (t.data==null){ if (t.data == null) {
DataManager.getInstance().addCar(upDrivingInfoBean) DataManager.getInstance().addCar(upDrivingInfoBean)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
@ -338,7 +350,7 @@ class AuthDrivingActivity : BaseActivity<ActivityAuthDrivingBinding>() {
} }
}) })
) )
}else{ } else {
DataManager.getInstance().bindCar(CarBean(carId = t.data.carId)) DataManager.getInstance().bindCar(CarBean(carId = t.data.carId))
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
@ -364,15 +376,50 @@ class AuthDrivingActivity : BaseActivity<ActivityAuthDrivingBinding>() {
* 根据车牌号查询车辆信任 * 根据车牌号查询车辆信任
* @param carNum String * @param carNum String
*/ */
private fun getCarInfoByCarNum(carNum: String, onCarInfoInterface: OnCarInfoInterface) { private fun getCarInfoByCarNum(
carNum: String,
onCarInfoInterface: OnCarInfoInterface = OnCarInfoInterface { }
) {
DataManager.getInstance().getCarByCarVehicleNum(carNum) DataManager.getInstance().getCarByCarVehicleNum(carNum)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribe(BaseObserver(mContext, object : RxHttpCallBack<UpDrivingInfoBean>() { .subscribe(BaseObserver(mContext, object : RxHttpCallBack<UpDrivingInfoBean>() {
override fun onSuccess(t: CommonResponseBean<UpDrivingInfoBean>) { override fun onSuccess(t: CommonResponseBean<UpDrivingInfoBean>) {
super.onSuccess(t) super.onSuccess(t)
if (t.data == null)
return
onCarInfoInterface.onResutl(t.data) onCarInfoInterface.onResutl(t.data)
} }
})) }))
} }
private fun initViewByData(data: UpDrivingInfoBean) {
upDrivingInfoBean = data
binding.run {
ImageLoader.getInstance()
.loadRoundImage(mContext, data.licenseFaceUrl, 12, ivFront)
ImageLoader.getInstance()
.loadRoundImage(mContext, data.licenseBackUrl, 12, ivBack)
ImageLoader.getInstance()
.loadRoundImage(mContext, data.carUrl, 12, ivCar)
ImageLoader.getInstance()
.loadRoundImage(mContext, data.roadLicensePhotoUrl, 12, ivRoadFront)
etCarNum.setText(data.vehicleNum)
backLicCarNum = data.vehicleNum
tvCarType.text = data.vehicleType
etOwner.setText(data.owner)
etUseNature.setText(data.useNature)
tvCarColor.text = data.plateColor
tvEnd.text = data.licenseValidity
etID.setText(data.roadLicense)
tvDate.text = data.roadLicenseValidity
}
}
} }

View File

@ -10,6 +10,7 @@ import com.arpa.hndahesudintocctmsdriver.net.DataManager
import com.arpa.hndahesudintocctmsdriver.net.RxHttpCallBack import com.arpa.hndahesudintocctmsdriver.net.RxHttpCallBack
import com.arpa.hndahesudintocctmsdriver.oss.OssServiceUtil import com.arpa.hndahesudintocctmsdriver.oss.OssServiceUtil
import com.arpa.hndahesudintocctmsdriver.utils.CommonPopUtils import com.arpa.hndahesudintocctmsdriver.utils.CommonPopUtils
import com.arpa.hndahesudintocctmsdriver.utils.OcrUtils
import com.arpa.mylibrary.utils.PickerUtils import com.arpa.mylibrary.utils.PickerUtils
import com.arpa.mylibrary.base.BaseActivity import com.arpa.mylibrary.base.BaseActivity
import com.arpa.mylibrary.net.CommonResponseBean import com.arpa.mylibrary.net.CommonResponseBean
@ -52,24 +53,16 @@ class AuthQualificationActivity : BaseActivity<ActivityAuthQualificationBinding>
ivFront.setOnClickListener { ivFront.setOnClickListener {
if (upQuaInfo.qualificationCertificatePhotoUrl.isNullOrEmpty()){ if (upQuaInfo.qualificationCertificatePhotoUrl.isNullOrEmpty()){
PopsUtils.getInstance().showSimSelPic(mContext) { OcrUtils.getInstance()
var data = it[0] .noOcrUpPic(mContext, this@AuthQualificationActivity) { picPath, _ ->
ossServiceUtil.asyncPutImage(data.realPath, this@AuthQualificationActivity) ImageLoader.getInstance()
ossServiceUtil.setResultCallBack { data, oldPath -> .loadRoundImage(mContext, picPath.locPic, 12, ivFront)
upQuaInfo.qualificationCertificatePhotoUrl = oldPath upQuaInfo.qualificationCertificatePhotoUrl = picPath.picPath
binding.tvChangeFront.visibility = View.VISIBLE binding.tvChangeFront.visibility = View.VISIBLE
runOnUiThread {
ImageLoader.getInstance()
.loadRoundImage(mContext, it[0].realPath, 12, ivFront)
}
} }
}
}else{ }else{
CommonPopUtils.getInstance().seeBigPic(mContext,ivFront,upQuaInfo.qualificationCertificatePhotoUrl) CommonPopUtils.getInstance().seeBigPic(mContext,ivFront,upQuaInfo.qualificationCertificatePhotoUrl)
} }
} }
} }
} }

View File

@ -1,10 +1,13 @@
package com.arpa.hndahesudintocctmsdriver.ui.account.authperson package com.arpa.hndahesudintocctmsdriver.ui.account.authperson
import android.os.Bundle import android.os.Bundle
import android.view.View
import com.arpa.hndahesudintocctmsdriver.R import com.arpa.hndahesudintocctmsdriver.R
import com.arpa.hndahesudintocctmsdriver.base.AppConfig import com.arpa.hndahesudintocctmsdriver.base.AppConfig
import com.arpa.hndahesudintocctmsdriver.bean.CarBean
import com.arpa.hndahesudintocctmsdriver.bean.DiCarColor import com.arpa.hndahesudintocctmsdriver.bean.DiCarColor
import com.arpa.hndahesudintocctmsdriver.bean.UpDrivingInfoBean import com.arpa.hndahesudintocctmsdriver.bean.UpDrivingInfoBean
import com.arpa.hndahesudintocctmsdriver.callback.OnCarInfoInterface
import com.arpa.hndahesudintocctmsdriver.databinding.ActivityAuthTrailerBinding import com.arpa.hndahesudintocctmsdriver.databinding.ActivityAuthTrailerBinding
import com.arpa.hndahesudintocctmsdriver.net.BaseObserver import com.arpa.hndahesudintocctmsdriver.net.BaseObserver
import com.arpa.hndahesudintocctmsdriver.net.DataManager import com.arpa.hndahesudintocctmsdriver.net.DataManager
@ -115,6 +118,16 @@ class AuthTrailerActivity : BaseActivity<ActivityAuthTrailerBinding>() {
result?.data?.face?.data?.let { result?.data?.face?.data?.let {
var isHave = false
getTrailerByVehicleNum(it.licensePlateNumber) { upDrivingInfoBean->
initViewByData(upDrivingInfoBean)
isHave = true
return@getTrailerByVehicleNum
}
if (isHave)
return@ocrDriveing
upDrivingInfoBean.run { upDrivingInfoBean.run {
engineNo = it.engineNumber engineNo = it.engineNumber
vinCode = it.vinCode vinCode = it.vinCode
@ -241,14 +254,83 @@ class AuthTrailerActivity : BaseActivity<ActivityAuthTrailerBinding>() {
} }
fun upApi() { fun upApi() {
DataManager.getInstance().addTrailer(upDrivingInfoBean)
DataManager.getInstance().getTrailerByVehicleNum(upDrivingInfoBean.vehicleNum)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribe(BaseObserver(mContext, object : RxHttpCallBack<Any>() { .subscribe(BaseObserver(mContext, object : RxHttpCallBack<UpDrivingInfoBean>() {
override fun onSuccess(t: CommonResponseBean<Any>) { override fun onSuccess(t: CommonResponseBean<UpDrivingInfoBean>) {
super.onSuccess(t) super.onSuccess(t)
ActivityUtils.startActivity(mContext, AuthSuccActivity::class.java) if (t.data == null) {
DataManager.getInstance().addTrailer(upDrivingInfoBean)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(BaseObserver(mContext, object : RxHttpCallBack<Any>() {
override fun onSuccess(t: CommonResponseBean<Any>) {
super.onSuccess(t)
ActivityUtils.startActivity(mContext, AuthSuccActivity::class.java)
}
}))
}else{
DataManager.getInstance().bindTraiiler(CarBean(carId = carId, trailerId = t.data.trailerId))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(BaseObserver(mContext, object : RxHttpCallBack<Any>() {
override fun onSuccess(t: CommonResponseBean<Any>) {
super.onSuccess(t)
ActivityUtils.startActivity(mContext, AuthSuccActivity::class.java)
}
}))
}
}
}))
}
/**
* 根据车牌号查询车辆信任
* @param carNum String
*/
private fun getTrailerByVehicleNum(
carNum: String,
onCarInfoInterface: OnCarInfoInterface = OnCarInfoInterface { }
) {
DataManager.getInstance().getTrailerByVehicleNum(carNum)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(BaseObserver(mContext, object : RxHttpCallBack<UpDrivingInfoBean>() {
override fun onSuccess(t: CommonResponseBean<UpDrivingInfoBean>) {
super.onSuccess(t)
if (t.data == null)
return
onCarInfoInterface.onResutl(t.data)
} }
})) }))
} }
private fun initViewByData(data: UpDrivingInfoBean) {
upDrivingInfoBean = data
binding.run {
ImageLoader.getInstance()
.loadRoundImage(mContext, data.licenseFaceUrl, 12, ivFront)
ImageLoader.getInstance()
.loadRoundImage(mContext, data.licenseBackUrl, 12, ivBack)
ImageLoader.getInstance()
etHdzzz.setText(data.approvedLoad)
etCarNum.setText(data.vehicleNum)
tvCarType.text = data.vehicleType
etUseNature.setText(data.useNature)
tvCarColor.text = data.trailerPlateColor
// tvEnd.text = data.licenseValidity
backLicCarNum = data.vehicleNum
}
}
} }

View File

@ -6,6 +6,7 @@ import com.arpa.hndahesudintocctmsdriver.R
import com.arpa.hndahesudintocctmsdriver.base.AppConfig import com.arpa.hndahesudintocctmsdriver.base.AppConfig
import com.arpa.hndahesudintocctmsdriver.bean.DiCarColor import com.arpa.hndahesudintocctmsdriver.bean.DiCarColor
import com.arpa.hndahesudintocctmsdriver.bean.UpDrivingInfoBean import com.arpa.hndahesudintocctmsdriver.bean.UpDrivingInfoBean
import com.arpa.hndahesudintocctmsdriver.callback.OnCarInfoInterface
import com.arpa.hndahesudintocctmsdriver.databinding.ActivityAuthDrivingBinding import com.arpa.hndahesudintocctmsdriver.databinding.ActivityAuthDrivingBinding
import com.arpa.hndahesudintocctmsdriver.net.BaseObserver import com.arpa.hndahesudintocctmsdriver.net.BaseObserver
import com.arpa.hndahesudintocctmsdriver.net.DataManager import com.arpa.hndahesudintocctmsdriver.net.DataManager
@ -355,33 +356,19 @@ class EditDrivingActivity : BaseActivity<ActivityAuthDrivingBinding>() {
* 根据车牌号查询车辆信任 * 根据车牌号查询车辆信任
* @param carNum String * @param carNum String
*/ */
private fun getCarInfoByCarNum(carNum: String) { private fun getCarInfoByCarNum(
carNum: String,
onCarInfoInterface: OnCarInfoInterface = OnCarInfoInterface { }
) {
DataManager.getInstance().getCarByCarVehicleNum(carNum) DataManager.getInstance().getCarByCarVehicleNum(carNum)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribe(BaseObserver(mContext, object : RxHttpCallBack<UpDrivingInfoBean>() { .subscribe(BaseObserver(mContext, object : RxHttpCallBack<UpDrivingInfoBean>() {
override fun onSuccess(t: CommonResponseBean<UpDrivingInfoBean>) { override fun onSuccess(t: CommonResponseBean<UpDrivingInfoBean>) {
super.onSuccess(t) super.onSuccess(t)
t.data.let { if (t.data == null)
binding.run { return
ImageLoader.getInstance() onCarInfoInterface.onResutl(t.data)
.loadRoundImage(mContext, it.licenseFaceUrl, 12, ivFront)
ImageLoader.getInstance()
.loadRoundImage(mContext, it.licenseBackUrl, 12, ivBack)
ImageLoader.getInstance()
.loadRoundImage(mContext, it.carUrl, 12, ivCar)
ImageLoader.getInstance()
.loadRoundImage(mContext, it.roadLicensePhotoUrl, 12, ivRoadFront)
etCarNum.setText(it.vehicleNum)
etOwner.setText(it.owner)
tvCarType.text = it.vehicleType
etUseNature.setText(it.useNature)
etID.setText(it.roadLicense)
tvDate.text = it.roadLicenseValidity
}
}
} }
})) }))
} }

View File

@ -220,7 +220,7 @@ class CarDetailActivity : BaseActivity<ActivityCarDetailBinding>(), View.OnClick
} }
} }
if (data.roadLicense.isNullOrEmpty()) { if (data.roadLicensePhotoUrl.isNullOrEmpty()) {
tvQualiInfo.text = "证件缺失将无法进行接单" tvQualiInfo.text = "证件缺失将无法进行接单"
missInfo = missInfo =
if (missInfo.isNullOrEmpty()) missInfo.plus("道路运输许可证") else missInfo.plus( if (missInfo.isNullOrEmpty()) missInfo.plus("道路运输许可证") else missInfo.plus(
@ -250,9 +250,9 @@ class CarDetailActivity : BaseActivity<ActivityCarDetailBinding>(), View.OnClick
btnDriver.visibility = btnDriver.visibility =
if (data.trailerVehicleNum.isNullOrEmpty()) View.VISIBLE else View.GONE if (data.trailerVehicleNum.isNullOrEmpty()) View.VISIBLE else View.GONE
llQua.visibility = llQua.visibility =
if (data.roadLicense.isNullOrEmpty()) View.GONE else View.VISIBLE if (data.roadLicensePhotoUrl.isNullOrEmpty()) View.GONE else View.VISIBLE
btnQua.visibility = btnQua.visibility =
if (data.roadLicense.isNullOrEmpty()) View.VISIBLE else View.GONE if (data.roadLicensePhotoUrl.isNullOrEmpty()) View.VISIBLE else View.GONE
circleBarView2.progress = doneInfoCount * 100 / allInfoCount circleBarView2.progress = doneInfoCount * 100 / allInfoCount

View File

@ -228,7 +228,7 @@ class PersonInfoActivity : BaseActivity<ActivityPersonInfoBinding>(), View.OnCli
} else { } else {
cvQua.visibility = View.VISIBLE cvQua.visibility = View.VISIBLE
allInfoCount = 5 allInfoCount = 5
if (data.qualificationCertificateEffectiveEnd.isNullOrEmpty()) { if (data.qualificationCertificatePhotoUrl.isNullOrEmpty()) {
tvQualiInfo.text = "证件缺失将无法进行接单" tvQualiInfo.text = "证件缺失将无法进行接单"
missInfo = missInfo =
if (missInfo.isNullOrEmpty()) missInfo.plus("从业资格证") else missInfo.plus( if (missInfo.isNullOrEmpty()) missInfo.plus("从业资格证") else missInfo.plus(
@ -284,9 +284,9 @@ class PersonInfoActivity : BaseActivity<ActivityPersonInfoBinding>(), View.OnCli
llDriver.visibility = if (data.licenseNo.isNullOrEmpty()) View.GONE else View.VISIBLE llDriver.visibility = if (data.licenseNo.isNullOrEmpty()) View.GONE else View.VISIBLE
btnDriver.visibility = if (data.licenseNo.isNullOrEmpty()) View.VISIBLE else View.GONE btnDriver.visibility = if (data.licenseNo.isNullOrEmpty()) View.VISIBLE else View.GONE
llQua.visibility = llQua.visibility =
if (data.qualificationCertificateEffectiveEnd.isNullOrEmpty()) View.GONE else View.VISIBLE if (data.qualificationCertificatePhotoUrl.isNullOrEmpty()) View.GONE else View.VISIBLE
btnQua.visibility = btnQua.visibility =
if (data.qualificationCertificateEffectiveEnd.isNullOrEmpty()) View.VISIBLE else View.GONE if (data.qualificationCertificatePhotoUrl.isNullOrEmpty()) View.VISIBLE else View.GONE
llBank.visibility = llBank.visibility =
if (data.driverBankcardNumber.isNullOrEmpty()) View.GONE else View.VISIBLE if (data.driverBankcardNumber.isNullOrEmpty()) View.GONE else View.VISIBLE

View File

@ -97,7 +97,7 @@ class PopNorBottomPic(
.setCompressEngine(ImageFileCompressEngine()) .setCompressEngine(ImageFileCompressEngine())
.isPreviewImage(true) .isPreviewImage(true)
.isMaxSelectEnabledMask(true) .isMaxSelectEnabledMask(true)
// .setMaxSelectNum(1) .setMaxSelectNum(1)
// .setSelectionMode(SelectModeConfig.SINGLE) // .setSelectionMode(SelectModeConfig.SINGLE)
// .isDirectReturnSingle(true) // .isDirectReturnSingle(true)
.isGif(false) .isGif(false)