18034727885
2026-08-14 19506fce9382e60f88ee91b66742397a7c3bdafa
修复问题
升级版本号
7个文件已修改
162 ■■■■■ 已修改文件
app/build.gradle 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/igo/user/ui/trip/MapTripFragment.kt 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/igo/user/ui/trip/OrderDetailActivity.kt 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/igo/user/ui/trip/TripActivity.kt 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/igo/user/utils/google/AMapKit.kt 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/layout_confirm_special.xml 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/layout_confirm_taxi.xml 1 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/build.gradle
@@ -21,8 +21,8 @@
        applicationId "com.gopost.user"
        minSdkVersion 23
        targetSdkVersion 35
        versionCode 22
        versionName "1.22"
        versionCode 23
        versionName "1.23"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
app/src/main/java/com/igo/user/ui/trip/MapTripFragment.kt
@@ -167,7 +167,6 @@
    private val ll_type by lazy { find<LinearLayout>(R.id.ll_type) }
    private val cl_bottom by lazy { find<ConstraintLayout>(R.id.cl_bottom) }
    private val iv_banner2 by lazy { find<ImageView>(R.id.iv_banner2) }
    private val vertical_1_special by lazy { find<View>(R.id.vertical_1_special) }
    private val cl_special by lazy { find<View>(R.id.cl_special) }
    private val cl_taxi by lazy { find<View>(R.id.cl_taxi) }
@@ -979,7 +978,6 @@
            tab_confirm.currentTab = tab_type.currentTab
            tv_time.visibility = if (tab_confirm.currentTab == 1) View.VISIBLE else View.GONE
            tv_time_special.visibility = if (tab_type.currentTab == 1) View.VISIBLE else View.GONE
            vertical_1_special.visibility = tv_time_special.visibility
            vertical_1.visibility = tv_time.visibility
            mainActivity.updateTitleVisibility(false, true)
            iv_back.imageResource = cn.sinata.xldutils.R.mipmap.back
app/src/main/java/com/igo/user/ui/trip/OrderDetailActivity.kt
@@ -49,6 +49,7 @@
import com.igo.user.ui.TransparentStatusBarActivity
import com.igo.user.ui.crosscity.PayCrossActivity
import com.igo.user.ui.crosscity.ShuttleBusActivity
import com.igo.user.ui.mine.TripOrderFragment
import com.igo.user.ui.trip.adapter.ExpressPictureAdapter
import com.igo.user.utils.Const
import com.igo.user.utils.IGoShareUtils
@@ -446,7 +447,9 @@
                tv_title.visible()
                tv_action.text = getString(R.string.立即支付)
                tv_action2.text = getString(R.string.取消订单)
                tv_action2.visible()
                if (order!!.orderType == TripOrderFragment.TYPE_LOGISTICS) {
                    tv_action2.visible()
                }
                titleBar.getRightButton(0)?.gone()
                queryBalance()
                if (order!!.device == 2) {//车载端,显示线下付款按钮 2.0客户反馈,不要该按钮
app/src/main/java/com/igo/user/ui/trip/TripActivity.kt
@@ -662,8 +662,7 @@
                    titleBar.getRightButton(0)?.gone()
                    aMap?.isMyLocationEnabled = false //行程中取消乘客定位
                    drawLine()
                    ll_receiver_goods_code.isVisible =
                        it.orderType == Const.OrderType.TYPE_SAME_CITY
                    ll_receiver_goods_code.isVisible = it.orderType == Const.OrderType.TYPE_SAME_CITY
                    tv_receiver_goods_code.text = getString(R.string.取件码) + (it.code ?: "")
                }
@@ -928,11 +927,11 @@
                    val latLon = LatLng(order!!.startLat, order!!.startLon)
                    val waittime = order!!.insertTime.parserTime()
                    val s = System.currentTimeMillis()
                    val i = Math.max(s - waittime, 0L)
                    val i = (s - waittime).coerceAtLeast(0L)
                    val c = getString(R.string.正在寻找车辆, i / 1000 / 60, i / 1000 % 60)
                    setMarker(
                        latLon, SpanBuilder(c)
                            .color(this, c.length - 6, c.length, R.color.colorRed).build()
                        latLon,
                        SpanBuilder(c).color(this, c.length - 6, c.length, R.color.colorRed).build()
                    )
                    IGoApplication.intervalCount++
                    if (IGoApplication.intervalCount > 7) {
app/src/main/java/com/igo/user/utils/google/AMapKit.kt
@@ -6,8 +6,6 @@
import android.graphics.Bitmap
import android.graphics.Color
import android.location.LocationManager
import android.os.Handler
import android.os.Looper
import android.text.TextUtils
import android.util.Log
import android.view.View
@@ -49,6 +47,9 @@
import com.igo.user.R
import com.igo.user.utils.Const
import com.tbruyelle.rxpermissions2.RxPermissions
import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.schedulers.Schedulers
import okhttp3.MediaType
import okhttp3.OkHttpClient
import okhttp3.Request
@@ -344,9 +345,9 @@
        onClick: (latLngs: MutableList<LatLng>, lineTance: Float, lineTime: Long) -> Unit
    ) {
        //https://maps.googleapis.com/maps/api/directions/json?origin=39.99709957757345,116.31184045225382&destination=39.949158391497214,116.4154639095068&sensor=false&mode=driving
        var language = LanguageUtil.getLanguage()
        var centerStr = getPointStr(centerPoint ?: arrayListOf())
        var url = "https://maps.googleapis.com/maps/api/directions/json" +
        val language = LanguageUtil.getLanguage()
        val centerStr = getPointStr(centerPoint ?: arrayListOf())
        val url = "https://maps.googleapis.com/maps/api/directions/json" +
                "?origin=" + start.latitude.toString() + "," + start.longitude.toString() +
                "&destination=" + end.latitude.toString() + "," + end.longitude.toString() +
                "&waypoints=" + centerStr +
@@ -354,22 +355,15 @@
                "&key=" + Const.google_key
        getClient(url) {
            var googleBean = Gson().fromJson<GoogleRouteBean>(it, GoogleRouteBean::class.java)
            var time = 0 //秒
            var tance = 0 //米
            var allPoint = arrayListOf<LatLng>()
            val decode =
                PolyUtil.decode(googleBean.routes?.firstOrNull()?.overview_polyline?.points ?: "")
            for (routes in googleBean.routes ?: arrayListOf()) {
                if (routes.legs.isNullOrEmpty()) {
                    Log.i(TAG, "initRouteLine: 无路线")
                    return@getClient
                }
                time = routes.legs[0].duration?.value ?: 0
                tance = routes.legs[0].distance?.value ?: 0
            val googleBean = Gson().fromJson<GoogleRouteBean>(it, GoogleRouteBean::class.java)
            if (googleBean.routes.isNullOrEmpty()) {
                return@getClient
            }
            val bean = googleBean.routes.first()
            val time = bean.legs?.firstOrNull()?.duration?.value ?: 0 //秒
            val tance = bean.legs?.firstOrNull()?.distance?.value ?: 0 //米
            val allPoint = arrayListOf<LatLng>()
            val decode = PolyUtil.decode(bean.overview_polyline?.points ?: "")
            allPoint.addAll(decode)
            onClick(allPoint, tance.toFloat(), time.toLong() / 60)
        }
@@ -448,29 +442,24 @@
        return false
    }
    fun getClient(url: String, function: (String) -> Unit) {
    fun getClient(url: String, retryCount: Int = 3, function: (String) -> Unit) {
        val client = OkHttpClient().newBuilder().build()
        val mediaType = MediaType.parse("text/plain")
        val body = RequestBody.create(mediaType, "")
        val request: Request = Request.Builder()
            .url(url)
            .method("GET", null)
            .build()
        Thread {
            try {
                val response = client.newCall(request).execute()
                Handler(Looper.getMainLooper()).post {
                    try {
                        function(response.body()?.string() ?: "")
                    } catch (e: Exception) {
                        e.printStackTrace()
                    }
        val subscribe = Observable.just(request)
            .map { request -> client.newCall(request).execute() }
            .retry(retryCount.toLong())   // 最多额外重试 3 次(加上首次共 4 次尝试)
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe({
                try {
                    function(it.body()?.string() ?: "")
                } catch (e: Exception) {
                    e.printStackTrace()
                }
            } catch (e: Exception) {
                e.printStackTrace()
            }
        }.start()
            }, { throwable -> throwable.printStackTrace() })
    }
    /***
app/src/main/res/layout/layout_confirm_special.xml
@@ -68,51 +68,41 @@
        android:background="@color/dividing_line_color"
        app:layout_constraintBottom_toBottomOf="@id/sc_type" />
    <TextView
        android:id="@+id/tv_time_special"
    <FrameLayout
        android:id="@+id/fl_select_operation"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:drawableEnd="@mipmap/icon_more_black"
        android:drawablePadding="3dp"
        android:paddingTop="14dp"
        android:paddingBottom="14dp"
        android:text="@string/现在"
        android:textColor="@color/textColor"
        android:textSize="12sp"
        android:visibility="gone"
        app:layout_constraintBaseline_toBaselineOf="@id/tv_passenger_special"
        app:layout_constraintEnd_toStartOf="@id/vertical_1_special"
        app:layout_constraintStart_toStartOf="parent" />
    <View
        android:id="@+id/vertical_1_special"
        android:layout_width="1dp"
        android:layout_height="20dp"
        android:background="@color/dividing_line_color"
        android:visibility="gone"
        app:layout_constraintBottom_toBottomOf="@id/tv_passenger_special"
        app:layout_constraintEnd_toStartOf="@id/tv_passenger_special"
        app:layout_constraintStart_toEndOf="@id/tv_time_special"
        app:layout_constraintTop_toTopOf="@id/tv_passenger_special" />
    <TextView
        android:id="@+id/tv_passenger_special"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:drawableEnd="@mipmap/icon_more_black"
        android:drawablePadding="3dp"
        android:paddingTop="14dp"
        android:paddingBottom="14dp"
        android:text="@string/选乘车人"
        android:textColor="@color/textColor"
        android:textSize="12sp"
        android:visibility="invisible"
        android:paddingVertical="5dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@id/vertical_1_special"
        app:layout_constraintTop_toBottomOf="@id/sc_type"
        tools:visibility="gone" />
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@id/sc_type">
        <TextView
            android:id="@+id/tv_time_special"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:drawableEnd="@mipmap/icon_more_black"
            android:drawablePadding="3dp"
            android:paddingVertical="10dp"
            android:text="@string/现在"
            android:textColor="@color/textColor"
            android:textSize="12sp"
            android:visibility="gone"
            tools:visibility="visible" />
        <TextView
            android:id="@+id/tv_passenger_special"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:drawableEnd="@mipmap/icon_more_black"
            android:drawablePadding="3dp"
            android:paddingVertical="10dp"
            android:text="@string/选乘车人"
            android:textColor="@color/textColor"
            android:textSize="12sp"
            android:visibility="gone"
            tools:visibility="visible" />
    </FrameLayout>
    <CheckBox
        android:id="@+id/cb_use_coupon_special"
@@ -120,13 +110,13 @@
        android:layout_height="wrap_content"
        android:button="@drawable/selector_radio"
        android:checked="true"
        app:layout_goneMarginTop="12dp"
        android:gravity="center_vertical"
        android:text="@string/使用优惠券抵扣"
        android:textColor="@color/textColor"
        android:textSize="12sp"
        app:layout_constraintStart_toStartOf="@id/tv_action_special"
        app:layout_constraintTop_toBottomOf="@id/tv_passenger_special" />
        app:layout_constraintTop_toBottomOf="@id/fl_select_operation"
        app:layout_goneMarginTop="12dp" />
    <TextView
        android:id="@+id/tv_action_special"
app/src/main/res/layout/layout_confirm_taxi.xml
@@ -217,6 +217,7 @@
        android:layout_marginTop="12dp"
        android:button="@drawable/selector_radio"
        android:checked="true"
        android:paddingStart="5dp"
        android:gravity="center_vertical"
        android:text="@string/使用优惠券抵扣"
        android:textColor="@color/textColor"