liugl
2020-11-18 16d807930e47fcab5a7e773046daad78e04849e2
app/src/main/java/com/okgoincar/slab/SlabMainActivity.kt
@@ -1,5 +1,6 @@
package com.okgoincar.slab
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.os.Bundle
@@ -8,10 +9,10 @@
import android.widget.Toast
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import cn.sinata.rxnetty.Cache.CacheUtil
import cn.sinata.rxnetty.NettyClient
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
@@ -23,17 +24,23 @@
import com.okgoincar.base.AMapKit
import com.okgoincar.base.BaseEvent
import com.okgoincar.base.MyApplication
import com.okgoincar.bean.HomeDataBean
import com.okgoincar.bean.MainInfoBean
import com.okgoincar.bean.UserBean
import com.okgoincar.bean.UserInfoBean
import com.okgoincar.bean.*
import com.okgoincar.netUtls.Api
import com.okgoincar.netUtls.sendAudio
import com.okgoincar.slab.event.SlabMineEventActivity
import com.okgoincar.slab.util.DialogUtil
import com.okgoincar.utils.DateUtil
import com.okgoincar.utils.EasePopup.EasyPopup
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_login.*
import kotlinx.android.synthetic.main.slab_activity_main.*
import kotlinx.android.synthetic.main.slab_activity_main.tv_name
import org.greenrobot.eventbus.EventBus
import org.jetbrains.anko.startActivity
import org.jetbrains.anko.toast
import java.lang.Exception
class SlabMainActivity : MySlabBaseActivity(), AMapLocationListener {
@@ -50,46 +57,60 @@
    override fun setBlackMode(b: Boolean?) {
        super.setBlackMode(b)
        if (b!!) {
        if (b!!) { //晚上
            ct_bg.setBackgroundResource(R.color.black_191919)
            ll_top.setBackgroundResource(R.drawable.bg_green_top_black)
            tv_server_ing.textColor(this,R.color.write)
            iv_small.textColor(this,R.color.write)
            tv_wait_server.textColor(this,R.color.write)
            tv_code_num.textColor(this,R.color.write)
            tv_name.textColor(this,R.color.write)
            tv_car_num.textColor(this,R.color.write)
            tv_star_num.textColor(this,R.color.write)
            tv_current_time.textColor(this,R.color.write)
            tv_company.textColor(this,R.color.write)
            tv_time.textColor(this,R.color.write)
            ll_top.setBackgroundResource(R.drawable.bg_gray_top)
            tv_server_ing.textColor(this, R.color.write)
            iv_small.textColor(this, R.color.write)
            tv_wait_server.textColor(this, R.color.write)
            tv_code_num.textColor(this, R.color.write)
            tv_name.textColor(this, R.color.write)
            tv_car_num.textColor(this, R.color.write)
            tv_star_num.textColor(this, R.color.write)
            tv_current_time.textColor(this, R.color.write)
            tv_company.textColor(this, R.color.write)
            tv_time.textColor(this, R.color.write)
            tv_car_statue.textColor(this, R.color.write)
            tv_title.textColor(this, R.color.slab_yellow_zhong)
        } else {
            ll_top.setBackgroundResource(R.drawable.bg_white_round5)
            ll_top.setBackgroundResource(R.drawable.bg_green_top)
            ct_bg.setBackgroundResource(R.drawable.write)
            tv_server_ing.textColor(this,R.color.black)
            iv_small.textColor(this,R.color.black)
            tv_wait_server.textColor(this,R.color.black)
            tv_code_num.textColor(this,R.color.black)
            tv_name.textColor(this,R.color.black)
            tv_car_num.textColor(this,R.color.black)
            tv_star_num.textColor(this,R.color.black)
            tv_current_time.textColor(this,R.color.black)
            tv_company.textColor(this,R.color.black)
            tv_time.textColor(this,R.color.black)
            tv_server_ing.textColor(this, R.color.black)
            iv_small.textColor(this, R.color.black)
            tv_wait_server.textColor(this, R.color.black)
            tv_code_num.textColor(this, R.color.black)
            tv_name.textColor(this, R.color.black)
            tv_car_num.textColor(this, R.color.black)
            tv_star_num.textColor(this, R.color.black)
            tv_current_time.textColor(this, R.color.black)
            tv_company.textColor(this, R.color.black)
            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()
        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()
        }
    }
    private fun callPersion() {
        callNet(true, Api.queryInfo, getMapByAny()) {
@@ -99,14 +120,63 @@
        }
    }
    var popup:EasyPopup? = 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?.showCenter(window.decorView)
            }
        }
    }
    fun getSlabDelAndSurePopWindow(context: Context,sureStr:String,cancelStr:String,content:String,clickClose :() -> Unit,clickSure:() -> Unit): EasyPopup {
        var dialog = DialogUtil.getPopupwindow(context, R.layout.dialog_sure_and_del_slab)
        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
            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 =
@@ -116,13 +186,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, 1)
            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())
        }
    }
@@ -132,10 +206,17 @@
            var data = gson.fromJson<HomeDataBean>(it, HomeDataBean::class.java)
            homeDataBean = data
            tv_car.text = if (data.data.work == 1) "收车" else "出车"
            if (data.data.work == 1){
            if (data.data.work == 1) {
                MyApplication.getTTsManager().setVideoText("您正在上班中")
            }else{
                MyApplication.getTTsManager().setVideoText("您已下班")
            } else {
//                MyApplication.getTTsManager().setVideoText("您已下班")
                var mapC = getMapByAny()
                mapC["type"] = "2"
                callNet(true, Api.work2, mapC) {
                    homeDataBean?.data?.work = 1
                    tv_car.text = "收车"
                    MyApplication.getTTsManager().setVideoText("您正在上班中")
                }
            }
        }
@@ -157,9 +238,9 @@
    override fun setOnclick() {
        tv_server_ing.setOnClickListener {
            tv_server_ing.textColor(this, R.color.main_yellow)
            if (getNowTimeBlack()){
            if (getNowTimeBlack()) {
                tv_wait_server.textColor(this, R.color.white)
            }else{
            } else {
                tv_wait_server.textColor(this, R.color.black)
            }
            mainFragment.state = 1
@@ -168,9 +249,9 @@
        tv_wait_server.setOnClickListener {
            tv_wait_server.textColor(this, R.color.main_yellow)
            if (getNowTimeBlack()){
            if (getNowTimeBlack()) {
                tv_server_ing.textColor(this, R.color.white)
            }else{
            } else {
                tv_server_ing.textColor(this, R.color.black)
            }
            mainFragment.state = 2
@@ -178,7 +259,7 @@
        }
        tv_name.clickDelay {
            toast("点亮网约")
        }
        tv_car_num.clickDelay {
@@ -189,27 +270,52 @@
        }
        tv_more.clickDelay {
            startActivity<SlabOrderListActivity>()
        }
        ll_task.clickDelay {
            startActivity<SlabMineEventActivity>()
        }
        tv_title_top.clickDelay {
        }
        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
                    tv_car.text = "出车"
                    MyApplication.getTTsManager().setVideoText("您已下班")
                }
            } else {
                var map = getMapByAny()
                map["type"] = "2"
                callNet(true, Api.work2, map) {
                    homeDataBean?.data?.work = 1
                    tv_car.text = "收车"
                    MyApplication.getTTsManager().setVideoText("您正在上班中")
                }
            }
            //            if (homeDataBean?.data?.work == 1) {
//                callNet(true, Api.work2, getMapByAny()) {
//                    homeDataBean?.data?.work = 2
//                    tv_car.text = "出车"
//                    MyApplication.getTTsManager().setVideoText("您已下班")
//                }
//            } else {
//                var map = getMapByAny()
//                map["type"] = "2"
//                callNet(true, Api.work2, map) {
//                    homeDataBean?.data?.work = 1
//                    tv_car.text = "收车"
//                    MyApplication.getTTsManager().setVideoText("您正在上班中")
//                }
//            }
        }
    }
@@ -224,7 +330,7 @@
                .show()
            mBackAppTime = System.currentTimeMillis()
        } else {
            closeAll()
            moveTaskToBack(true)
        }
    }
@@ -239,22 +345,102 @@
                    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("高德位置是空的")
        if (p0 == null) {
//            toast("高德位置是空的")
            return
        }
        if (p0.errorCode == 0) {
            toast("定位成功")
//            toast("定位成功")
            MyApplication.aMapLocation = p0
            CacheKey.putKeyStr("location", Gson().toJson(p0))
        }else{
        } else {
            p0.let {
                toast("定位失败"+it.errorCode.toString())
//                toast("定位失败" + it.errorCode.toString())
            }
        }
    }
    private fun callVersion() {
        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.mandatory == 0) {
                    var pop =
                        DialogUtil.getSlabDelAndSurePopWindow(true,this, "确定", "取消", "有新版本是否更新", {}) {
                            DownloadUtil(this).downloadAPK(bean.data.url, "ok出行车载端")
                        }
                    pop.showCenter(window.decorView)
                } else {
                    var pop = DialogUtil.getSlabDelAndSurePopWindow(
                        false,
                        this,
                        "确定",
                        "取消",
                        "版本已过时,强制升级!",
                        {}) {
                        DownloadUtil(this).downloadAPK(bean.data.url, "ok出行车载端")
                        toast("后台开始下载,请等待")
                    }
                    pop.showCenter(window.decorView)
                }
            } else {
            }
        }
    }
    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()
        }
    }
}