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 |  213 ++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 155 insertions(+), 58 deletions(-)

diff --git a/app/src/main/java/com/okgoincar/slab/SlabMainActivity.kt b/app/src/main/java/com/okgoincar/slab/SlabMainActivity.kt
index e3e7b79..3c361be 100644
--- a/app/src/main/java/com/okgoincar/slab/SlabMainActivity.kt
+++ b/app/src/main/java/com/okgoincar/slab/SlabMainActivity.kt
@@ -1,22 +1,20 @@
 package com.okgoincar.slab
 
 import android.content.Context
-import android.content.Intent
-import android.content.IntentFilter
-import android.os.Bundle
 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.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
@@ -24,19 +22,22 @@
 import com.okgoincar.base.MyApplication
 import com.okgoincar.bean.*
 import com.okgoincar.netUtls.Api
-import com.okgoincar.netUtls.sendAudio
+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.slab_activity_login.*
+import kotlinx.android.synthetic.main.dialog_sure_and_del_slab.view.*
 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 {
 
@@ -83,25 +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)
-        callLogin {
-            view_mode.isSelected = !getNowTimeBlack()
-            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()
+                callVersion()
+            }
+        } else {
+            showNoneNetDialog()
         }
-        //重重新登录 用来上线
     }
 
 
@@ -113,18 +116,82 @@
         }
     }
 
+    var popup: PopupWindow? = null
+
     override fun onResume() {
         super.onResume()
+        showNoneNetDialog()
         try {
-            mainFragment.refresh()
-        }catch (e:Exception){
+            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 =
@@ -134,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())
         }
     }
 
@@ -155,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 = "收车"
@@ -203,7 +274,7 @@
         }
 
         tv_name.clickDelay {
-            toast("点亮网约")
+
         }
 
         tv_car_num.clickDelay {
@@ -218,12 +289,12 @@
             startActivity<SlabOrderListActivity>()
         }
 
-
         ll_task.clickDelay {
             startActivity<SlabMineEventActivity>()
         }
 
         tv_title_top.clickDelay {
+//            showOrder("3170","2",100,1)
         }
 
         view_mode.clickDelay {
@@ -232,10 +303,12 @@
                 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()
             }
 
 
@@ -267,6 +340,9 @@
     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()
@@ -274,6 +350,13 @@
         } else {
             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?) {
@@ -287,11 +370,16 @@
                     toast("收到显示屏信息")
                 }
             }
+            BaseEvent.UPDATA_MAIN_CAR -> {
+                try {
+                    mainFragment.refresh()
+                } catch (e: Exception) {
+                }
+            }
             BaseEvent.ERROR_INFO -> {
                 try {
                     mainFragment.refresh()
-                }catch (e:Exception){
-
+                } catch (e: Exception) {
                 }
             }
         }
@@ -299,16 +387,16 @@
 
     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())
             }
         }
     }
@@ -317,19 +405,26 @@
         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, "确定", "取消", "有新版本是否更新", {}) {
+                        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("后台开始下载,请等待")
@@ -338,32 +433,17 @@
                 }
 
             } else {
-                toast("已经是最新版本")
             }
         }
     }
-
 
     private fun callLogin(ok: () -> Unit) {
         var jobNum = CacheKey.getKeyStr("jobNum")
         var identification = CacheKey.getKeyStr("identification")
         if (jobNum.isNotEmpty()) {
             var map = getMapByAny()
-            map["jobNum"] = jobNum
-            callNet(true, Api.loginByJobNumber, map) {
-                var bean = gson.fromJson<LoginBean>(it, LoginBean::class.java)
-                CacheKey.putKeyStr("jobNum", jobNum)
-                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()
-            }
-        } else if (identification.isNotEmpty()) {
-            var map = getMapByAny()
-            map["identification"] = identification
-            callNet(true, Api.loginByIdentification, map) {
+            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)
@@ -372,6 +452,23 @@
                 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()

--
Gitblit v1.7.1