From 69276f7a5817130ab57e44b9d3e2b0e6d61aba85 Mon Sep 17 00:00:00 2001 From: lijia Date: Fri, 22 Mar 2024 17:26:33 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B5=84=E6=96=99=E4=BF=AE=E6=94=B9-=E5=8F=B8?= =?UTF-8?q?=E6=9C=BA=E8=B5=84=E6=96=99=E7=BC=96=E8=BE=91=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 6 +- app/src/main/AndroidManifest.xml | 31 ++- .../main/java/com/dahe/gldriver/base/App.kt | 45 ++-- .../java/com/dahe/gldriver/base/AppConfig.kt | 2 +- .../java/com/dahe/gldriver/bean/OcrBean.kt | 2 +- .../java/com/dahe/gldriver/bean/UserBean.kt | 69 +++---- .../gldriver/callback/MyOnInitNaviFailure.kt | 76 +++++++ .../main/java/com/dahe/gldriver/net/Api.kt | 35 +++- .../java/com/dahe/gldriver/ui/HomeActivity.kt | 3 + .../com/dahe/gldriver/ui/LauncherActivity.kt | 12 +- .../account/authperson/AuthDriverActivity.kt | 1 + .../account/authperson/AuthPersonActivity.kt | 140 +++++-------- .../account/authperson/EditDriverActivity.kt | 192 ++++++++++++++++++ .../account/authperson/EditPersonActivity.kt | 172 ++++++++++++++++ .../authperson/EditQualificationActivity.kt | 121 +++++++++++ .../com/dahe/gldriver/ui/mine/MineFragment.kt | 1 + .../ui/mine/activity/PersonInfoActivity.kt | 63 ++++-- .../waybill/activity/WaybillLoadActivity.kt | 31 ++- .../activity/WaybillUnlLoadActivity.kt | 27 ++- .../java/com/dahe/gldriver/utils/NaviUtils.kt | 40 ++++ .../java/com/dahe/gldriver/utils/OcrUtils.kt | 40 ++-- .../main/res/layout/activity_auth_driver.xml | 1 + .../main/res/layout/activity_waybill_load.xml | 1 + .../res/layout/activity_waybill_unload.xml | 1 + .../com/dahe/mylibrary/pop/PopNorBottomPic.kt | 4 +- 25 files changed, 913 insertions(+), 203 deletions(-) create mode 100644 app/src/main/java/com/dahe/gldriver/callback/MyOnInitNaviFailure.kt create mode 100644 app/src/main/java/com/dahe/gldriver/ui/account/authperson/EditDriverActivity.kt create mode 100644 app/src/main/java/com/dahe/gldriver/ui/account/authperson/EditPersonActivity.kt create mode 100644 app/src/main/java/com/dahe/gldriver/ui/account/authperson/EditQualificationActivity.kt create mode 100644 app/src/main/java/com/dahe/gldriver/utils/NaviUtils.kt diff --git a/app/build.gradle b/app/build.gradle index a1d6391..0455fef 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -34,7 +34,7 @@ android { ndk { //设置支持的SO库架构(开发者可以根据需要,选择一个或多个平台的so) - abiFilters "armeabi", "arm64-v8a" + abiFilters "armeabi-v7a", "arm64-v8a" // abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "x86","x86_64" } } @@ -142,11 +142,13 @@ dependencies { implementation project(path: ':mylibrary') //高德地图 - implementation 'com.amap.api:3dmap:9.8.3' +// implementation 'com.amap.api:3dmap:9.8.3' //定位功能 // implementation 'com.amap.api:location:6.4.2'//6.4.2 implementation 'com.amap.api:search:9.7.0' + implementation 'com.amap.api:navi-3dmap:latest.integration' +// implementation 'com.amap.api:navi-3dmap:9.8.3_3dmap9.8.3' //易签宝 implementation files('libs/EsignSDK.aar') diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e032a9b..4bbbc96 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -34,6 +34,13 @@ + + + + + + + @@ -85,6 +92,7 @@ android:name="com.amap.api.v2.apikey" android:value="e0c32c80b14f78b770b3671add9c4515" /> + + + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/dahe/gldriver/base/App.kt b/app/src/main/java/com/dahe/gldriver/base/App.kt index 2d3fa58..5f10987 100644 --- a/app/src/main/java/com/dahe/gldriver/base/App.kt +++ b/app/src/main/java/com/dahe/gldriver/base/App.kt @@ -11,6 +11,7 @@ import com.dahe.mylibrary.CommonBaseLibrary import com.esign.esignsdk.EsignSdk import com.github.gzuliyujiang.dialog.DialogConfig import com.github.gzuliyujiang.dialog.DialogStyle +import com.tencent.bugly.crashreport.CrashReport import com.umeng.commonsdk.UMConfigure import com.umeng.message.PushAgent import com.umeng.umverify.UMVerifyHelper @@ -34,7 +35,7 @@ class App : Application() { // CrashHandler.getInstance().init(this); // CrashHandler2.getInstance().init(getApplicationContext()); } - // CrashReport.initCrashReport(getApplicationContext(), AppConfig.BUGLY_APP_ID, false); + CrashReport.initCrashReport(getApplicationContext(), AppConfig.BUGLY_APP_ID, false); // SophixManager.getInstance().queryAndLoadNewPatch(); @@ -95,28 +96,34 @@ class App : Application() { } } - private fun initUmeng(){ + private fun initUmeng() { // thread { - //友盟 - UMConfigure.preInit(this,AppConfig.APP_KEY,"Umeng"); + //友盟 + UMConfigure.preInit(this, AppConfig.APP_KEY, "Umeng"); - // 推送注册 - val api = PushAgent.getInstance(this) - PushHelper.setting(api) + // 推送注册 + val api = PushAgent.getInstance(this) + PushHelper.setting(api) - UMConfigure.init(this,AppConfig.APP_KEY,"Umeng",UMConfigure.DEVICE_TYPE_PHONE,AppConfig.MESSAGE_SECRET) - //实名认证 - val authHelper = UMVerifyHelper.getInstance(this, object : UMTokenResultListener { - override fun onTokenSuccess(ret: String) { - Log.e("Umenginit", "onTokenSuccess: $ret") - } + UMConfigure.init( + this, + AppConfig.APP_KEY, + "Umeng", + UMConfigure.DEVICE_TYPE_PHONE, + AppConfig.MESSAGE_SECRET + ) + //实名认证 + val authHelper = UMVerifyHelper.getInstance(this, object : UMTokenResultListener { + override fun onTokenSuccess(ret: String) { + Log.e("Umenginit", "onTokenSuccess: $ret") + } - override fun onTokenFailed(ret: String) { - Log.e("Umenginit", "onTokenFailed: $ret") - } - }) - authHelper.setLoggerEnable(true) - authHelper.setAuthSDKInfo("iiBVGHSKbUML/NTbj187eM1N1KMvRzh1sJbM+2FMbV7FNOnmngDlPr2reqlvouhK/8dXcaNGJuI9B+Kv7C6IlBMoGE0PMVWvwY754T8zxSgSfLUM6s7e0dVxmtMFRrCDawKBiv6g/5+X1mSK5OXNG+H//8rtDDf0vePyUUPCAU26tIX/7BCJ4wvUjobAHBDtSbMMhzqWR5MC7jTCnR0k1OwwvEYxIH6jZuRqT4QgBBO4AMKvFjboqj3rsrr5uE6Gn28fWQrBBrOkPS830GnZFU8ND/0LedGgTlMllBAXLy0gbZZ/8LKJOQ==") + override fun onTokenFailed(ret: String) { + Log.e("Umenginit", "onTokenFailed: $ret") + } + }) + authHelper.setLoggerEnable(true) + authHelper.setAuthSDKInfo("iiBVGHSKbUML/NTbj187eM1N1KMvRzh1sJbM+2FMbV7FNOnmngDlPr2reqlvouhK/8dXcaNGJuI9B+Kv7C6IlBMoGE0PMVWvwY754T8zxSgSfLUM6s7e0dVxmtMFRrCDawKBiv6g/5+X1mSK5OXNG+H//8rtDDf0vePyUUPCAU26tIX/7BCJ4wvUjobAHBDtSbMMhzqWR5MC7jTCnR0k1OwwvEYxIH6jZuRqT4QgBBO4AMKvFjboqj3rsrr5uE6Gn28fWQrBBrOkPS830GnZFU8ND/0LedGgTlMllBAXLy0gbZZ/8LKJOQ==") // }.start() diff --git a/app/src/main/java/com/dahe/gldriver/base/AppConfig.kt b/app/src/main/java/com/dahe/gldriver/base/AppConfig.kt index abd7827..53e9260 100644 --- a/app/src/main/java/com/dahe/gldriver/base/AppConfig.kt +++ b/app/src/main/java/com/dahe/gldriver/base/AppConfig.kt @@ -7,7 +7,7 @@ package com.dahe.gldriver.base * @Description TODO */ object AppConfig { - const val BUGLY_APP_ID = "a5b894cef7" + const val BUGLY_APP_ID = "0487c49b52" const val TIME = "DA_HE_TIME" const val ID = "DA_HE_ID" const val PHONE = "DA_HE_PHONE" diff --git a/app/src/main/java/com/dahe/gldriver/bean/OcrBean.kt b/app/src/main/java/com/dahe/gldriver/bean/OcrBean.kt index fa6c015..bceb6c5 100644 --- a/app/src/main/java/com/dahe/gldriver/bean/OcrBean.kt +++ b/app/src/main/java/com/dahe/gldriver/bean/OcrBean.kt @@ -60,7 +60,7 @@ data class Face( ) data class DataX( - val address: String = "", + var address: String = "", val birthDate: String = "", val ethnicity: String = "", val idNumber: String = "", diff --git a/app/src/main/java/com/dahe/gldriver/bean/UserBean.kt b/app/src/main/java/com/dahe/gldriver/bean/UserBean.kt index 89f33b5..76d94e3 100644 --- a/app/src/main/java/com/dahe/gldriver/bean/UserBean.kt +++ b/app/src/main/java/com/dahe/gldriver/bean/UserBean.kt @@ -42,39 +42,40 @@ data class UserBean( ) data class UserDetail( - val createBy: String, - val createTime: String, - val driverBankcardAddress: String, - val driverBankcardNumber: String, - val driverBankcardPhotoUrl: String, - val driverId: Int, - val idcardAddress: String, - val idcardBackUrl: String, - val idcardEffectiveEnd: String, - val idcardEffectiveStart: String, - val idcardEthnicity: String, - val idcardFrontUrl: String, - val idcardIsEndless: String, - val idcardName: String, - val idcardNo: String, - val idcardSex: String, - val licenseApproveOrganization: String, - val licenseEffectiveEnd: String, - val licenseEffectiveStart: String, - val licenseFirstGetDate: String, - val licenseName: String, - val licenseNo: String, - val licensePhotoBackUrl: String, - val licensePhotoFaceUrl: String, - val licenseRecordNumber: String, - val licenseType: String, - val qualificationCertificateEffectiveEnd: String, - val qualificationCertificateExamineDate: String, - val qualificationCertificateNo: String, - val qualificationCertificatePhotoUrl: String, - val remark: String, - val taxpayerCaptainId: String, - val updateBy: String, - val updateTime: String + var createBy: String="", + var createTime: String="", + var isRealName: String="", + var driverBankcardAddress: String="", + var driverBankcardNumber: String="", + var driverBankcardPhotoUrl: String="", + var driverId: String="", + var idcardAddress: String="", + var idcardBackUrl: String="", + var idcardEffectiveEnd: String="", + var idcardEffectiveStart: String="", + var idcardEthnicity: String="", + var idcardFrontUrl: String="", + var idcardIsEndless: String="", + var idcardName: String="", + var idcardNo: String="", + var idcardSex: String="", + var licenseApproveOrganization: String="", + var licenseEffectiveEnd: String="", + var licenseEffectiveStart: String="", + var licenseFirstGetDate: String="", + var licenseName: String="", + var licenseNo: String="", + var licensePhotoBackUrl: String="", + var licensePhotoFaceUrl: String="", + var licenseRecordNumber: String="", + var licenseType: String="", + var qualificationCertificateEffectiveEnd: String="", + var qualificationCertificateExamineDate: String="", + var qualificationCertificateNo: String="", + var qualificationCertificatePhotoUrl: String="", + var remark: String="", + var taxpayerCaptainId: String="", + var updateBy: String="", + var updateTime: String="" ) diff --git a/app/src/main/java/com/dahe/gldriver/callback/MyOnInitNaviFailure.kt b/app/src/main/java/com/dahe/gldriver/callback/MyOnInitNaviFailure.kt new file mode 100644 index 0000000..b349ca3 --- /dev/null +++ b/app/src/main/java/com/dahe/gldriver/callback/MyOnInitNaviFailure.kt @@ -0,0 +1,76 @@ +package com.dahe.gldriver.callback + +import android.view.View +import com.amap.api.navi.INaviInfoCallback +import com.amap.api.navi.model.AMapNaviLocation + +/** + * @ClassName MyOnInitNaviFailure + * @Author john + * @Date 2024/3/21 16:12 + * @Description TODO + */ +abstract class MyINaviInfoCallback : INaviInfoCallback { + override fun onInitNaviFailure() { + } + + override fun onGetNavigationText(p0: String?) { + } + + override fun onLocationChange(p0: AMapNaviLocation?) { + } + + override fun onArriveDestination(p0: Boolean) { + } + + override fun onStartNavi(p0: Int) { + } + + override fun onCalculateRouteSuccess(p0: IntArray?) { + } + + override fun onCalculateRouteFailure(p0: Int) { + } + + override fun onStopSpeaking() { + } + + override fun onReCalculateRoute(p0: Int) { + } + + override fun onExitPage(p0: Int) { + } + + override fun onStrategyChanged(p0: Int) { + } + + override fun onArrivedWayPoint(p0: Int) { + } + + override fun onMapTypeChanged(p0: Int) { + } + + override fun onNaviDirectionChanged(p0: Int) { + } + + override fun onDayAndNightModeChanged(p0: Int) { + } + + override fun onBroadcastModeChanged(p0: Int) { + } + + override fun onScaleAutoChanged(p0: Boolean) { + } + + override fun getCustomMiddleView(): View? { + return null + } + + override fun getCustomNaviView(): View? { + return null + } + + override fun getCustomNaviBottomView(): View? { + return null + } +} \ 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 96cc5af..8b30222 100644 --- a/app/src/main/java/com/dahe/gldriver/net/Api.kt +++ b/app/src/main/java/com/dahe/gldriver/net/Api.kt @@ -139,6 +139,12 @@ interface Api { @POST(BASE_URL + "driver/driver/setUpDriverIdCard") fun setUpDriverIdCard(@Body carBean: UpPersonInfoBean): Observable> + /** + * 司机重新上传身份证 + * */ + @POST(BASE_URL + "driver/driver/reUpDriverIdCard") + fun reUpDriverIdCard(@Body carBean: UserDetail): Observable> + /** * 司机上传驾驶证 @@ -146,12 +152,24 @@ interface Api { @POST(BASE_URL + "driver/driver/setUpDriverLicense") fun setUpDriverLicense(@Body driverBean: UpDriverInfoBean): Observable> + /** + * 司机重新上传驾驶证 + * */ + @POST(BASE_URL + "driver/driver/reUpDriverLicense") + fun reUpDriverLicense(@Body driverBean: UserDetail): Observable> + /** * 司机上传从业资格证 * */ @POST(BASE_URL + "driver/driver/setUpDriverQualificationCertificate") fun setUpDriverQualificationCertificate(@Body qualiBean: UpQualiInfoBean): Observable> + /** + * 司机重新上传从业资格证 + * */ + @POST(BASE_URL + "driver/driver/reUpDriverQualificationCertificate") + fun reUpDriverQualificationCertificate(@Body qualiBean: UserDetail): Observable> + /** * 上传车辆的道路运输证 * */ @@ -164,6 +182,19 @@ interface Api { @POST(BASE_URL + "driver/driver/setUpDriverBankCard") fun setUpDriverBankCard(@Body bankBean: UpBankInfoBean): Observable> + /** + * 司机重新上传银行卡 + * */ + @POST(BASE_URL + "driver/driver/reUpDriverBankCard") + fun reUpDriverBankCard(@Body bankBean: UpBankInfoBean): Observable> + + /** + * 查询司机证件完整度信息 + * @return Observable> + */ + @GET(BASE_URL + "driver/driver/getDriverDocIntegrity") + fun getDriverDocIntegrity(): Observable> + /** * 司机认证成为车队长 @@ -376,7 +407,7 @@ interface Api { * @return Observable> */ @GET(BASE_URL + "driver/opinions/list") - fun waybillRate(@Query("opinionsType") opinionsType : String): Observable>> + fun waybillRate(@Query("opinionsType") opinionsType: String): Observable>> /** * 查询司机总评价信息 @@ -392,7 +423,7 @@ interface Api { * @return Observable> */ @GET(BASE_URL + "driver/order/orderPhoto") - fun orderPhoto(@Query("orderId") orderId :String): Observable>> + fun orderPhoto(@Query("orderId") orderId: String): Observable>> companion object { diff --git a/app/src/main/java/com/dahe/gldriver/ui/HomeActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/HomeActivity.kt index 0b43be9..17d0ae2 100644 --- a/app/src/main/java/com/dahe/gldriver/ui/HomeActivity.kt +++ b/app/src/main/java/com/dahe/gldriver/ui/HomeActivity.kt @@ -91,6 +91,9 @@ class HomeActivity : BaseActivity(), OnTabSelectListener, .permissions( Manifest.permission.CAMERA, Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.WRITE_EXTERNAL_STORAGE, + Manifest.permission.ACCESS_COARSE_LOCATION, + Manifest.permission.ACCESS_BACKGROUND_LOCATION, ) .request { allGranted, grantedList, deniedList -> if (allGranted) { diff --git a/app/src/main/java/com/dahe/gldriver/ui/LauncherActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/LauncherActivity.kt index a16efa9..9601319 100644 --- a/app/src/main/java/com/dahe/gldriver/ui/LauncherActivity.kt +++ b/app/src/main/java/com/dahe/gldriver/ui/LauncherActivity.kt @@ -1,18 +1,14 @@ package com.dahe.gldriver.ui import android.os.Bundle -import android.view.WindowManager import com.amap.api.location.AMapLocationClient -import com.dahe.gldriver.base.AppConfig +import com.amap.api.maps.MapsInitializer import com.dahe.gldriver.databinding.ActivityLauncherBinding -import com.dahe.mylibrary.base.BaseActivity -import com.dahe.mylibrary.utils.ActivityUtils import com.dahe.gldriver.ui.account.LoginActivity -import com.dahe.gldriver.ui.account.SelectRoleActivity import com.dahe.gldriver.utils.CommonPopUtils import com.dahe.gldriver.utils.SPUtils -import com.dahe.mylibrary.utils.BaseSPUtils -import com.dahe.mylibrary.utils.StringUtils +import com.dahe.mylibrary.base.BaseActivity +import com.dahe.mylibrary.utils.ActivityUtils import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.core.Observable import io.reactivex.rxjava3.disposables.Disposable @@ -45,10 +41,12 @@ class LauncherActivity : BaseActivity() { override fun initDate() { val isFirstOpenApp = SPUtils.instance.getIsFirstOpenApp(mContext) if (isFirstOpenApp) { + MapsInitializer.updatePrivacyShow(this, true, true) CommonPopUtils.getInstance().showCenterAgreement(mContext) { SPUtils.instance.setIsFirstOpenApp(mContext, false) AMapLocationClient.updatePrivacyShow(mContext, true, true) AMapLocationClient.updatePrivacyAgree(mContext, true) + MapsInitializer.updatePrivacyAgree(this, true) goNext() } } else { diff --git a/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthDriverActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthDriverActivity.kt index 6f7b257..ca6c9a8 100644 --- a/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthDriverActivity.kt +++ b/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthDriverActivity.kt @@ -82,6 +82,7 @@ class AuthDriverActivity : BaseActivity() { private fun subMit() { binding.run { driverInfoBean.run { + licenseName = etName.text.toString().trim() licenseNo = etId.text.toString() licenseType = tvCarType.text.toString() licenseEffectiveStart = tvStart.text.toString() diff --git a/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthPersonActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthPersonActivity.kt index 8c1ded8..ab23a36 100644 --- a/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthPersonActivity.kt +++ b/app/src/main/java/com/dahe/gldriver/ui/account/authperson/AuthPersonActivity.kt @@ -38,16 +38,14 @@ import java.io.File class AuthPersonActivity : BaseActivity() { - lateinit var ossServiceUtil: OssServiceUtil - var isOnlyShow = false +// var isOnlyShow = false var perInfoBean: UpPersonInfoBean = UpPersonInfoBean() override fun initView(savedInstanceState: Bundle?) { setStatusBarColor(R.color.white) setTitleBar("实名认证", true) - isOnlyShow = intent.extras?.getBoolean(AppConfig.IS_ONLY_SHOW, false) == true +// isOnlyShow = intent.extras?.getBoolean(AppConfig.IS_ONLY_SHOW, false) == true - ossServiceUtil = OssServiceUtil.getInstance() binding.run { var inBinding = this btnOk.setOnClickListener { @@ -98,6 +96,7 @@ class AuthPersonActivity : BaseActivity() { perInfoBean.run { idcardNo = idNumber idcardName = name + idcardAddress = address idcardEthnicity = ethnicity idcardSex = if (sex == "男") "0" else "1" } @@ -111,54 +110,23 @@ class AuthPersonActivity : BaseActivity() { } ivBack.setOnClickListener { - PopsUtils.getInstance().showSimSelPic(mContext) { - var data = it[0] - val path: String - if (data.isCut && !data.isCompressed) { - // 裁剪过 - path = data.cutPath - } else if (data.isCompressed || (data.isCut && data.isCompressed)) { - // 压缩过,或者裁剪同时压缩过,以最终压缩过图片为准 - path = data.compressPath - } else { - // 原图 - path = data.path + OcrUtils.getInstance().ocrPerson(mContext,this@AuthPersonActivity) { picPath, result -> + ImageLoader.getInstance() + .loadRoundImage(mContext, picPath.locPic, 12, ivBack) + result?.data?.back?.let { + if (it.data.validPeriod?.contains("-") == true) { + val split = it.data.validPeriod.split("-") + binding.run { + tvStart.text = + TimeUtil.changeDateFormat(split[0]) + tvEnd.text = + if (split.size == 2) TimeUtil.changeDateFormat( + split[1] + ) else "" + } + } } - ImageLoader.getInstance().loadRoundImage(mContext, data.realPath, 12, ivBack) - val file = File(data.realPath) - val filePic: MultipartBody.Part = MultipartBody.Part.createFormData( - "file", - file.getName(), - file.asRequestBody("multipart/form-data".toMediaTypeOrNull()) - ) - - DataManager.getInstance().uploadToOss(filePic).flatMap { - perInfoBean.idcardBackUrl = it.data.url - DataManager.getInstance().recognizeIdcard(it.data.url) - }.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) - .subscribe( - BaseObserver( - mContext, - object : RxHttpCallBack(this@AuthPersonActivity) { - override fun onSuccess(t: CommonResponseBean) { - super.onSuccess(t) - t.data.data.back?.let { - if (it.data.validPeriod?.contains("-") == true) { - val split = it.data.validPeriod.split("-") - binding.run { - tvStart.text = - TimeUtil.changeDateFormat(split[0]) - tvEnd.text = - if (split.size == 2) TimeUtil.changeDateFormat( - split[1] - ) else "" - } - } - } - } - }) - ) } } } @@ -167,41 +135,41 @@ class AuthPersonActivity : BaseActivity() { } override fun initDate() { - val data = - Gson().fromJson(intent.extras?.getString(USER_DETAIL), UserDetail::class.java) - if (isOnlyShow) { - binding.run { - llBtn.visibility = View.GONE - etName.isEnabled = false - etId.isEnabled = false - tvStart.isEnabled = false - tvEnd.isEnabled = false - ivFront.isEnabled = false - ivBack.isEnabled = false - - etName.setText(data.idcardName) - etId.setText(data.idcardNo) - tvStart.text = data.idcardEffectiveStart - tvEnd.text = data.idcardEffectiveEnd - ImageLoader.getInstance() - .loadRoundImage(mContext, data.idcardFrontUrl, 12, ivFront) - ImageLoader.getInstance() - .loadRoundImage(mContext, data.idcardBackUrl, 12, ivBack) - } - } else { - if (data != null) { - binding.run { - etName.setText(data.idcardName) - etId.setText(data.idcardNo) - tvStart.text = data.idcardEffectiveStart - tvEnd.text = data.idcardEffectiveEnd - ImageLoader.getInstance() - .loadRoundImage(mContext, data.idcardFrontUrl, 12, ivFront) - ImageLoader.getInstance() - .loadRoundImage(mContext, data.idcardBackUrl, 12, ivBack) - } - } - - } +// val data = +// Gson().fromJson(intent.extras?.getString(USER_DETAIL), UserDetail::class.java) +// if (isOnlyShow) { +// binding.run { +// llBtn.visibility = View.GONE +// etName.isEnabled = false +// etId.isEnabled = false +// tvStart.isEnabled = false +// tvEnd.isEnabled = false +// ivFront.isEnabled = false +// ivBack.isEnabled = false +// +// etName.setText(data.idcardName) +// etId.setText(data.idcardNo) +// tvStart.text = data.idcardEffectiveStart +// tvEnd.text = data.idcardEffectiveEnd +// ImageLoader.getInstance() +// .loadRoundImage(mContext, data.idcardFrontUrl, 12, ivFront) +// ImageLoader.getInstance() +// .loadRoundImage(mContext, data.idcardBackUrl, 12, ivBack) +// } +// } else { +// if (data != null) { +// binding.run { +// etName.setText(data.idcardName) +// etId.setText(data.idcardNo) +// tvStart.text = data.idcardEffectiveStart +// tvEnd.text = data.idcardEffectiveEnd +// ImageLoader.getInstance() +// .loadRoundImage(mContext, data.idcardFrontUrl, 12, ivFront) +// ImageLoader.getInstance() +// .loadRoundImage(mContext, data.idcardBackUrl, 12, ivBack) +// } +// } +// +// } } } \ No newline at end of file diff --git a/app/src/main/java/com/dahe/gldriver/ui/account/authperson/EditDriverActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/account/authperson/EditDriverActivity.kt new file mode 100644 index 0000000..d864488 --- /dev/null +++ b/app/src/main/java/com/dahe/gldriver/ui/account/authperson/EditDriverActivity.kt @@ -0,0 +1,192 @@ +package com.dahe.gldriver.ui.account.authperson + +import android.os.Bundle +import android.view.View +import com.dahe.gldriver.R +import com.dahe.gldriver.base.AppConfig +import com.dahe.gldriver.bean.OcrPersonBean +import com.dahe.gldriver.bean.UpDriverInfoBean +import com.dahe.gldriver.databinding.ActivityAuthDriverBinding +import com.dahe.gldriver.net.BaseObserver +import com.dahe.gldriver.net.DataManager +import com.dahe.gldriver.net.RxHttpCallBack +import com.dahe.gldriver.oss.OssServiceUtil +import com.dahe.gldriver.utils.OcrUtils +import com.dahe.glex.bean.UserDetail +import com.dahe.mylibrary.utils.PickerUtils +import com.dahe.mylibrary.base.BaseActivity +import com.dahe.mylibrary.net.CommonResponseBean +import com.dahe.mylibrary.utils.ActivityUtils +import com.dahe.mylibrary.utils.ImageLoader +import com.dahe.mylibrary.utils.PopsUtils +import com.dahe.mylibrary.utils.TimeUtil +import com.dahe.mylibrary.utils.ToastUtils +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers +import io.reactivex.rxjava3.schedulers.Schedulers + +/** + * @ClassName AuthRoleActivity + * @Author 用户 + * @Date 2024/1/25 11:15 + * @Description 驾驶证认证-编辑 + */ +class EditDriverActivity : BaseActivity() { + + + var driverInfoBean = UserDetail() + + override fun initView(savedInstanceState: Bundle?) { + setStatusBarColor(R.color.white) + setTitleBar("实名认证", true) + + binding.run { + btnOk.text = "确定" + btnOk.setOnClickListener { + subMit() + } + tvStart.run { + setOnClickListener { + PickerUtils.getInstance() + .showDate(this@EditDriverActivity, "有效起始日期") { date -> + this.text = date + } + } + } + tvEnd.run { + setOnClickListener { + PickerUtils.getInstance() + .showDate(this@EditDriverActivity, "有效结束日期") { date -> + this.text = date + } + } + } + tvCarType.setOnClickListener { + PickerUtils.getInstance() + .showSelectCarType(this@EditDriverActivity, "选择准驾车型") { _, item -> + tvCarType.text = item.toString() + } + } + + ivFront.setOnClickListener { + selFrontPic() + } + + ivBack.setOnClickListener { + selBackPic() + } + + } + } + + override fun initDate() { + DataManager.getInstance().getUserDetail() + .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) + .subscribe(BaseObserver(mContext, object : RxHttpCallBack() { + override fun onSuccess(t: CommonResponseBean) { + super.onSuccess(t) + driverInfoBean = t.data + + var isOnlyShow = + intent.extras?.getBoolean(AppConfig.IS_ONLY_SHOW, false) == true + if (isOnlyShow) { + binding.run { + llBtn.visibility = View.GONE + etName.isEnabled = false + etId.isEnabled = false + tvCarType.isEnabled = false + tvStart.isEnabled = false + tvEnd.isEnabled = false + ivFront.isEnabled = false + ivBack.isEnabled = false + } + } + + binding.run { + etName.setText(driverInfoBean.licenseName) + etId.setText(driverInfoBean.licenseNo) + tvStart.text = driverInfoBean.licenseEffectiveStart + tvEnd.text = driverInfoBean.licenseEffectiveEnd + tvCarType.text = driverInfoBean.licenseType + ImageLoader.getInstance() + .loadRoundImage(mContext, driverInfoBean.licensePhotoFaceUrl, 12, ivFront) + ImageLoader.getInstance() + .loadRoundImage(mContext, driverInfoBean.licensePhotoBackUrl, 12, ivBack) + } + } + })) + } + + private fun subMit() { + binding.run { + driverInfoBean.run { + licenseName = etName.text.toString().trim() + licenseNo = etId.text.toString() + licenseType = tvCarType.text.toString() + licenseEffectiveStart = tvStart.text.toString() + licenseEffectiveEnd = tvEnd.text.toString() + } + } + if (driverInfoBean.licenseNo.isNullOrBlank() || driverInfoBean.licensePhotoBackUrl.isNullOrBlank()) { + ToastUtils.showToast(mContext, "请完善信息") + return + } + + + + DataManager.getInstance().reUpDriverLicense(driverInfoBean) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(BaseObserver(mContext, object : RxHttpCallBack() { + override fun onSuccess(t: CommonResponseBean) { + super.onSuccess(t) + showToast("修改成功") + setResult(RESULT_OK) + finish() + } + })) + + } + + private fun selFrontPic() { + + OcrUtils.getInstance().ocrDriver(mContext, this) { picPath, result -> + result?.data?.face?.data.let { + ImageLoader.getInstance() + .loadRoundImage(mContext, picPath.locPic, 12, binding.ivFront) + driverInfoBean.licensePhotoFaceUrl = picPath.picPath + it?.run { + driverInfoBean.run { + licenseApproveOrganization = + issueAuthority //发证机关 + } + binding.run { + etName.setText(it.name) + etId.setText(it.licenseNumber) + tvCarType.text = it.approvedType + if (validPeriod.contains("至")) { + val split = validPeriod.split("至") + tvStart.text = split[0] + tvEnd.text = + if (split.size == 2) split[1] else "" + } + } + } + } + } + + + } + + private fun selBackPic() { + + OcrUtils.getInstance().ocrDriver(mContext, this) { picPath, result -> + result?.data?.back?.data.let { + ImageLoader.getInstance() + .loadRoundImage(mContext, picPath.locPic, 12, binding.ivBack) + driverInfoBean.licensePhotoBackUrl = picPath.picPath + ToastUtils.showToast(mContext, "驾驶证副页上传成功") + } + } + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/dahe/gldriver/ui/account/authperson/EditPersonActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/account/authperson/EditPersonActivity.kt new file mode 100644 index 0000000..229e311 --- /dev/null +++ b/app/src/main/java/com/dahe/gldriver/ui/account/authperson/EditPersonActivity.kt @@ -0,0 +1,172 @@ +package com.dahe.gldriver.ui.account.authperson + +import android.os.Bundle +import android.view.View +import com.dahe.gldriver.R +import com.dahe.gldriver.base.AppConfig +import com.dahe.gldriver.base.AppConfig.USER_DETAIL +import com.dahe.gldriver.bean.OcrPersonBean +import com.dahe.gldriver.bean.UpPersonInfoBean +import com.dahe.gldriver.databinding.ActivityAuthPersonBinding +import com.dahe.gldriver.net.BaseObserver +import com.dahe.gldriver.net.DataManager +import com.dahe.gldriver.net.RxHttpCallBack +import com.dahe.gldriver.utils.OcrUtils +import com.dahe.glex.bean.UserDetail +import com.dahe.mylibrary.base.BaseActivity +import com.dahe.mylibrary.net.CommonResponseBean +import com.dahe.mylibrary.utils.ActivityUtils +import com.dahe.mylibrary.utils.ImageLoader +import com.dahe.mylibrary.utils.PickerUtils +import com.dahe.mylibrary.utils.PopsUtils +import com.dahe.mylibrary.utils.TimeUtil +import com.google.gson.Gson +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers +import io.reactivex.rxjava3.schedulers.Schedulers +import okhttp3.MediaType.Companion.toMediaTypeOrNull +import okhttp3.MultipartBody +import okhttp3.RequestBody.Companion.asRequestBody +import java.io.File + +/** + * @ClassName AuthRoleActivity + * @Author 用户 + * @Date 2024/1/25 11:15 + * @Description 身份证认证-编辑 + */ +class EditPersonActivity : BaseActivity() { + + var perInfoBean: UserDetail = UserDetail() + override fun initView(savedInstanceState: Bundle?) { + setStatusBarColor(R.color.white) + setTitleBar("实名认证", true) + binding.run { + btnOk.text = "确定" + + var inBinding = this + btnOk.setOnClickListener { + + perInfoBean.run { + idcardNo = inBinding.etId.text.toString() + idcardName = inBinding.etName.text.toString() + idcardEffectiveStart = inBinding.tvStart.text.toString() + idcardEffectiveEnd = inBinding.tvEnd.text.toString() + } + + + DataManager.getInstance().reUpDriverIdCard(perInfoBean) + .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) + .subscribe(BaseObserver(mContext, object : RxHttpCallBack() { + override fun onSuccess(t: CommonResponseBean) { + super.onSuccess(t) + showToast("修改成功") + setResult(RESULT_OK) + finish() + } + })) + + + } + tvStart.run { + setOnClickListener { + PickerUtils.getInstance() + .showDate(this@EditPersonActivity, "有效起始日期") { date -> + this.text = date + } + } + } + tvEnd.run { + setOnClickListener { + PickerUtils.getInstance() + .showDate(this@EditPersonActivity, "有效结束日期") { date -> + this.text = date + } + } + } + + ivFront.setOnClickListener { + OcrUtils.getInstance() + .ocrPerson(mContext, this@EditPersonActivity) { picPath, result -> + ImageLoader.getInstance() + .loadRoundImage(mContext, picPath.locPic, 12, ivFront) + perInfoBean.idcardFrontUrl = picPath.picPath + result?.data?.face?.data.let { + it?.run { + perInfoBean.run { + idcardNo = idNumber + idcardName = name + idcardAddress = address + idcardEthnicity = ethnicity + idcardSex = if (sex == "男") "0" else "1" + } + } + binding.run { + etName.setText(it?.name) + etId.setText(it?.idNumber) + } + } + } + } + + ivBack.setOnClickListener { + OcrUtils.getInstance() + .ocrPerson(mContext, this@EditPersonActivity) { picPath, result -> + ImageLoader.getInstance() + .loadRoundImage(mContext, picPath.locPic, 12, ivBack) + result?.data?.back?.let { + if (it.data.validPeriod?.contains("-") == true) { + val split = it.data.validPeriod.split("-") + binding.run { + tvStart.text = + TimeUtil.changeDateFormat(split[0]) + tvEnd.text = + if (split.size == 2) TimeUtil.changeDateFormat( + split[1] + ) else "" + } + } + } + + } + } + } + + + } + + override fun initDate() { + DataManager.getInstance().getUserDetail() + .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) + .subscribe(BaseObserver(mContext, object : RxHttpCallBack() { + override fun onSuccess(t: CommonResponseBean) { + super.onSuccess(t) + perInfoBean = t.data + var isOnlyShow = + intent.extras?.getBoolean(AppConfig.IS_ONLY_SHOW, false) == true + if (isOnlyShow) { + binding.run { + llBtn.visibility = View.GONE + etName.isEnabled = false + etId.isEnabled = false + tvStart.isEnabled = false + tvEnd.isEnabled = false + ivFront.isEnabled = false + ivBack.isEnabled = false + } + } + binding.run { + etName.setText(perInfoBean.idcardName) + etId.setText(perInfoBean.idcardNo) + tvStart.text = perInfoBean.idcardEffectiveStart + tvEnd.text = perInfoBean.idcardEffectiveEnd + ImageLoader.getInstance() + .loadRoundImage(mContext, perInfoBean.idcardFrontUrl, 12, ivFront) + ImageLoader.getInstance() + .loadRoundImage(mContext, perInfoBean.idcardBackUrl, 12, ivBack) + } + } + })) + + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/dahe/gldriver/ui/account/authperson/EditQualificationActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/account/authperson/EditQualificationActivity.kt new file mode 100644 index 0000000..69a9834 --- /dev/null +++ b/app/src/main/java/com/dahe/gldriver/ui/account/authperson/EditQualificationActivity.kt @@ -0,0 +1,121 @@ +package com.dahe.gldriver.ui.account.authperson + +import android.os.Bundle +import com.dahe.gldriver.R +import com.dahe.gldriver.base.AppConfig +import com.dahe.gldriver.bean.UpQualiInfoBean +import com.dahe.gldriver.databinding.ActivityAuthQualificationBinding +import com.dahe.gldriver.net.BaseObserver +import com.dahe.gldriver.net.DataManager +import com.dahe.gldriver.net.RxHttpCallBack +import com.dahe.gldriver.oss.OssServiceUtil +import com.dahe.gldriver.utils.OcrUtils +import com.dahe.glex.bean.UserDetail +import com.dahe.mylibrary.utils.PickerUtils +import com.dahe.mylibrary.base.BaseActivity +import com.dahe.mylibrary.net.CommonResponseBean +import com.dahe.mylibrary.utils.ActivityUtils +import com.dahe.mylibrary.utils.ImageLoader +import com.dahe.mylibrary.utils.PopsUtils +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers +import io.reactivex.rxjava3.schedulers.Schedulers + +/** + * @ClassName AuthQualificationActivity + * @Author john + * @Date 2024/1/25 15:20 + * @Description 从业资格证认证-编辑 + */ +class EditQualificationActivity : BaseActivity() { + + var upQuaInfo = UserDetail() + override fun initView(savedInstanceState: Bundle?) { + setStatusBarColor(R.color.white) + setTitleBar("实名认证", true) + binding.btnOk.setOnClickListener { + subMit() + } + + binding.run { + btnOk.text = "确定" + tvDate.run { + setOnClickListener { + PickerUtils.getInstance() + .showDateSim( + this@EditQualificationActivity, + "选择有效期至" + ) { date -> + this.text = date + } + } + } + + ivFront.setOnClickListener { + OcrUtils.getInstance() + .noOcrUpPic(mContext, this@EditQualificationActivity) { picPath, _ -> + ImageLoader.getInstance() + .loadRoundImage(mContext, picPath.locPic, 12, ivFront) + upQuaInfo.qualificationCertificatePhotoUrl = picPath.picPath + } + } + } + } + + override fun initDate() { + DataManager.getInstance().getUserDetail() + .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) + .subscribe(BaseObserver(mContext, object : RxHttpCallBack() { + override fun onSuccess(t: CommonResponseBean) { + super.onSuccess(t) + upQuaInfo = t.data + binding.run { + + var isOnlyShow = + intent.extras?.getBoolean(AppConfig.IS_ONLY_SHOW, false) == true + if (isOnlyShow) { + tvDate.isEnabled = false + etId.isEnabled = false + ivFront.isEnabled = false + } + + tvDate.setText(upQuaInfo.qualificationCertificateEffectiveEnd) + etId.setText(upQuaInfo.qualificationCertificateNo) + + ImageLoader.getInstance() + .loadRoundImage( + mContext, + upQuaInfo.qualificationCertificatePhotoUrl, + 12, + ivFront + ) + } + } + })) + } + + private fun subMit() { + + upQuaInfo.run { + qualificationCertificateNo = binding.etId.text.toString() + qualificationCertificateEffectiveEnd = binding.tvDate.text.toString() + + + if (qualificationCertificateNo.isNullOrEmpty() || qualificationCertificateEffectiveEnd.isNullOrEmpty()) { + showToast("请完善信息") + return@run + } + + DataManager.getInstance().reUpDriverQualificationCertificate(upQuaInfo) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(BaseObserver(mContext, object : RxHttpCallBack() { + override fun onSuccess(t: CommonResponseBean) { + super.onSuccess(t) + showToast("修改成功") + setResult(RESULT_OK) + finish() + } + })) + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/dahe/gldriver/ui/mine/MineFragment.kt b/app/src/main/java/com/dahe/gldriver/ui/mine/MineFragment.kt index e1c8e8c..3f215c5 100644 --- a/app/src/main/java/com/dahe/gldriver/ui/mine/MineFragment.kt +++ b/app/src/main/java/com/dahe/gldriver/ui/mine/MineFragment.kt @@ -21,6 +21,7 @@ import com.dahe.mylibrary.utils.BaseUtils import com.dahe.mylibrary.utils.ImageLoader import com.dahe.mylibrary.utils.PhoneFormatCheckUtils import com.dahe.mylibrary.utils.ToastUtils +import com.tencent.bugly.crashreport.CrashReport import kotlin.system.exitProcess class MineFragment : BaseFragment(), View.OnClickListener { diff --git a/app/src/main/java/com/dahe/gldriver/ui/mine/activity/PersonInfoActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/mine/activity/PersonInfoActivity.kt index 60d346a..d5225c9 100644 --- a/app/src/main/java/com/dahe/gldriver/ui/mine/activity/PersonInfoActivity.kt +++ b/app/src/main/java/com/dahe/gldriver/ui/mine/activity/PersonInfoActivity.kt @@ -1,5 +1,6 @@ package com.dahe.gldriver.ui.mine.activity +import android.content.Intent import android.os.Bundle import android.view.View import com.dahe.gldriver.R @@ -8,7 +9,12 @@ import com.dahe.gldriver.databinding.ActivityPersonInfoBinding import com.dahe.gldriver.net.BaseObserver import com.dahe.gldriver.net.DataManager import com.dahe.gldriver.net.RxHttpCallBack +import com.dahe.gldriver.ui.account.authperson.AuthDriverActivity import com.dahe.gldriver.ui.account.authperson.AuthPersonActivity +import com.dahe.gldriver.ui.account.authperson.AuthQualificationActivity +import com.dahe.gldriver.ui.account.authperson.EditDriverActivity +import com.dahe.gldriver.ui.account.authperson.EditPersonActivity +import com.dahe.gldriver.ui.account.authperson.EditQualificationActivity import com.dahe.gldriver.utils.OrderUtils import com.dahe.gldriver.utils.SPUtils import com.dahe.glex.bean.UserDetail @@ -57,7 +63,7 @@ class PersonInfoActivity : BaseActivity(), View.OnCli } override fun initDate() { - DataManager.getInstance().getUserDetail() + DataManager.getInstance().getDriverDocIntegrity() .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) .subscribe(BaseObserver(mContext, object : RxHttpCallBack() { override fun onSuccess(t: CommonResponseBean) { @@ -71,27 +77,41 @@ class PersonInfoActivity : BaseActivity(), View.OnCli super.onClick(view) binding.run { when (view?.id) { - btnId.id, llAgainId.id -> ActivityUtils.startActivity( - mContext, - AuthPersonActivity::class.java, - Bundle().apply { - putBoolean(AppConfig.IS_ONLY_SHOW, false) - putString(AppConfig.USER_DETAIL, Gson().toJson(userDetail)) - }) + btnId.id, llAgainId.id -> ActivityUtils.startActivityForResult( + this@PersonInfoActivity, + EditPersonActivity::class.java, 1 + ) llSeeId.id -> ActivityUtils.startActivity( mContext, - AuthPersonActivity::class.java, + EditPersonActivity::class.java, Bundle().apply { putBoolean(AppConfig.IS_ONLY_SHOW, true) - putString(AppConfig.USER_DETAIL, Gson().toJson(userDetail)) }) - btnDriver.id, llAgainDriver.id -> {} - llSeeDriver.id -> {} + btnDriver.id, llAgainDriver.id -> ActivityUtils.startActivityForResult( + this@PersonInfoActivity, + EditDriverActivity::class.java, 1 + ) - btnQua.id, llAgainQua.id -> {} - llSeeQua.id -> {} + llSeeDriver.id -> ActivityUtils.startActivity( + mContext, + EditDriverActivity::class.java, + Bundle().apply { + putBoolean(AppConfig.IS_ONLY_SHOW, true) + }) + + btnQua.id, llAgainQua.id -> ActivityUtils.startActivityForResult( + this@PersonInfoActivity, + EditQualificationActivity::class.java, 1 + ) + + llSeeQua.id -> ActivityUtils.startActivity( + mContext, + EditQualificationActivity::class.java, + Bundle().apply { + putBoolean(AppConfig.IS_ONLY_SHOW, true) + }) btnFace.id -> {} } @@ -100,9 +120,9 @@ class PersonInfoActivity : BaseActivity(), View.OnCli } private fun initViewByData(data: UserDetail) { + doneInfoCount = 0 userDetail = data binding.run { - val userInfo = SPUtils.instance.getUserInfo(mContext) var missInfo = "" if (data.idcardNo.isNullOrEmpty()) { @@ -127,8 +147,8 @@ class PersonInfoActivity : BaseActivity(), View.OnCli tvQualiInfo.text = """${data.qualificationCertificateNo}""" } - if (userInfo?.isRealName == "0") { - btnFace.text = "未实名认证将无法进行接单" + if (data?.isRealName == "0") { + tvFaceInfo.text = "未实名认证将无法进行接单" missInfo.plus("实名认证缺失") } else { doneInfoCount++ @@ -148,10 +168,17 @@ class PersonInfoActivity : BaseActivity(), View.OnCli if (data.qualificationCertificateNo.isNullOrEmpty()) View.GONE else View.VISIBLE btnQua.visibility = if (data.qualificationCertificateNo.isNullOrEmpty()) View.VISIBLE else View.GONE - btnFace.visibility = if (userInfo?.isRealName == "0") View.VISIBLE else View.GONE + btnFace.visibility = if (data?.isRealName == "0") View.VISIBLE else View.GONE circleBarView2.progress = doneInfoCount * 100 / 4 } } + + override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { + super.onActivityResult(requestCode, resultCode, data) + if (resultCode == RESULT_OK && requestCode == 1) { + initDate() + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillLoadActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillLoadActivity.kt index a4b1708..7a9aeb7 100644 --- a/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillLoadActivity.kt +++ b/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillLoadActivity.kt @@ -1,23 +1,25 @@ package com.dahe.gldriver.ui.waybill.activity import android.Manifest +import android.annotation.SuppressLint import android.graphics.Color import android.os.Bundle -import android.view.View import android.widget.LinearLayout import android.widget.Toast import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.amap.api.maps.AMap -import com.amap.api.maps.CameraUpdateFactory -import com.amap.api.maps.MapView import com.amap.api.maps.model.LatLng +import com.amap.api.maps.model.Poi +import com.amap.api.navi.AmapNaviPage +import com.amap.api.navi.AmapNaviParams +import com.amap.api.navi.AmapNaviType import com.dahe.gldriver.R import com.dahe.gldriver.adapter.WaybillNodeAdapter import com.dahe.gldriver.base.AppConfig import com.dahe.gldriver.bean.OrderDetailBean +import com.dahe.gldriver.callback.MyINaviInfoCallback import com.dahe.gldriver.databinding.ActivityWaybillLoadBinding -import com.dahe.gldriver.event.RefreshEvent import com.dahe.gldriver.net.BaseObserver import com.dahe.gldriver.net.DataManager import com.dahe.gldriver.net.RxHttpCallBack @@ -31,11 +33,9 @@ import com.dahe.mylibrary.utils.ActivityUtils import com.dahe.mylibrary.utils.BaseUtils import com.dahe.mylibrary.utils.ConvertUtils import com.dahe.mylibrary.utils.LoadingUtils -import com.dahe.mylibrary.utils.ToastUtils import com.permissionx.guolindev.PermissionX import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.schedulers.Schedulers -import org.greenrobot.eventbus.EventBus /** @@ -50,11 +50,16 @@ class WaybillLoadActivity : BaseActivity() { var orderId: String = "" lateinit var orderBean: OrderDetailBean + + @SuppressLint("SuspiciousIndentation") override fun initView(savedInstanceState: Bundle?) { orderId = intent.extras?.getString(AppConfig.ORDER_ID, "").toString() setStatusHeightParams(binding.rlTop) - setTitleBar("运单详情",true,true,"查看单据"){ - ActivityUtils.startActivity(mContext,SeeDocActivity::class.java,Bundle().apply { putString(AppConfig.ORDER_ID,orderId) }) + setTitleBar("运单详情", true, true, "查看单据") { + ActivityUtils.startActivity( + mContext, + SeeDocActivity::class.java, + Bundle().apply { putString(AppConfig.ORDER_ID, orderId) }) } @@ -67,6 +72,16 @@ class WaybillLoadActivity : BaseActivity() { aMap = mapView.map.apply { uiSettings.run { isZoomControlsEnabled = false } } + llGoStart.setOnClickListener { + if (!::loadPos.isInitialized) + showToast("请等待定位成功") + return@setOnClickListener + AmapNaviPage.getInstance().showRouteActivity( + applicationContext, + AmapNaviParams(null, null, Poi("天安门", loadPos, ""), AmapNaviType.DRIVER), + object : MyINaviInfoCallback() {} + ) + } btnRight.setOnClickListener { var data = orderBean.orderChildList.first { it.type == "1" } diff --git a/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillUnlLoadActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillUnlLoadActivity.kt index 58a5af5..e461b75 100644 --- a/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillUnlLoadActivity.kt +++ b/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillUnlLoadActivity.kt @@ -1,6 +1,7 @@ package com.dahe.gldriver.ui.waybill.activity import android.Manifest +import android.content.res.Resources import android.graphics.Color import android.os.Bundle import android.view.View @@ -10,16 +11,24 @@ import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.amap.api.maps.AMap import com.amap.api.maps.model.LatLng +import com.amap.api.maps.model.Poi +import com.amap.api.navi.AmapNaviPage +import com.amap.api.navi.AmapNaviParams +import com.amap.api.navi.AmapNaviType +import com.amap.api.navi.INaviInfoCallback +import com.amap.api.navi.model.AMapNaviLocation import com.dahe.gldriver.R import com.dahe.gldriver.adapter.WaybillNodeAdapter import com.dahe.gldriver.base.AppConfig import com.dahe.gldriver.bean.OrderDetailBean +import com.dahe.gldriver.callback.MyINaviInfoCallback import com.dahe.gldriver.databinding.ActivityWaybillUnloadBinding import com.dahe.gldriver.net.BaseObserver import com.dahe.gldriver.net.DataManager import com.dahe.gldriver.net.RxHttpCallBack import com.dahe.gldriver.utils.GDLocationUtils import com.dahe.gldriver.utils.LocationUtils +import com.dahe.gldriver.utils.NaviUtils import com.dahe.gldriver.utils.OrderUtils import com.dahe.mylibrary.base.BaseActivity import com.dahe.mylibrary.net.CommonResponseBean @@ -28,7 +37,6 @@ import com.dahe.mylibrary.utils.ActivityUtils import com.dahe.mylibrary.utils.BaseUtils import com.dahe.mylibrary.utils.ConvertUtils import com.dahe.mylibrary.utils.LoadingUtils -import com.dahe.mylibrary.utils.ToastUtils import com.permissionx.guolindev.PermissionX import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.schedulers.Schedulers @@ -47,11 +55,15 @@ class WaybillUnlLoadActivity : BaseActivity() { var orderId: String = "" var waybillId: String = "" lateinit var orderBean: OrderDetailBean + override fun initView(savedInstanceState: Bundle?) { orderId = intent.extras?.getString(AppConfig.ORDER_ID, "").toString() setStatusHeightParams(binding.rlTop) - setTitleBar("运单详情",true,true,"查看单据"){ - ActivityUtils.startActivity(mContext,SeeDocActivity::class.java,Bundle().apply { putString(AppConfig.ORDER_ID,orderId) }) + setTitleBar("运单详情", true, true, "查看单据") { + ActivityUtils.startActivity( + mContext, + SeeDocActivity::class.java, + Bundle().apply { putString(AppConfig.ORDER_ID, orderId) }) } initRecy() @@ -61,6 +73,15 @@ class WaybillUnlLoadActivity : BaseActivity() { aMap = mapView.map.apply { uiSettings.run { isZoomControlsEnabled = false } } + llGoStart.setOnClickListener { + if (!::loadPos.isInitialized) { + showToast("请等待定位成功") + return@setOnClickListener + } + + NaviUtils.getInstance().goNextPoint(mContext,loadPos) + } + btnRight.setOnClickListener { ActivityUtils.startActivity( diff --git a/app/src/main/java/com/dahe/gldriver/utils/NaviUtils.kt b/app/src/main/java/com/dahe/gldriver/utils/NaviUtils.kt new file mode 100644 index 0000000..b7b58f0 --- /dev/null +++ b/app/src/main/java/com/dahe/gldriver/utils/NaviUtils.kt @@ -0,0 +1,40 @@ +package com.dahe.gldriver.utils + +import android.content.Context +import com.amap.api.maps.model.LatLng +import com.amap.api.maps.model.Poi +import com.amap.api.navi.AmapNaviPage +import com.amap.api.navi.AmapNaviParams +import com.amap.api.navi.AmapNaviType +import com.dahe.gldriver.callback.MyINaviInfoCallback +import com.dahe.mylibrary.base.SingletonNoPHolder + +/** + * @ClassName NaviUtils + * @Author john + * @Date 2024/3/22 09:10 + * @Description TODO + */ +class NaviUtils private constructor(){ + companion object : SingletonNoPHolder(::NaviUtils) + + fun goNextPoint(context: Context,latLng: LatLng,startName:String = ""){ + AmapNaviPage.getInstance().showRouteActivity( + context, + AmapNaviParams(null, null, Poi(startName, latLng, ""), AmapNaviType.DRIVER), + object : MyINaviInfoCallback() {} + ) + } + + fun getRoute(context: Context,startLatLng: LatLng,endLatLng: LatLng,startName:String = "",endName:String = ""){ + val params = AmapNaviParams( + Poi(startName, startLatLng, ""), + null, + Poi(endName, endLatLng, ""), + AmapNaviType.DRIVER + ) + params.setUseInnerVoice(true) + AmapNaviPage.getInstance() + .showRouteActivity(context, params, object : MyINaviInfoCallback() {}) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/dahe/gldriver/utils/OcrUtils.kt b/app/src/main/java/com/dahe/gldriver/utils/OcrUtils.kt index fb8f778..ffbe0ff 100644 --- a/app/src/main/java/com/dahe/gldriver/utils/OcrUtils.kt +++ b/app/src/main/java/com/dahe/gldriver/utils/OcrUtils.kt @@ -59,11 +59,11 @@ class OcrUtils private constructor() { // super.onCodeError(mContext, t) LoadingUtils.instance.dissLoading() if (t.code == 500) { - if (t.msg.contains("code: 400, The image type does not match the API operation")) { +// if (t.msg.contains("code: 400, The image type does not match the API operation")) { ToastUtils.showToast(mContext, "图片识别失败,请重新上传") - } else { - ToastUtils.showToast(mContext, t.msg) - } +// } else { +// ToastUtils.showToast(mContext, t.msg) +// } } } })) @@ -108,14 +108,14 @@ class OcrUtils private constructor() { // super.onCodeError(mContext, t) LoadingUtils.instance.dissLoading() if (t.code == 500) { - if (t.msg.contains("code: 400, The image type does not match the API operation")) { +// if (t.msg.contains("code: 400, The image type does not match the API operation")) { ToastUtils.showToast( mContext, "图片识别失败,请重新上传" ) - } else { - ToastUtils.showToast(mContext, t.msg) - } +// } else { +// ToastUtils.showToast(mContext, t.msg) +// } } } }) @@ -166,14 +166,14 @@ class OcrUtils private constructor() { // super.onCodeError(mContext, t) LoadingUtils.instance.dissLoading() if (t.code == 500) { - if (t.msg.contains("code: 400, The image type does not match the API operation")) { +// if (t.msg.contains("code: 400, The image type does not match the API operation")) { ToastUtils.showToast( mContext, "图片识别失败,请重新上传" ) - } else { - ToastUtils.showToast(mContext, t.msg) - } +// } else { +// ToastUtils.showToast(mContext, t.msg) +// } } } }) @@ -222,14 +222,14 @@ class OcrUtils private constructor() { // super.onCodeError(mContext, t) LoadingUtils.instance.dissLoading() if (t.code == 500) { - if (t.msg.contains("code: 400, The image type does not match the API operation")) { +// if (t.msg.contains("code: 400, The image type does not match the API operation")) { ToastUtils.showToast( mContext, "图片识别失败,请重新上传" ) - } else { - ToastUtils.showToast(mContext, t.msg) - } +// } else { +// ToastUtils.showToast(mContext, t.msg) +// } } } }) @@ -278,14 +278,14 @@ class OcrUtils private constructor() { // super.onCodeError(mContext, t) LoadingUtils.instance.dissLoading() if (t.code == 500) { - if (t.msg.contains("code: 400, The image type does not match the API operation")) { +// if (t.msg.contains("code: 400, The image type does not match the API operation")) { ToastUtils.showToast( mContext, "图片识别失败,请重新上传" ) - } else { - ToastUtils.showToast(mContext, t.msg) - } +// } else { +// ToastUtils.showToast(mContext, t.msg) +// } } } }) diff --git a/app/src/main/res/layout/activity_auth_driver.xml b/app/src/main/res/layout/activity_auth_driver.xml index 605c2b6..09d2ee9 100644 --- a/app/src/main/res/layout/activity_auth_driver.xml +++ b/app/src/main/res/layout/activity_auth_driver.xml @@ -254,6 +254,7 @@ android:background="@color/white">