From eb6124e310ae8875a0150ee5d2edd52d5a579d87 Mon Sep 17 00:00:00 2001
From: 18034727885 <973609879@qq.com>
Date: 星期四, 02 七月 2026 17:08:21 +0800
Subject: [PATCH] 快件订单优化
---
app/src/main/java/com/driver/igotrip/ui/main/small_cargo/SmallCargoActivity.kt | 196 +++++++++++++++++++++++++++++++++++-------------
1 files changed, 141 insertions(+), 55 deletions(-)
diff --git a/app/src/main/java/com/driver/igotrip/ui/main/small_cargo/SmallCargoActivity.kt b/app/src/main/java/com/driver/igotrip/ui/main/small_cargo/SmallCargoActivity.kt
index 5c0f19c..b23669e 100644
--- a/app/src/main/java/com/driver/igotrip/ui/main/small_cargo/SmallCargoActivity.kt
+++ b/app/src/main/java/com/driver/igotrip/ui/main/small_cargo/SmallCargoActivity.kt
@@ -1,6 +1,7 @@
package com.driver.igotrip.ui.main.small_cargo
import android.annotation.SuppressLint
+import android.content.Intent
import android.os.Bundle
import android.os.Handler
import android.os.Looper
@@ -10,6 +11,8 @@
import android.widget.EditText
import android.widget.ImageView
import android.widget.TextView
+import androidx.activity.result.ActivityResultLauncher
+import androidx.activity.result.contract.ActivityResultContracts
import cn.sinata.xldutils.utils.*
import com.driver.igotrip.R
import com.driver.igotrip.base.BaseEvent
@@ -27,6 +30,7 @@
import com.driver.igotrip.netUtls.*
import com.driver.igotrip.ui.DialogUtil
import com.driver.igotrip.ui.UiUtil
+import com.driver.igotrip.ui.main.MediaOperationActivity
import com.driver.igotrip.ui.main.ReassignActivity
import com.driver.igotrip.utils.DateUtil
import com.driver.igotrip.utils.MyUtils
@@ -81,6 +85,9 @@
var graylist = arrayListOf<LatLng>() // 灰色轨迹
var grayline: Polyline? = null
+ //业务多媒体类型
+ var businessMediaType: Int = 0
+
private val tv_name by lazy { find<TextView>(R.id.tv_name) }
private val tv_car_num by lazy { find<TextView>(R.id.tv_car_num) }
private val tv_people_cargo by lazy { find<TextView>(R.id.tv_people_cargo) }
@@ -97,6 +104,9 @@
private val iv_police by lazy { find<View>(R.id.iv_police) }
private val iv_to_gd by lazy { find<View>(R.id.iv_to_gd) }
private val slide_btn by lazy { find<SlidingButton>(R.id.slide_btn) }
+
+ //跳转另一个页面并接收返回结果启动器
+ private lateinit var launcherForResult: ActivityResultLauncher<Intent>
override fun setContentView() {
setContentView(R.layout.activity_trip_cargo)
@@ -119,7 +129,28 @@
}
override fun initView() {
+ launcherForResult =
+ registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
+ when (businessMediaType) {
+ 0 -> {
+ if (result.resultCode == RESULT_OK && result.data != null) {
+ val result = result.data!!.getStringArrayListExtra("result")
+ showConfirmPriceDialog(result!!.joinToString(separator = ","))
+ } else {
+ }
+ }
+
+ 1 -> {
+ if (result.resultCode == RESULT_OK && result.data != null) {
+ val result = result.data!!.getStringArrayListExtra("result")
+ showConfirmDeliveryDialog(result!!.joinToString(separator = ","))
+ } else {
+
+ }
+ }
+ }
+ }
}
private fun addSockectCancel() {
@@ -320,18 +351,14 @@
2, 3, 4 -> {
if (it.data.orderState == 4) {
if (orderType == "4") {
- DialogUtil.getDelAndSureDialog(
- this,
- getString(R.string.确认现金金额).format(it.data.expressPayAllMoney)
- .replace(",", "."),
- {},
- {
- it.data.orderState++
- callStatue("1", it.data.orderState) {
- iv_to_gd.callOnClick()
- }
- showStatueMapUI(it)
- })
+ businessMediaType = 0
+ launcherForResult.launch(
+ MediaOperationActivity.getIntent(
+ this,
+ getString(R.string.请上传图片),
+ getString(R.string.确认取货), 3, 1
+ )
+ )
} else {
it.data.orderState++
callStatue("1", it.data.orderState) {
@@ -350,49 +377,16 @@
}
5, 6 -> {
- sendCode() {
- it.data.orderState = 6
- var dialog =
- DialogUtil.getDialog(this, R.layout.dialog_show_cargo_money)
- var viewContent = DialogUtil.getView(dialog)
- val view_hint_close_car =
- viewContent.find<View>(R.id.view_hint_close_car)
- val tv_car_num_close = viewContent.find<View>(R.id.tv_car_num_close)
- val tv_money = viewContent.find<TextView>(R.id.tv_money)
- val tv_sure_car_num = viewContent.find<TextView>(R.id.tv_sure_car_num)
- val et_num_zg = viewContent.find<EditText>(R.id.et_num_zg)
- view_hint_close_car.setOnClickListener {
- dialog.dismiss()
- }
- tv_car_num_close.setOnClickListener {
- dialog.dismiss()
- }
- if (it.data.driverPay == "1") {
- tv_money.visible()
- tv_money.text =
- getString(R.string.确认现金金额).format(if (orderType == "4") it.data.expressPayAllMoney else if (it.data.payMoney == 0.0) it.data.orderMoney else it.data.payMoney)
- .replace(",", ".")
- }
- tv_sure_car_num.setOnClickListener {
- var num = et_num_zg.getContent()
- if (num.isEmpty()) {
- toast(getString(R.string.请输入验证码))
- return@setOnClickListener
- }
- callStatue(orderBean!!.data.orderState, num) {
- dialog.dismiss()
-// startActivity<SmallOverActivity>(
-// "orderId" to orderId,
-// "orderType" to orderType
-// )
- /* startActivity<MajorSureMoneyActivity>(
- "orderId" to orderId,
- "orderType" to orderType
- )*/
- finish()
- }
- }
- }
+// sendCode() {
+ businessMediaType = 1
+ launcherForResult.launch(
+ MediaOperationActivity.getIntent(
+ this,
+ getString(R.string.请上传图片),
+ getString(R.string.确认送达), 3, 1
+ )
+ )
+// }
}
12 -> {
@@ -423,6 +417,62 @@
}
}
+ }
+
+ //显示确认送达弹窗
+ private fun showConfirmDeliveryDialog(url: String) {
+ orderBean?.let {
+ it.data.orderState = 6
+ val dialog = DialogUtil.getDialog(this, R.layout.dialog_show_cargo_money)
+ val viewContent = DialogUtil.getView(dialog)
+ val view_hint_close_car =
+ viewContent.find<View>(R.id.view_hint_close_car)
+ val tv_car_num_close = viewContent.find<View>(R.id.tv_car_num_close)
+ val tv_money = viewContent.find<TextView>(R.id.tv_money)
+ val tv_sure_car_num = viewContent.find<TextView>(R.id.tv_sure_car_num)
+ val et_num_zg = viewContent.find<EditText>(R.id.et_num_zg)
+ view_hint_close_car.setOnClickListener {
+ dialog.dismiss()
+ }
+ tv_car_num_close.setOnClickListener {
+ dialog.dismiss()
+ }
+ if (it.data.driverPay == "1") {
+ tv_money.visible()
+ tv_money.text =
+ getString(R.string.确认现金金额).format(if (orderType == "4") it.data.expressPayAllMoney else if (it.data.payMoney == 0.0) it.data.orderMoney else it.data.payMoney)
+ .replace(",", ".")
+ }
+ tv_sure_car_num.setOnClickListener {
+ val num = et_num_zg.getContent()
+ if (num.isEmpty()) {
+ toast(getString(R.string.请输入验证码))
+ return@setOnClickListener
+ }
+ confirmDelivery(6, num, url) {
+ dialog.dismiss()
+ finish()
+ }
+ }
+ }
+ }
+
+ //显示确认价格弹窗
+ private fun showConfirmPriceDialog(url: String) {
+ orderBean?.let {
+ DialogUtil.getDelAndSureDialog(
+ this,
+ getString(R.string.确认现金金额).format(it.data.expressPayAllMoney)
+ .replace(",", "."),
+ {},
+ {
+ confirmPickUp(url, 5) {
+ it.data.orderState = 5
+ showStatueMapUI(it)
+ iv_to_gd.callOnClick()
+ }
+ })
+ }
}
fun startNavi(startLat: Double, startLon: Double, endLat: Double, endLon: Double) {
@@ -475,6 +525,27 @@
}
}
+ //确认送达
+ private fun confirmDelivery(i: Int, num: String, imgTwo: String, click: () -> Unit) {
+ var map = getMapByAny()
+ map["orderId"] = orderId
+ map["orderType"] = orderType
+ map["state"] = i
+ if (!num.isNullOrEmpty())
+ map["pickUpCode"] = num
+ Log.e(
+ "定位==============》",
+ "${MyApplication.getLocation()?.latitude},${MyApplication.getLocation()?.longitude}"
+ )
+ map["imgTwo"] = imgTwo
+ map["lat"] = MyApplication.getLocation()?.latitude ?: 0.0
+ map["lon"] = MyApplication.getLocation()?.longitude ?: 0.0
+ callNet(Api.process, map) {
+ OrderTimeOutManager.instance.checkOrderManager(orderId, orderType, i)
+ click()
+ }
+ }
+
private fun callStatue(phone: String, i: Int, click: () -> Unit) {
var map = getMapByAny()
map["orderId"] = orderId
@@ -489,6 +560,21 @@
}
}
+ //确认收获
+ private fun confirmPickUp(imgOne: String, i: Int, click: () -> Unit) {
+ var map = getMapByAny()
+ map["orderId"] = orderId
+ map["orderType"] = orderType
+ map["imgOne"] = imgOne
+ map["state"] = i
+ map["lat"] = MyApplication.getLocation()?.latitude ?: 0.0
+ map["lon"] = MyApplication.getLocation()?.longitude ?: 0.0
+ callNet(Api.process, map) {
+ OrderTimeOutManager.instance.checkOrderManager(orderId, orderType, i)
+ click()
+ }
+ }
+
private var movedByFinger = false
/***
--
Gitblit v1.7.1