From bd6a8872438a35d47821c5d5da7fe149e5fed3ab Mon Sep 17 00:00:00 2001
From: lmw <125975490@qq.com>
Date: 星期三, 21 六月 2023 09:53:36 +0800
Subject: [PATCH] 处理收不到广播

---
 app/src/main/java/com/okgoincar/slab/SlabMainActivity.kt |  377 ++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 297 insertions(+), 80 deletions(-)

diff --git a/app/src/main/java/com/okgoincar/slab/SlabMainActivity.kt b/app/src/main/java/com/okgoincar/slab/SlabMainActivity.kt
index 61dd992..3c361be 100644
--- a/app/src/main/java/com/okgoincar/slab/SlabMainActivity.kt
+++ b/app/src/main/java/com/okgoincar/slab/SlabMainActivity.kt
@@ -1,36 +1,40 @@
 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.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
 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.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.jetbrains.anko.startActivity
 import org.jetbrains.anko.toast
@@ -50,46 +54,59 @@
 
     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 +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 =
@@ -116,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, 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 +221,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,4"
+                callNet(true, Api.work2, mapC) {
+                    homeDataBean?.data?.work = 1
+                    tv_car.text = "收车"
+                    MyApplication.getTTsManager().setVideoText("您正在上班中")
+                }
             }
         }
 
@@ -157,9 +253,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 +264,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 +274,7 @@
         }
 
         tv_name.clickDelay {
-            toast("点亮网约")
+
         }
 
         tv_car_num.clickDelay {
@@ -189,27 +285,52 @@
 
         }
 
+        tv_more.clickDelay {
+            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
-                    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("您正在上班中")
+//                }
+//            }
         }
 
     }
@@ -219,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?) {
@@ -239,22 +370,108 @@
                     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()
+        }
+    }
 }
\ No newline at end of file

--
Gitblit v1.7.1