From 3d631dbadf98f3f77c6e955cb36219217ef73ab5 Mon Sep 17 00:00:00 2001
From: 唐浩 <15928265276@163.com>
Date: 星期二, 09 九月 2025 12:56:48 +0800
Subject: [PATCH] change by tanghao

---
 app/src/main/java/com/ziang/driver/ui/main/MainActivity.kt |  217 +++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 164 insertions(+), 53 deletions(-)

diff --git a/app/src/main/java/com/ziang/driver/ui/main/MainActivity.kt b/app/src/main/java/com/ziang/driver/ui/main/MainActivity.kt
index 61bda89..2681803 100644
--- a/app/src/main/java/com/ziang/driver/ui/main/MainActivity.kt
+++ b/app/src/main/java/com/ziang/driver/ui/main/MainActivity.kt
@@ -8,10 +8,12 @@
 import android.net.Uri
 import android.os.Handler
 import android.os.Looper
+import android.os.Message
 import android.provider.Settings
 import android.view.Gravity
 import android.widget.Toast
 import androidx.core.app.ActivityCompat
+import androidx.recyclerview.widget.LinearLayoutManager
 import cn.sinata.rxnetty.NettyClient
 import cn.sinata.xldutils.utils.*
 import com.amap.api.location.AMapLocation
@@ -44,7 +46,9 @@
 import com.umeng.socialize.PlatformConfig
 import com.ziang.driver.bean.*
 import com.ziang.driver.netUtls.*
+import com.ziang.driver.ui.adapter.OrderHallAdapter
 import com.ziang.driver.ui.mine.RechargeActivity
+import com.ziang.driver.utils.DES
 import kotlinx.android.synthetic.main.activity_main.*
 import kotlinx.android.synthetic.main.app_title.*
 import kotlinx.android.synthetic.main.dialog_sure_and_del.view.*
@@ -59,51 +63,70 @@
     val mainFragment by lazy {
         MainFragment()
     }
-
+    val smallFragment by lazy {
+        MainSmallFragment()
+    }
+    val hallAdapter by lazy {
+        OrderHallAdapter()
+    }
+    var queryNum = 0
+//    val evalFrag = OrderHallFragment()
     var homeDataBean: HomeDataBean? = null
 
     override fun setContentView() {
         setContentView(R.layout.activity_main)
     }
+
     private val EasyFloatTag = "BACKGROUND"
     private var floater: EasyFloat.Builder? = null //浮窗
-    private var paused:Boolean = false
+    private var paused: Boolean = false
+
+    private var timeHandler = Handler(Looper.getMainLooper()) //用于检测小程序订单时间
+
 
     override fun initView() {
-        MapsInitializer.updatePrivacyShow(this,true,true)
-        MapsInitializer.updatePrivacyAgree(this,true)
+        MapsInitializer.updatePrivacyShow(this, true, true)
+        MapsInitializer.updatePrivacyAgree(this, true)
 //        var packageName = "com.android.providers.downloads";
 //        var intent =  Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
 //    intent.setData(Uri.parse("package:" + packageName));
 //    startActivity(intent);
+//        addFragment(evalFrag, R.id.fl_container_t)
+        recycler_view_hall.layoutManager = LinearLayoutManager(this)
+        recycler_view_hall.adapter = hallAdapter
+        upDateSmall()
         MyApplication.getInstance()?.initPersionDate()
         setTitleText("子昂出行司机")
-        if (CacheKey.getKeyStr(Const.REFUSE_LOCATION).isNotEmpty()&&!RxPermissions(this).isGranted(
+        if (CacheKey.getKeyStr(Const.REFUSE_LOCATION)
+                .isNotEmpty() && !RxPermissions(this).isGranted(
                 Manifest.permission.ACCESS_FINE_LOCATION
-            )){
+            )
+        ) {
             toast("没有定位权限,您将无法收到新订单推送")
-        }else{
-            if (!RxPermissions(this).isGranted(Manifest.permission.ACCESS_FINE_LOCATION)){
+        } else {
+            if (!RxPermissions(this).isGranted(Manifest.permission.ACCESS_FINE_LOCATION)) {
                 DialogUtil.getDelAndSureDialog(
                     this,
                     "去授权",
                     "否",
                     "《子昂出行司机》需要获取您的当前位置信息,用于查询当前城市是否开通服务,我们会将您的位置实时上传至后端为您匹配和推送附近订单。如果拒绝定位权限,您将无法正常接单。",
                     {
-                    }){
+                    }) {
                     val subscribe =
-                        RxPermissions(this).request(Manifest.permission.ACCESS_FINE_LOCATION).subscribe {
-                            if (!it){
-                                toast("没有定位权限,您将无法收到新订单推送")
-                                CacheKey.putKeyStr(Const.REFUSE_LOCATION, "1")
+                        RxPermissions(this).request(Manifest.permission.ACCESS_FINE_LOCATION)
+                            .subscribe {
+                                if (!it) {
+                                    toast("没有定位权限,您将无法收到新订单推送")
+                                    CacheKey.putKeyStr(Const.REFUSE_LOCATION, "1")
+                                }
                             }
-                        }
                 }
             }
         }
         tv_Left.setDrawableLeft(R.mipmap.icon_nav_user)
         iv_right_title.setImageResource(R.mipmap.icon_nav_news)
-        addFragment(mainFragment, R.id.rl_container)
+        addFragment(smallFragment, R.id.rl_container)
+//        addFragment(mainFragment, R.id.rl_container)
         AMapKit.initLocation(this, this)
         MyApplication.isLogin = true
         beOnDuty(false)
@@ -112,18 +135,53 @@
         callVersion()
         checkGps()
         MyApplication.addOrderView(qeeOrderView)
+
+    }
+
+    private fun callHall() {
+        var map = getMapByAny()
+        map.set("size",100)
+        map.set("pageNum",1)
+        callNetAndError(false,Api.queryHallOrderList,map,{
+            var data = gson.fromJson<OrderHallBean>(it,OrderHallBean::class.java)
+            hallAdapter.data.clear()
+            hallAdapter.data.addAll(data.data.list)
+            hallAdapter.notifyDataSetChanged()
+            tv_order_big_all.text = "接单大厅("+hallAdapter.data.size+")"
+        }){
+
+        }
+    }
+
+
+
+    /***
+     * 一秒检测一次小程序订单时间
+     */
+    private fun upDateSmall() {
+        timeHandler.postDelayed({
+            queryNum++
+            var size = smallFragment.mainSmallAdapter.data.size
+            tv_order_small.text = "小程序订单($size)"
+            upDateSmall()
+            if (queryNum%10 == 0){
+                callHall()
+            }
+        }, 1000)
     }
 
 
     var qeeOrderView = object : MyApplication.OrderStatueView {
         override fun orderInfo(data: OrderSimpleData?) {
             data?.let {
-                when(it.orderType){
-                    1,2,3 -> {
+                when (it.orderType) {
+                    1, 2, 3 -> {
                         if (it.status == 10 || it.status == 12) {
                             Handler(Looper.getMainLooper()).post {
-                                mainFragment?.refresh()
-                                MyApplication.getTTsManager().setVideoText("有用户订单被取消或改派")
+                                if (mainFragment?.isAdded && mainFragment?.isVisible){
+                                    mainFragment?.refresh()
+                                    MyApplication.getTTsManager().setVideoText("有用户订单被取消或改派")
+                                }
                             }
                         }
                     }
@@ -134,10 +192,15 @@
     }
 
     private fun checkGps() {
-        if (!AMapKit.isLocServiceEnable(this)){
-            DialogUtil.getDelAndSureDialog(this,"查看定位","退出","您暂未开启手机定位GPS,是否前往开启?",{
-                onBackPressed()
-            }){
+        if (!AMapKit.isLocServiceEnable(this)) {
+            DialogUtil.getDelAndSureDialog(
+                this,
+                "查看定位",
+                "退出",
+                "您暂未开启手机定位GPS,是否前往开启?",
+                {
+                    onBackPressed()
+                }) {
                 val intent = Intent()
                 intent.action = Settings.ACTION_LOCATION_SOURCE_SETTINGS;
                 intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK;
@@ -156,7 +219,7 @@
     }
 
     private fun showFloater() {
-        if (floater == null){
+        if (floater == null) {
             floater = EasyFloat.with(applicationContext)
                 .setLayout(R.layout.layout_floter, OnInvokeView {
                     it.setOnClickListener {
@@ -195,7 +258,7 @@
                         download(data.data.url)
                         ToastUtils.showShortToast(this, "后台开始下载,请等待")
                     })
-                }else{
+                } else {
 //                    toast("已经是最新版本")
                 }
             } else {
@@ -208,17 +271,17 @@
         var map = getMapByAny()
         map["pageNum"] = 1
         map["size"] = 1
-        callNet(false,Api.queryHallOrderList, map) {
+        callNet(false, Api.queryHallOrderList, map) {
             val fromJson = gson.fromJson(it, OrderHallBean::class.java)
-            tv_count.text = (fromJson?.data?.orderCount?:0).toString()
+            tv_count.text = (fromJson?.data?.orderCount ?: 0).toString()
             if (!paused)
                 tv_count.postDelayed({
                     callOrderCount()
-                },2000)
+                }, 2000)
         }
     }
 
-    private fun download(url:String){
+    private fun download(url: String) {
         val p = RxPermissions(this).request(Manifest.permission.WRITE_EXTERNAL_STORAGE).subscribe {
             if (it)
                 DownloadUtil(this).downloadAPK(url, "子昂出行司机")
@@ -230,8 +293,11 @@
     override fun onResume() {
         super.onResume()
         paused = false
-        callOrderCount()
-        mainFragment?.refresh()
+//        callOrderCount()
+//        mainFragment.showQuan = false
+        if (mainFragment != null && mainFragment.isAdded && mainFragment.isVisible){
+            mainFragment?.refresh()
+        }
     }
 
     override fun onPause() {
@@ -239,13 +305,20 @@
         paused = true
     }
 
-    fun beOnDuty(b:Boolean){
-        if (b){
+    fun beOnDuty(b: Boolean) {
+        if (b) {
             avv_anim.visible()
             tv_up_avv.visible()
-        }else{
+        } else {
             avv_anim.gone()
             tv_up_avv.gone()
+        }
+    }
+
+    override fun onDestroy() {
+        super.onDestroy()
+        if (timeHandler != null) {
+            timeHandler.removeCallbacksAndMessages(0)
         }
     }
 
@@ -262,15 +335,20 @@
             tv_car_num.text = data.data.licensePlate
             tv_lien_name.text = data.data.brand.toString()
             tv_car.text = if (data.data.work == 1) "下班" else "出车"
-            if (data.data.work == 1){
+            if (data.data.work == 1) {
                 MyApplication.getTTsManager().setVideoText("您正在上班中")
                 beOnDuty(true)
                 if (!Settings.canDrawOverlays(this) && CacheKey.getKeyStr("isRefusedFloat")
                         .isNullOrEmpty()
                 ) { //没有浮窗权限并且没有拒绝过
-                    DialogUtil.getDelAndSureDialog(this, "去开启", "取消", "为了增加后台推单的稳定性,我们需要开启悬浮窗口权限", {
-                        CacheKey.putKeyStr("isRefusedFloat", "1")
-                    }) {
+                    DialogUtil.getDelAndSureDialog(
+                        this,
+                        "去开启",
+                        "取消",
+                        "为了增加后台推单的稳定性,我们需要开启悬浮窗口权限",
+                        {
+                            CacheKey.putKeyStr("isRefusedFloat", "1")
+                        }) {
                         var intent = Intent(
                             Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
                             Uri.parse("package:" + packageName)
@@ -278,7 +356,7 @@
                         startActivityForResult(intent, 1234)
                     }
                 }
-            }else{
+            } else {
                 MyApplication.getTTsManager().setVideoText("您已下班")
                 beOnDuty(false)
             }
@@ -289,7 +367,7 @@
         }
     }
 
-    fun callNum(){
+    fun callNum() {
         var map = getMapByAny()
         callNet(Api.queryHomeData, map) {
             var data = gson.fromJson<HomeDataBean>(it, HomeDataBean::class.java)
@@ -312,6 +390,8 @@
         tv_server_ing.setOnClickListener {
             tv_server_ing.textColor(this, R.color.main_yellow)
             tv_wait_server.textColor(this, R.color.main_gray)
+            tv_order_small.textColor(this, R.color.main_gray)
+            addFragment(mainFragment, R.id.rl_container)
             mainFragment.state = 1
             mainFragment.autoRefresh()
         }
@@ -319,8 +399,19 @@
         tv_wait_server.setOnClickListener {
             tv_server_ing.textColor(this, R.color.main_gray)
             tv_wait_server.textColor(this, R.color.main_yellow)
+            tv_order_small.textColor(this, R.color.main_gray)
+            addFragment(mainFragment, R.id.rl_container)
             mainFragment.state = 2
             mainFragment.autoRefresh()
+        }
+
+        tv_order_small.clickDelay {
+            tv_server_ing.textColor(this, R.color.main_gray)
+            tv_wait_server.textColor(this, R.color.main_gray)
+            tv_order_small.textColor(this, R.color.main_yellow)
+            addFragment(smallFragment, R.id.rl_container)
+            smallFragment.mainSmallAdapter.notifyDataSetChanged()
+
         }
 
         tv_Left.clickDelay {
@@ -349,29 +440,29 @@
                     MyApplication.getTTsManager().setVideoText("您已下班")
                 }
             } else {
-                callNet(Api.queryMyBusiness, getMapByAny()){
+                callNet(Api.queryMyBusiness, getMapByAny()) {
                     var bean = gson.fromJson(it, SelectServerModeBean::class.java).data
-                    if (bean.isEmpty()){
+                    if (bean.isEmpty()) {
                         toast("请选择接单业务")
                         return@callNet
                     }
-                    if (bean.size > 1){
+                    if (bean.size > 1) {
                         startActivity<SelectServerModeActivity>()
-                    }else{
-                        var map= getMapByAny()
+                    } else {
+                        var map = getMapByAny()
                         map["type"] = bean[0].id
-                        callNetNoToast(Api.work,map,{
+                        callNetNoToast(Api.work, map, {
                             toast("上班成功")
                             beOnDuty(true)
                             EventBus.getDefault().post(BaseEvent(BaseEvent.START_CAR))
-                        }){
-                            if (it?.contains("余额") == true){
-                                val dialog = DialogUtil.getOnlySureDialog(this,it){
+                        }) {
+                            if (it?.contains("余额") == true) {
+                                val dialog = DialogUtil.getOnlySureDialog(this, it) {
                                     startActivity<RechargeActivity>()
                                 }
                                 val view = DialogUtil.getView(dialog)
                                 view.tv_sure_base.text = "去充值"
-                            }else{
+                            } else {
                                 showToast(it)
                             }
                         }
@@ -405,7 +496,6 @@
     }
 
 
-
     private
     var mBackAppTime: Long = 0
 
@@ -425,26 +515,47 @@
                 beOnDuty(true)
                 initCall()
             }
+
             BaseEvent.CHANGE_CAR_SUCCESS -> {
                 initCall()
             }
+
             BaseEvent.CALL_NUM_MAIN -> {
                 callNum()
             }
+
             BaseEvent.REFREASH_MAIN -> {
                 mainFragment?.refresh()
             }
+
             BaseEvent.APP_BACKGROUND -> {
-                if (getUserId() != -1 &&homeDataBean?.data?.work == 1 && Settings.canDrawOverlays(this) ) {
+                if (getUserId() != -1 && homeDataBean?.data?.work == 1 && Settings.canDrawOverlays(
+                        this
+                    )
+                ) {
                     showFloater()
                     EasyFloat.show(EasyFloatTag)
                 }
             }
+
             BaseEvent.APP_FOREGROUND -> {
                 EasyFloat.hide(EasyFloatTag)
             }
+
             BaseEvent.APP_LOG -> {
 //                tv_log.text = "${TimeUtils.getCurrentTimeMillisecond(System.currentTimeMillis())} ${event.msg}\n"+tv_log.text
+            }
+
+            BaseEvent.GET_SMALL_ORDER -> {
+                //小程序订单来了
+                var dataStr = event.msg
+                val data = Gson().fromJson<OrderBean>(dataStr, OrderBean::class.java)
+                data.time = System.currentTimeMillis()
+                data.overTime =  event.typeTwo.toLong()
+                smallFragment.setOrdertypeA(event.type)
+                smallFragment.setDate(data)
+                var size = smallFragment.mainSmallAdapter.data.size
+                tv_order_small.text = "小程序订单($size)"
             }
         }
     }
@@ -452,7 +563,7 @@
     override fun onLocationChanged(p0: AMapLocation?) {
         if (p0?.errorCode == 0) {
             MyApplication.aMapLocation = p0
-            CacheKey.putKeyStr("location",Gson().toJson(p0))
+            CacheKey.putKeyStr("location", Gson().toJson(p0))
         }
     }
 }
\ No newline at end of file

--
Gitblit v1.7.1