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/VoiceOrderFragment.kt |   71 ++++++++++++++++++++++++++---------
 1 files changed, 53 insertions(+), 18 deletions(-)

diff --git a/app/src/main/java/com/ziang/driver/ui/main/VoiceOrderFragment.kt b/app/src/main/java/com/ziang/driver/ui/main/VoiceOrderFragment.kt
index 52ab3aa..7666d14 100644
--- a/app/src/main/java/com/ziang/driver/ui/main/VoiceOrderFragment.kt
+++ b/app/src/main/java/com/ziang/driver/ui/main/VoiceOrderFragment.kt
@@ -12,6 +12,8 @@
 import com.ziang.driver.utils.AudioRecoderUtils
 import kotlinx.android.synthetic.main.dialog_voice_order.*
 import org.greenrobot.eventbus.EventBus
+import org.greenrobot.eventbus.Subscribe
+import org.greenrobot.eventbus.ThreadMode
 import org.jetbrains.anko.longToast
 import org.jetbrains.anko.startActivity
 
@@ -37,50 +39,68 @@
     }
 
     val fromList by lazy {
-        intent?.getBooleanExtra("fromList",false)?:false
+        intent?.getBooleanExtra("fromList", false) ?: false
     }
 
     val needPlayRing by lazy {
-        intent?.getBooleanExtra("needPlayRing",true)?:true
+        intent?.getBooleanExtra("needPlayRing", true) ?: true
     }
 
 
-
     lateinit var time: CountDownTimer
-    private val audioRecoderUtils by lazy { AudioRecoderUtils() }
 
 
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
+        EventBus.getDefault().register(this)
         var strBtn = "抢单"
         if (type == 2) {
             strBtn = "确定"
         }
         time = timeOver((timeDown!!.toLong() * 1000L)) {
             if (it == 0) {
-                audioRecoderUtils.stopPlayMusic()
                 finish()
             } else {
                 tv_sure.text = strBtn + it.toString() + "S"
             }
         }
         tv_close.clickDelay {
-            audioRecoderUtils.stopPlayMusic()
             finish()
         }
         tv_sure.clickDelay {
             showGetOrder()
         }
-        if (needPlayRing)
-            AudioRecoderUtils().startplayMusic(this,Const.voiceOrder)
-        iv_voice.postDelayed({
-            audioRecoderUtils.startplayMusic(this,if (fromList) audio else MyApplication.voiceOrder?.audioLinkUrl)
-            EventBus.getDefault().post(BaseEvent(BaseEvent.APP_LOG,"实际播放路径:${if (fromList) audio else MyApplication.voiceOrder?.audioLinkUrl}"))
-        },2000)
-        iv_voice.clickDelay {
-            audioRecoderUtils.startplayMusic(this,if (fromList) audio else MyApplication.voiceOrder?.audioLinkUrl)
+        if (needPlayRing){
+            AudioRecoderUtils.getInstance().startplayMusic(this, Const.voiceOrder)
+            if (fromList){
+                AudioRecoderUtils.getInstance().startplayMusic(this, audio)
+            }else{
+                AudioRecoderUtils.getInstance().startplayMusic(this, MyApplication.voiceOrder?.audioLinkUrl)
+            }
         }
-        EventBus.getDefault().post(BaseEvent(BaseEvent.APP_LOG,"弹窗订单id:$orderId ,声音路径:$audio"))
+
+        iv_voice.postDelayed({
+            if (!isFinishing){
+//                AudioRecoderUtils.getInstance().startplayMusic(
+//                    this,
+//                    if (fromList) audio else MyApplication.voiceOrder?.audioLinkUrl
+//                )
+            }
+            EventBus.getDefault().post(
+                BaseEvent(
+                    BaseEvent.APP_LOG,
+                    "实际播放路径:${if (fromList) audio else MyApplication.voiceOrder?.audioLinkUrl}"
+                )
+            )
+        }, 500)
+        iv_voice.clickDelay {
+            AudioRecoderUtils.getInstance().startplayMusic(
+                this,
+                if (fromList) audio else MyApplication.voiceOrder?.audioLinkUrl
+            )
+        }
+        EventBus.getDefault()
+            .post(BaseEvent(BaseEvent.APP_LOG, "弹窗订单id:$orderId ,声音路径:$audio"))
     }
 
     override fun initView() {
@@ -93,6 +113,8 @@
 
     override fun onDestroy() {
         super.onDestroy()
+        EventBus.getDefault().unregister(this)
+//        AudioRecoderUtils.getInstance().stopPlayMusic()
         time.cancel()
     }
 
@@ -107,12 +129,25 @@
         map["orderType"] = orderType
         callNet(this, Api.grabOrder, map) {
             Toast.create(this).show("抢单成功")
-            EventBus.getDefault().post(BaseEvent(BaseEvent.APP_LOG,"抢单成功的id:$id"))
+            EventBus.getDefault().post(BaseEvent(BaseEvent.APP_LOG, "抢单成功的id:$id"))
             startActivity<CallOrderActivity>(
                 "orderId" to id,
-                "orderType" to orderType)
-            audioRecoderUtils.stopPlayMusic()
+                "orderType" to orderType
+            )
+
             finish()
         }
     }
+
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    open fun onEventMainThread(event: BaseEvent) {
+        when (event.code) {
+            BaseEvent.ORDER_GRAB_EVENT -> {
+                if (orderId == event.msg)
+                    finish()
+            }
+        }
+    }
+
+
 }
\ No newline at end of file

--
Gitblit v1.7.1