From f2124ee623ac169d5f82bc85eba6ebf377f58b07 Mon Sep 17 00:00:00 2001
From: liugl <liugl@sinata.cn>
Date: 星期二, 01 九月 2020 16:22:36 +0800
Subject: [PATCH] 8.31

---
 app/src/main/java/com/okgoincar/slab/SlabOrderOverActivity.kt |   61 +++++++++++++++++++++---------
 1 files changed, 42 insertions(+), 19 deletions(-)

diff --git a/app/src/main/java/com/okgoincar/slab/SlabOrderOverActivity.kt b/app/src/main/java/com/okgoincar/slab/SlabOrderOverActivity.kt
index 03d7355..34b600a 100644
--- a/app/src/main/java/com/okgoincar/slab/SlabOrderOverActivity.kt
+++ b/app/src/main/java/com/okgoincar/slab/SlabOrderOverActivity.kt
@@ -11,6 +11,7 @@
 import com.okgoincar.base.MyApplication
 import com.okgoincar.bean.OrderBean
 import com.okgoincar.bean.OrderSimpleData
+import com.okgoincar.bean.OrderStatueBean
 import com.okgoincar.netUtls.Api
 import com.okgoincar.netUtls.timeOver
 import com.okgoincar.utils.MyUtils
@@ -98,7 +99,7 @@
         callNet(this, Api.queryOrderInfo, map) {
             orderBean = gson.fromJson(it, OrderBean::class.java)
             showUi(orderBean)
-//            addSocketLisener()
+//            addSocketLisener(orderBean)
             checkOrderStatue()
         }
     }
@@ -143,22 +144,31 @@
         }
     }
 
-    private fun addSocketLisener() {
+    private fun addSocketLisener(orderBean: OrderBean?) {
         MyApplication.addOrderView(object : MyApplication.OrderStatueView {
             override fun orderInfo(data: OrderSimpleData?) {
                 data?.let {
                     if (it.status == 8||it.status == 7) {
-                        tv_pay_result_money.textColor(this@SlabOrderOverActivity,R.color.slab_green_over)
+                        tv_pay_result_money.textColor(
+                            this@SlabOrderOverActivity,
+                            R.color.slab_green_over
+                        )
                         Handler(Looper.getMainLooper()).post {
-                            time = timeOver (20000){
+                            if (isPlay)
+                            {
+                                return@post
+                            }
+                            isPlay = true
+                            MyApplication.getTTsManager().setVideoText("乘客已支付"+orderBean?.data?.orderMoney.toString()+"元")
+                            time = timeOver(20000) {
                                 tv_title_slab.text = "已完成($it)"
-                                if (it == 0){
-                                    if (time != null){
+                                if (it == 0) {
+                                    if (time != null) {
                                         time!!.cancel()
                                     }
                                     try {
                                         onBackPressed()
-                                    }catch (e:Exception){
+                                    } catch (e: Exception) {
                                     }
                                 }
                             }
@@ -182,31 +192,46 @@
     }
 
     var handler: Handler? = null
+    var isPlay = false
 
     fun checkOrderStatue() {
         if (handler == null) {
             handler = Handler(mainLooper)
-            handler!!.postDelayed({
-                checkOrderStatue()
-            }, 3000)
         }
+        handler!!.postDelayed({
+            checkOrderStatue()
+        }, 3000)
         var map = getMapByAny()
-        map["orderId"] = orderId
-        map["orderType"] = orderType
-        callNet(false,Api.queryOrderInfo, map) {
+//        map["orderId"] = orderId
+//        map["orderType"] = orderType
+        callNet(false,Api.orderStateSocket, map) {
             val orderSimpleData =
                 Gson().fromJson(
                     it,
-                    OrderBean::class.java
+                    OrderStatueBean::class.java
                 )
-            orderSimpleData?.let {
-                if (it.data.orderState == 8) {
-                    MyApplication.getTTsManager().setVideoText("乘客已支付")
+            orderSimpleData?.data?.let {
+                var currentBean:OrderStatueBean.DataBean? = null
+                for (item in it){
+                    if (item.orderId ==orderBean.data?.orderId ){
+                        currentBean = item
+                    }
+                }
+                if (it.size == 0 || currentBean == null){
+                    return@callNet
+                }
+                if (currentBean.state == 8) {
                     tv_pay_result_money.textColor(
                         this@SlabOrderOverActivity,
                         R.color.slab_green_over
                     )
                     Handler(Looper.getMainLooper()).post {
+                        if (isPlay)
+                        {
+                            return@post
+                        }
+                        isPlay = true
+                        MyApplication.getTTsManager().setVideoText("乘客已支付"+ orderBean.data?.orderMoney.toString()+"元")
                         time = timeOver(20000) {
                             tv_title_slab.text = "已完成($it)"
                             if (it == 0) {
@@ -220,8 +245,6 @@
                             }
                         }
                     }
-                }else{
-                    handler?.postDelayed({ checkOrderStatue() }, 3000)
                 }
             }
         }

--
Gitblit v1.7.1