Преглед на файлове

更改新订单通知逻辑

zhaofuxin преди 4 години
родител
ревизия
0e383c617e

+ 20 - 4
app/src/main/java/com/jld/vod/view/fragment/HostAllOrdersFragment.kt

@@ -1,5 +1,7 @@
 package com.jld.vod.view.fragment
 
+import android.content.Context
+import android.os.Bundle
 import android.os.Handler
 import androidx.lifecycle.ViewModelProviders
 import androidx.lifecycle.lifecycleScope
@@ -88,17 +90,31 @@ class HostAllOrdersFragment : BaseFragment() {
 
         refreshNewOrder()//心跳刷新订单
     }
+
+    override fun onHiddenChanged(hidden: Boolean) {
+        super.onHiddenChanged(hidden)
+        mHandler.removeCallbacks(mRunnable)
+    }
+
     /**
      * 心跳刷新订单
      */
     private fun refreshNewOrder() {
-        mHandler.postDelayed(Runnable {
-            LogUtils.logD("refreshNewOrder")
-            listAdapter.refresh()
+        mHandler.postDelayed(mRunnable, 3000)
+    }
+    private val mRunnable = object :Runnable{
+        override fun run() {
+            if (listAdapter != null)
+            {
+                listAdapter.refresh()
+               // LogUtils.logD("refreshNewOrder")
+            }
             //重新调用
             refreshNewOrder()
-        }, 3000)
+        }
+
     }
+
     override fun initTitle(): TitleBar? {
         return null
     }

+ 29 - 1
app/src/main/java/com/jld/vod/view/fragment/HostNewOrdersFragment.kt

@@ -1,5 +1,6 @@
 package com.jld.vod.view.fragment
 
+import android.os.Handler
 import androidx.lifecycle.ViewModelProviders
 import androidx.lifecycle.lifecycleScope
 import androidx.lifecycle.observe
@@ -7,6 +8,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
 import androidx.recyclerview.widget.RecyclerView
 import com.jld.vod.R
 import com.jld.vod.base.BaseFragment
+import com.jld.vod.utils.LogUtils
 import com.jld.vod.utils.SharedPrefUtils
 import com.jld.vod.view.adapter.HostAllOrdersAdapter
 import com.jld.vod.viewmodel.MyOrderViewModel
@@ -19,6 +21,9 @@ import kotlinx.coroutines.flow.collectLatest
 class HostNewOrdersFragment : BaseFragment() {
     private lateinit var myOrderViewModel: MyOrderViewModel
     private lateinit var mRootRecyclerView : RecyclerView
+    private val mHandler = Handler()
+    private lateinit var listAdapter:HostAllOrdersAdapter
+
     override fun getLayoutId(): Int {
         return R.layout.fragment_host_order
     }
@@ -30,7 +35,7 @@ class HostNewOrdersFragment : BaseFragment() {
         myOrderViewModel = ViewModelProviders.of(this)
                 .get(MyOrderViewModel::class.java)
         //购物车列表
-        val listAdapter = HostAllOrdersAdapter()
+        listAdapter = HostAllOrdersAdapter()
         val layoutManager = LinearLayoutManager(activity,RecyclerView.HORIZONTAL, false)
         mRootRecyclerView.setLayoutManager(layoutManager)
         mRootRecyclerView!!.adapter = listAdapter
@@ -80,8 +85,31 @@ class HostNewOrdersFragment : BaseFragment() {
                 listAdapter.refresh()
             }
         })
+        refreshNewOrder()//心跳刷新订单
+    }
+    override fun onHiddenChanged(hidden: Boolean) {
+        super.onHiddenChanged(hidden)
+        mHandler.removeCallbacks(mRunnable)
     }
 
+    /**
+     * 心跳刷新订单
+     */
+    private fun refreshNewOrder() {
+        mHandler.postDelayed(mRunnable, 3000)
+    }
+    private val mRunnable = object :Runnable{
+        override fun run() {
+            if (listAdapter != null)
+            {
+                listAdapter.refresh()
+               // LogUtils.logD("refreshNewOrder")
+            }
+            //重新调用
+            refreshNewOrder()
+        }
+
+    }
     override fun initTitle(): TitleBar? {
         return null
     }

+ 2 - 2
app/src/main/java/com/jld/vod/viewmodel/SplashViewModel.kt

@@ -200,8 +200,8 @@ class SplashViewModel(app: Application) : AndroidViewModel(app) {
                 }
             },
             { ex ->
-               // LogUtils.logD("eqCar"+ex)
-                eqCarliveData.postValue(ex.message!!)
+                LogUtils.logD("eqCar"+ex)
+                //eqCarliveData.postValue(ex.message!!)
             }
         )
         return eqCarliveData