From 6f39c3103f4c4df842cc6af5fe56f45d74d65dc4 Mon Sep 17 00:00:00 2001 From: songzhiling <17630035658@163.com> Date: Thu, 17 Apr 2025 20:12:58 +0800 Subject: [PATCH] =?UTF-8?q?feat(servicing):=20=E5=A2=9E=E5=8A=A0=E4=BA=BA?= =?UTF-8?q?=E8=84=B8=E6=A0=B8=E9=AA=8C=E7=9B=B8=E5=85=B3=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 GlobalData 中添加 isLoginRecognition 字段,用于记录是否完成登录后的人脸识别 - 修改 MainActivity 中的示例 URI - 更新 WaitToStartActivity 中的对话框逻辑,增加下一步操作确认对话框 - 修改 WaitToStartVm 中的错误处理方式,使用状态更新替代 Toast 提示 - 优化 ZdCameraXActivity 中的初始化流程,增加屏幕亮度设置 --- .../main/java/com/za/sdk/demo/MainActivity.kt | 2 +- .../src/main/java/com/za/common/GlobalData.kt | 10 ++++ .../com/za/ui/camera/ZdCameraXActivity.kt | 8 +++ .../wait_to_start/WaitToStartActivity.kt | 49 +++++++++++++++++-- .../servicing/wait_to_start/WaitToStartVm.kt | 6 ++- 5 files changed, 67 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/za/sdk/demo/MainActivity.kt b/app/src/main/java/com/za/sdk/demo/MainActivity.kt index 75d014c..8c360b2 100644 --- a/app/src/main/java/com/za/sdk/demo/MainActivity.kt +++ b/app/src/main/java/com/za/sdk/demo/MainActivity.kt @@ -27,7 +27,7 @@ class MainActivity : ComponentActivity() { .fillMaxSize() .clickable { val uri = - "zd.assist://app?taskCode=ZD250416100398&driverName=宋志领&driverPhone=17630035658&rescueVehicle=沪88888".toUri() + "zd.assist://app?taskCode=ZD250417100404&driverName=宋志领&driverPhone=17630035658&rescueVehicle=沪88888".toUri() val intent = Intent(Intent.ACTION_VIEW, uri) startActivity(intent) } diff --git a/servicing/src/main/java/com/za/common/GlobalData.kt b/servicing/src/main/java/com/za/common/GlobalData.kt index 223fecd..481d343 100644 --- a/servicing/src/main/java/com/za/common/GlobalData.kt +++ b/servicing/src/main/java/com/za/common/GlobalData.kt @@ -75,6 +75,16 @@ object GlobalData { mmkv.encode("lastLoginBean", value) } + //是否已经完成登录后的人脸识别 + var isLoginRecognition : Boolean? = null + get() { + return mmkv.decodeBool("isLoginRecognition", false) + } + set(value) { + mmkv.encode("isLoginRecognition", value ?: false) + field = value + } + var currentOrder : OrderInfo? = null get() { return mmkv.decodeParcelable("currentOrder", OrderInfo::class.java) diff --git a/servicing/src/main/java/com/za/ui/camera/ZdCameraXActivity.kt b/servicing/src/main/java/com/za/ui/camera/ZdCameraXActivity.kt index 100da57..f7c753c 100644 --- a/servicing/src/main/java/com/za/ui/camera/ZdCameraXActivity.kt +++ b/servicing/src/main/java/com/za/ui/camera/ZdCameraXActivity.kt @@ -104,6 +104,7 @@ class ZdCameraXActivity : AppCompatActivity() { super.onCreate(savedInstanceState) setContentView(R.layout.activity_zd_camera_xactivity) isBack = intent.getBooleanExtra("isBack", true) + setWindowBrightness() initView() initLocation() startCamera() @@ -159,6 +160,13 @@ class ZdCameraXActivity : AppCompatActivity() { animatorSet?.setDuration(500) } + // 在 Activity 中调整当前窗口亮度(0.0~1.0范围) + private fun setWindowBrightness() { + val layoutParams = window.attributes + layoutParams.screenBrightness = 1f + window.attributes = layoutParams + } + @SuppressLint("ClickableViewAccessibility") private fun setOnClick() { takePhoto?.setOnClickListener(ClickProxy { v : View? -> takePhoto() }) diff --git a/servicing/src/main/java/com/za/ui/servicing/wait_to_start/WaitToStartActivity.kt b/servicing/src/main/java/com/za/ui/servicing/wait_to_start/WaitToStartActivity.kt index b89a4eb..56107ce 100644 --- a/servicing/src/main/java/com/za/ui/servicing/wait_to_start/WaitToStartActivity.kt +++ b/servicing/src/main/java/com/za/ui/servicing/wait_to_start/WaitToStartActivity.kt @@ -59,7 +59,6 @@ import com.amap.api.maps.model.LatLng import com.amap.api.maps.model.LatLngBounds import com.amap.api.maps.model.MarkerOptions import com.amap.api.maps.model.PolylineOptions -import com.blankj.utilcode.util.ToastUtils import com.za.base.BaseActivity import com.za.base.theme.headBgColor import com.za.base.view.CommonDialog @@ -96,7 +95,7 @@ fun WaitToStartScreen(vm : WaitToStartVm = viewModel()) { val value = it.data?.getStringExtra("path") LogUtil.print("takePhoto", "path==$value") if (value.isNullOrBlank()) { - ToastUtils.showLong("照片路径为空,请重新拍摄!") + vm.updateState(uiState.value.copy(comparableFailedStr = "照片路径为空,请重新认证!")) return@rememberLauncherForActivityResult } vm.dispatch(WaitToStartVm.Action.CompareServicePeople(value)) @@ -134,10 +133,27 @@ fun WaitToStartScreen(vm : WaitToStartVm = viewModel()) { vm.dispatch(WaitToStartVm.Action.UpdateState(uiState.value.copy(goNextPage = null))) } + if (uiState.value.isGoNextPageDialog == true) { + CommonDialog(cancelText = "取消", + confirmText = "前往下一步", + title = "是否前往下一步?", + cancelEnable = true, + cancel = { + vm.dispatch(WaitToStartVm.Action.UpdateState(uiState.value.copy(isGoNextPageDialog = false))) + }, + dismiss = { + vm.dispatch(WaitToStartVm.Action.UpdateState(uiState.value.copy(isGoNextPageDialog = false))) + }, + confirm = { + vm.dispatch(WaitToStartVm.Action.UpdateState(uiState.value.copy(isGoNextPageDialog = false))) + vm.dispatch(WaitToStartVm.Action.UpdateTask) + }) + } + if (uiState.value.showServicePeopleConfirmDialog == true) { CommonDialog(cancelText = "取消", - confirmText = "去拍照", - title = "服务人员确认", + confirmText = "去核验", + title = "服务技师信息核验", cancelEnable = true, cancel = { vm.dispatch(WaitToStartVm.Action.UpdateState(uiState.value.copy( @@ -156,6 +172,24 @@ fun WaitToStartScreen(vm : WaitToStartVm = viewModel()) { }) } + if (! uiState.value.comparableFailedStr.isNullOrBlank()) { + CommonDialog(title = uiState.value.comparableFailedStr, + confirmText = "重新核验", + confirm = { + vm.dispatch(WaitToStartVm.Action.UpdateState(uiState.value.copy(comparableFailedStr = null))) + val intent = Intent(context, ZdCameraXActivity::class.java) + intent.putExtra("isBack", false) + getResult.launch(intent) + }, + cancelText = "关闭", + cancel = { + vm.dispatch(WaitToStartVm.Action.UpdateState(uiState.value.copy(comparableFailedStr = null))) + }, + dismiss = { + vm.dispatch(WaitToStartVm.Action.UpdateState(uiState.value.copy(comparableFailedStr = null))) + }) + } + BottomSheetScaffold(scaffoldState = scaffoldState, topBar = { InServicingHeadView(title = "调度成功,等待发车", @@ -304,8 +338,13 @@ fun WaitToStartScreen(vm : WaitToStartVm = viewModel()) { // 发车按钮 Button(onClick = { + if (GlobalData.driverInfoBean != null && GlobalData.driverInfoBean?.authStatus == 1) { + vm.dispatch(WaitToStartVm.Action.UpdateState(uiState.value.copy( + showServicePeopleConfirmDialog = true))) + return@Button + } vm.dispatch(WaitToStartVm.Action.UpdateState(uiState.value.copy( - showServicePeopleConfirmDialog = true))) + isGoNextPageDialog = true))) }, modifier = Modifier .fillMaxWidth() diff --git a/servicing/src/main/java/com/za/ui/servicing/wait_to_start/WaitToStartVm.kt b/servicing/src/main/java/com/za/ui/servicing/wait_to_start/WaitToStartVm.kt index ce6111c..888d62d 100644 --- a/servicing/src/main/java/com/za/ui/servicing/wait_to_start/WaitToStartVm.kt +++ b/servicing/src/main/java/com/za/ui/servicing/wait_to_start/WaitToStartVm.kt @@ -232,11 +232,11 @@ class WaitToStartVm : IServicingVm( updateTask() }, failed = { LoadingManager.hideLoading() - ToastUtils.showLong(it) + updateState(uiState.value.copy(comparableFailedStr = it)) }) }, failed = { LoadingManager.hideLoading() - ToastUtils.showLong(it) + updateState(uiState.value.copy(comparableFailedStr = it)) }) } @@ -288,8 +288,10 @@ class WaitToStartVm : IServicingVm( val showCallPhoneDialog : Boolean? = false, val markers : ArrayList? = null, val goNextPage : UpdateTaskBean? = null, + val isGoNextPageDialog : Boolean? = null, val routePoints : List? = null, val remainingDistance : Float = 0f, val showServicePeopleConfirmDialog : Boolean? = false, + val comparableFailedStr : String? = null, val estimatedArrivalTime : String = "") } \ No newline at end of file