lmw
2023-06-21 bd6a8872438a35d47821c5d5da7fe149e5fed3ab
app/src/main/java/com/okgoincar/slab/SlabMainActivity.kt
@@ -1,24 +1,20 @@
package com.okgoincar.slab
import android.content.Intent
import android.content.IntentFilter
import android.os.Bundle
import android.content.Context
import android.os.Handler
import android.os.Looper
import android.view.Gravity
import android.view.KeyEvent
import android.view.ViewGroup
import android.widget.PopupWindow
import android.widget.Toast
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import cn.sinata.rxnetty.NettyClient
import cn.sinata.xldutils.utils.Utils
import cn.sinata.xldutils.utils.clickDelay
import cn.sinata.xldutils.utils.getNowTimeBlack
import cn.sinata.xldutils.utils.textColor
import cn.sinata.xldutils.netstatus.NetUtils
import cn.sinata.xldutils.utils.*
import com.amap.api.location.AMapLocation
import com.amap.api.location.AMapLocationListener
import com.okgoincar.netUtls.callNet
import com.okgoincar.netUtls.getMapByAny
import com.okgoincar.ui.adapter.SlabStartAdapter
import com.okgoincar.utils.Cache.CacheKey
import com.google.gson.Gson
import com.okgoincar.R
import com.okgoincar.base.AMapKit
@@ -26,13 +22,20 @@
import com.okgoincar.base.MyApplication
import com.okgoincar.bean.*
import com.okgoincar.netUtls.Api
import com.okgoincar.netUtls.callNet
import com.okgoincar.netUtls.createView
import com.okgoincar.netUtls.getMapByAny
import com.okgoincar.slab.event.SlabMineEventActivity
import com.okgoincar.slab.util.DialogUtil
import com.okgoincar.ui.adapter.SlabStartAdapter
import com.okgoincar.utils.Cache.CacheKey
import com.okgoincar.utils.DateUtil
import com.okgoincar.utils.EasePopup.EasyPopup
import com.okgoincar.utils.PackageUtil
import com.okgoincar.utils.download.DownloadUtil
import com.okgoincar.utils.glide.GlideUtil
import kotlinx.android.synthetic.main.dialog_sure_and_del_slab.view.*
import kotlinx.android.synthetic.main.slab_activity_main.*
import org.greenrobot.eventbus.EventBus
import org.jetbrains.anko.startActivity
import org.jetbrains.anko.toast
@@ -81,21 +84,27 @@
            tv_time.textColor(this, R.color.black)
            tv_car_statue.textColor(this, R.color.black)
            tv_title.textColor(this, R.color.yellow_ffa72d)
        }
    }
    override fun initView() {
        setTitleText("OK出行司机")
        showHeader(false)
        showTitle(false)
        addFragment(mainFragment, R.id.rl_container)
        AMapKit.initLocation(this, this)
        initCall()
        NettyClient.getInstance().startService()
        callPersion()
        showOrder("2221", "2", 100, 2)
        callVersion()
        if (NetUtils.isNetworkConnected(this)) {
            setTitleText("OK出行司机")
            showHeader(false)
            showTitle(false)
            callLogin {
                view_mode.isSelected = !getNowTimeBlack()
                addFragment(mainFragment, R.id.rl_container)
                AMapKit.initLocation(this, this)
                initCall()
                NettyClient.getInstance().startService()
                callPersion()
//        showOrder("2221", "2", 100, 2)
                callVersion()
            }
        } else {
            showNoneNetDialog()
        }
    }
@@ -107,14 +116,82 @@
        }
    }
    var popup: PopupWindow? = null
    override fun onResume() {
        super.onResume()
        mainFragment.refresh()
        showNoneNetDialog()
        try {
            mainFragment?.refresh()
            callPersion()
        } catch (e: Exception) {
        }
    }
    fun showNoneNetDialog() {
        if (!NetUtils.isNetworkConnected(this)) {
            popup = getSlabDelAndSurePopWindow(this, "刷新", "取消", "网络不通畅,是否刷新页面?", {}) {
                if (!NetUtils.isNetworkConnected(this)) {
                    toast("无网络")
                } else {
                    initView()
                    popup?.dismiss()
                }
            }
            window.decorView.post {
                popup?.showAtLocation(window.decorView, Gravity.CENTER, 0, 0);
//                popup?.showCenter(window.decorView)
            }
        }
    }
    fun getSlabDelAndSurePopWindow(
        context: Context,
        sureStr: String,
        cancelStr: String,
        content: String,
        clickClose: () -> Unit,
        clickSure: () -> Unit
    ): PopupWindow {
        var dialog = PopupWindow(createView(R.layout.dialog_sure_and_del_slab, context))
        dialog.width = ViewGroup.LayoutParams.MATCH_PARENT
        dialog.height = ViewGroup.LayoutParams.MATCH_PARENT
        var view = dialog.contentView
        view.tv_close_base.text = cancelStr
        view.tv_sure_base.text = sureStr
        view.tv_close_base.gone()
        view.tv_close_base.setOnClickListener {
            dialog.dismiss()
            clickClose()
        }
        view.tv_sure_base.setOnClickListener {
            clickSure()
        }
        view.tv_view_two_base.text = content
        return dialog
    }
    private fun showUI(data: UserInfoBean?) {
        data?.let {
            tv_code_num.text = "资格证号:" + data.taxiAptitudeCard
            if (Api.BASE_URL.contains("okyueche")){
                textView_version.text = "版本-V" + PackageUtil.getVersionName(this)+"_online"
            }else{
                textView_version.text = "版本-V" + PackageUtil.getVersionName(this)+ "_测试"
            }
            tv_title_top.text = "服 务 监 督 卡"
            if (data.taxiAptitudeCard.length > 7) {
                tv_code_num.text = "资格证号:" + data.taxiAptitudeCard.substring(
                    0,
                    3
                ) + "*******" + data.taxiAptitudeCard.substring(
                    data.taxiAptitudeCard.length - 4,
                    data.taxiAptitudeCard.length
                )
            } else {
                tv_code_num.text = "资格证号:" + data.taxiAptitudeCard
            }
            tv_name.text = "姓名:" + it.name
            tv_car_num.text = "车牌:" + it.licensePlate
            recycler_view_start.layoutManager =
@@ -124,13 +201,17 @@
                    false
                ) as RecyclerView.LayoutManager?
            recycler_view_start.adapter = SlabStartAdapter(it.score.toDouble())
            tv_company.text = "公司:" + it.company
            var company = it.company
            if (company.startsWith("广西")) {
                company = company.substring(2, company.length)
            }
            tv_company.text = "公司:" + company
            tv_time.text = "发证日期:" + it.networkCarlssueDate
            GlideUtil.load(this, it.avatar, iv_head, 8)
            tv_current_time.text = DateUtil.getTime(
                DateUtil.TYPE7,
                System.currentTimeMillis()
            ) + "\n" + DateUtil.getWeek(System.currentTimeMillis())
            ) + DateUtil.getWeek(System.currentTimeMillis())
        }
    }
@@ -145,7 +226,7 @@
            } else {
//                MyApplication.getTTsManager().setVideoText("您已下班")
                var mapC = getMapByAny()
                mapC["type"] = "2"
                mapC["type"] = "2,4"
                callNet(true, Api.work2, mapC) {
                    homeDataBean?.data?.work = 1
                    tv_car.text = "收车"
@@ -193,7 +274,7 @@
        }
        tv_name.clickDelay {
            toast("点亮网约")
        }
        tv_car_num.clickDelay {
@@ -208,13 +289,33 @@
            startActivity<SlabOrderListActivity>()
        }
        ll_task.clickDelay {
            startActivity<SlabMineEventActivity>()
        }
        tv_title_top.clickDelay {
//            showOrder("3170","2",100,1)
        }
        view_mode.clickDelay {
            view_mode.isSelected = !view_mode.isSelected
            if (getNowTimeBlack()) {
                CacheKey.putKeyStr("date_mode", System.currentTimeMillis().toString())
                CacheKey.putKeyStr("mode_now_time", "1")//记录为点击切换的颜色 1 白色 2 黑色
                setBlackMode(false)
                mainFragment.adapter.notifyDataSetChanged()
            } else {
                CacheKey.putKeyStr("date_mode", System.currentTimeMillis().toString())
                CacheKey.putKeyStr("mode_now_time", "2")
                setBlackMode(true)
                mainFragment.adapter.notifyDataSetChanged()
            }
        }
        tv_car.clickDelay {
            //            if (homeDataBean?.data?.work == 1) {
//                callNet(true, Api.work2, getMapByAny()) {
//                    homeDataBean?.data?.work = 2
@@ -239,13 +340,23 @@
    var mBackAppTime: Long = 0
    override fun onBackPressed() {
        if (popup != null && popup!!.isShowing) {
            return
        }
        if (System.currentTimeMillis() - mBackAppTime > 2000) {
            Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT)
                .show()
            mBackAppTime = System.currentTimeMillis()
        } else {
            closeAll()
            moveTaskToBack(true)
        }
    }
    override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
        if (popup != null && popup!!.isShowing) {
            return false
        }
        return super.onKeyDown(keyCode, event)
    }
    override fun onEventMainThread(event: BaseEvent?) {
@@ -259,21 +370,33 @@
                    toast("收到显示屏信息")
                }
            }
            BaseEvent.UPDATA_MAIN_CAR -> {
                try {
                    mainFragment.refresh()
                } catch (e: Exception) {
                }
            }
            BaseEvent.ERROR_INFO -> {
                try {
                    mainFragment.refresh()
                } catch (e: Exception) {
                }
            }
        }
    }
    override fun onLocationChanged(p0: AMapLocation?) {
        if (p0 == null) {
            toast("高德位置是空的")
//            toast("高德位置是空的")
            return
        }
        if (p0.errorCode == 0) {
            toast("定位成功")
//            toast("定位成功")
            MyApplication.aMapLocation = p0
            CacheKey.putKeyStr("location", Gson().toJson(p0))
        } else {
            p0.let {
                toast("定位失败" + it.errorCode.toString())
                //                toast("定位失败" + it.errorCode.toString())
            }
        }
    }
@@ -282,14 +405,27 @@
        var map = getMapByAny()
        callNet(false, Api.queryNewData_, map) {
            var bean = gson.fromJson<VersionBean>(it, VersionBean::class.java)
            if (bean.data.version != "" && bean.data.version != Utils.getAppVersion(this)) {
            if (bean.data.version != "" && bean.data.version > Utils.getAppVersion(this)) {
                if (bean.data.mandatory == 0) {
                    var pop = DialogUtil.getSlabDelAndSurePopWindow(this, "有新版本是否更新", {}) {
                        DownloadUtil(this).downloadAPK(bean.data.url, "ok出行车载端")
                    }
                    var pop =
                        DialogUtil.getSlabDelAndSurePopWindow(
                            true,
                            this,
                            "确定",
                            "取消",
                            "有新版本是否更新",
                            {}) {
                            DownloadUtil(this).downloadAPK(bean.data.url, "ok出行车载端")
                        }
                    pop.showCenter(window.decorView)
                } else {
                    var pop = DialogUtil.getSlabDelAndSurePopWindow(this, "版本已过时,是否强制升级?", {}) {
                    var pop = DialogUtil.getSlabDelAndSurePopWindow(
                        false,
                        this,
                        "确定",
                        "取消",
                        "版本已过时,强制升级!",
                        {}) {
                        DownloadUtil(this).downloadAPK(bean.data.url, "ok出行车载端")
                        toast("后台开始下载,请等待")
                    }
@@ -297,8 +433,45 @@
                }
            } else {
                toast("已经是最新版本")
            }
        }
    }
    private fun callLogin(ok: () -> Unit) {
        var jobNum = CacheKey.getKeyStr("jobNum")
        var identification = CacheKey.getKeyStr("identification")
        if (jobNum.isNotEmpty()) {
            var map = getMapByAny()
            map["taxiAptitudeCard"] = identification
            callNet(this, Api.loginByTaxiAptitudeCard, map, {
                var bean = Gson().fromJson<LoginBean>(it, LoginBean::class.java)
                CacheKey.putKeyStr("identification", identification)
                CacheKey.putKeyStr("appid", bean.data.appid)
                CacheKey.putKeyStr("token", bean.data.token)
                CacheKey.putKeyStr("userId", bean.data.id.toString())
                CacheKey.putKeyStr("serverId", bean.data.serverId.toString())
                CacheKey.putKeyStr("terminalName", bean.data.terminalId.toString())
                ok()
            }) {
                ok()
            }
        } else if (identification.isNotEmpty()) {
            var map = getMapByAny()
            map["taxiAptitudeCard"] = identification
            callNet(this, Api.loginByTaxiAptitudeCard, map, {
                var bean = Gson().fromJson<LoginBean>(it, LoginBean::class.java)
                CacheKey.putKeyStr("identification", identification)
                CacheKey.putKeyStr("appid", bean.data.appid)
                CacheKey.putKeyStr("token", bean.data.token)
                CacheKey.putKeyStr("userId", bean.data.id.toString())
                CacheKey.putKeyStr("serverId", bean.data.serverId.toString())
                CacheKey.putKeyStr("terminalName", bean.data.terminalId.toString())
                ok()
            }) {
                ok()
            }
        } else {
            ok()
        }
    }
}