18034727885
2026-03-18 cdb6a87fcd370b814b62a76e00d9e8554bc1f0b7
app/src/main/java/com/driver/igotrip/ui/main/MainActivity.kt
@@ -10,13 +10,11 @@
import android.os.Message
import android.provider.Settings
import android.util.Log
import android.view.Gravity
import android.view.View
import android.widget.ImageView
import android.widget.LinearLayout
import android.widget.TextView
import android.widget.Toast
import androidx.lifecycle.lifecycleScope
import cn.sinata.rxnetty.NettyClient
import cn.sinata.xldutils.utils.SPUtils
import cn.sinata.xldutils.utils.Utils
@@ -39,6 +37,7 @@
import com.driver.igotrip.bean.SelectServerModeBean
import com.driver.igotrip.bean.TimeBean
import com.driver.igotrip.bean.UpCarInfo
import com.driver.igotrip.bean.UserBean
import com.driver.igotrip.bean.VersionBean
import com.driver.igotrip.netUtls.Api
import com.driver.igotrip.netUtls.callNet
@@ -46,6 +45,7 @@
import com.driver.igotrip.ui.DialogUtil
import com.driver.igotrip.ui.DialogUtil.getDelAndSureDialog
import com.driver.igotrip.ui.main.event.MineEventActivity
import com.driver.igotrip.ui.mine.BalanceTopupActivity
import com.driver.igotrip.ui.mine.ChangeCarActivity
import com.driver.igotrip.ui.mine.DriverAttestationActivity
import com.driver.igotrip.ui.mine.MineActivity
@@ -60,18 +60,11 @@
import com.google.android.gms.maps.SupportMapFragment
import com.google.android.gms.maps.model.LatLng
import com.google.gson.Gson
import com.lzf.easyfloat.EasyFloat
import com.lzf.easyfloat.enums.ShowPattern
import com.lzf.easyfloat.enums.SidePattern
import com.lzf.easyfloat.interfaces.OnInvokeView
import com.tbruyelle.rxpermissions2.RxPermissions
import com.wang.avi.AVLoadingIndicatorView
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import org.greenrobot.eventbus.EventBus
import org.greenrobot.eventbus.Subscribe
import org.jetbrains.anko.browse
import org.jetbrains.anko.dip
import org.jetbrains.anko.find
import org.jetbrains.anko.startActivity
import org.jetbrains.anko.toast
@@ -589,40 +582,43 @@
                    if (bean) {
                        showPayDialog()
                    } else {
                        callNet(Api.queryMyBusiness, getMapByAny()) {
                            var bean = gson.fromJson(it, SelectServerModeBean::class.java).data
                            if (bean.isEmpty()) {
                                toast(getString(R.string.请选择接单业务))
                                return@callNet
                            }
                            if (bean.size > 1) {
                                startActivity<SelectServerModeActivity>()
                            } else {
                                var map = getMapByAny()
                                map["type"] = bean[0].id
                                callNet(Api.work, map) {
                                    var carinfo = gson.fromJson<UpCarInfo>(
                                        it,
                                        UpCarInfo::class.java
                                    )
                                    if (carinfo.data?.jumpCode == "200000") {
                                        DialogUtil.getDelAndSureDialog(
                                            this,
                                            getString(R.string.您还没有完善车辆信息),
                                            {},
                                            {
                                                startActivity<ChangeCarActivity>()
                                            })
                                    } else {
                                        toast(getString(R.string.上班成功))
                                        beOnDuty(true)
                                        MyApplication.getTTsManager()
                                            .setVideoText(carinfo.data?.audioUrl)
                                        CacheKey.putKeyStr(
                                            "vehicleId",
                                            carinfo.data?.vehicleId ?: ""
                        judgeAccountEffective {
                            callNet(Api.queryMyBusiness, getMapByAny()) {
                                var bean = gson.fromJson(it, SelectServerModeBean::class.java).data
                                if (bean.isEmpty()) {
                                    toast(getString(R.string.请选择接单业务))
                                    return@callNet
                                }
                                if (bean.size > 1) {
                                    startActivity<SelectServerModeActivity>()
                                } else {
                                    var map = getMapByAny()
                                    map["type"] = bean[0].id
                                    callNet(Api.work, map) {
                                        var carinfo = gson.fromJson<UpCarInfo>(
                                            it,
                                            UpCarInfo::class.java
                                        )
                                        EventBus.getDefault().post(BaseEvent(BaseEvent.START_CAR))
                                        if (carinfo.data?.jumpCode == "200000") {
                                            DialogUtil.getDelAndSureDialog(
                                                this,
                                                getString(R.string.您还没有完善车辆信息),
                                                {},
                                                {
                                                    startActivity<ChangeCarActivity>()
                                                })
                                        } else {
                                            toast(getString(R.string.上班成功))
                                            beOnDuty(true)
                                            MyApplication.getTTsManager()
                                                .setVideoText(carinfo.data?.audioUrl)
                                            CacheKey.putKeyStr(
                                                "vehicleId",
                                                carinfo.data?.vehicleId ?: ""
                                            )
                                            EventBus.getDefault()
                                                .post(BaseEvent(BaseEvent.START_CAR))
                                        }
                                    }
                                }
                            }
@@ -633,6 +629,65 @@
        }
    }
    /**判断账户是否有效
     * @param effectiveCallback 能够操作的回调*/
    private fun judgeAccountEffective(effectiveCallback: () -> Unit) {
        callNet(Api.queryInfo, getMapByAny()) {
            val user = gson.fromJson<UserBean>(it, UserBean::class.java)
            if (user.data == null) {
                return@callNet
            }
            val min = 40000
            if (user.data.accountBalance < min) {
                showNoticeAccountBalanceDialog(min)
                return@callNet
            }
            effectiveCallback.invoke()
        }
    }
    /**显示提示账户余额弹窗
     * @param min 最低金额*/
    private fun showNoticeAccountBalanceDialog(min: Int) {
        val l = SPUtils.getString(Const.language)
        val sure: String
        val cancel: String
        val content: String
        val warn: String
        when (l) {
            "fr" -> {
                sure = getString(R.string.充值)
                cancel = "Fermer"
                warn = "Rappel"
                content = "Solde inférieur à $min xifa, s'il vous plaît recharger d'abord"
            }
            "ch", "zh" -> {
                sure = getString(R.string.充值)
                cancel = "关闭"
                warn = "提示"
                content = "余额不足${min}西法,请先充值"
            }
            else -> {
                sure = getString(R.string.充值)
                cancel = "Close"
                warn = "Reminder"
                content = "The balance is less than $min Spanish francs, please recharge first"
            }
        }
        val delAndSureDialog = getDelAndSureDialog(
            this,
            sure,
            cancel,
            content,
            {}) {
            startActivity<BalanceTopupActivity>()
        }
        delAndSureDialog.window?.decorView?.let {
            it.find<TextView>(R.id.tv_hint_base).text = warn
        }
    }
    private fun showPayDialog() {
        val l = SPUtils.getString(Const.language)
        val pay:String