فهرست منبع

fix 修复订单列表页面在后退时仍请求数据的问题

RobinTan1024 4 سال پیش
والد
کامیت
bdd8a56ded

+ 1 - 5
app/src/main/java/com/doverfuelingsolutions/issp/view/fragment/FragmentNozzle.kt

@@ -36,11 +36,7 @@ class FragmentNozzle private constructor(private val pumpList: List<PumpInfo>) :
         )
     }
 
-    override fun onCreateView(
-        inflater: LayoutInflater,
-        container: ViewGroup?,
-        savedInstanceState: Bundle?
-    ): View? {
+    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
         if (!this::binding.isInitialized) {
             binding = DataBindingUtil.inflate(inflater, R.layout.fragment_nozzle, container, false)
 

+ 33 - 33
app/src/main/java/com/doverfuelingsolutions/issp/view/fragment/FragmentOrderList.kt

@@ -38,9 +38,13 @@ class FragmentOrderList private constructor(private val pumpId: Int) : FragmentB
     private val orderListAdapter = OrderListAdapter(if (pumpId != -1) orderList else orderListAfterFilter, this::selectOrder)
 
     private var selectedName = ""
-    private val oilNameList: List<String> by lazyOf(FusionManager.pumpList.map { it.oilName }.filter { it.isNotBlank() })
-    private val chooseListAdapter: ChooseListAdapter by lazy {
-        ChooseListAdapter(oilNameList, this::selectOilName, true)
+    private val oilNameList = FusionManager.pumpList.map { it.oilName }.filter { it.isNotBlank() }
+    private val chooseListAdapter = ChooseListAdapter(oilNameList, this::selectOilName, true)
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+
+        loadListData()
     }
 
     override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
@@ -67,10 +71,6 @@ class FragmentOrderList private constructor(private val pumpId: Int) : FragmentB
             setToolBar(binding.fragmentToolbar)
         }
 
-        lifecycleScope.launch {
-            loadListData()
-        }
-
         return binding.root
     }
 
@@ -106,35 +106,35 @@ class FragmentOrderList private constructor(private val pumpId: Int) : FragmentB
         }
     }
 
-    private suspend fun loadListData() {
-        val dialog = loading(R.string.in_get_order)
-        binding.fragmentToolbar.stopCountdown()
-
-        if (this::binding.isInitialized) binding.orderListView.scrollTo(0, 0)
+    private fun loadListData() {
+        lifecycleScope.launchWhenStarted {
+            val dialog = loading(R.string.in_get_order)
+            binding.fragmentToolbar.stopCountdown()
+            binding.orderListView.scrollTo(0, 0)
 
-        // -1 选油品,非 -1 选枪
-        // local cache
-        if (orderList.isNotEmpty()) orderList.clear()
-        if (pumpId == -1) {
-            val allPumpOrderList = FusionManager.pumpList.map {
-                SPUtil.getOrderListByPump(it.pumpId)
-            }
-            val sum = allPumpOrderList.reduce { acc, list ->
-                acc.addAll(list)
-                acc
+            // local cache
+            if (orderList.isNotEmpty()) orderList.clear()
+            if (pumpId == -1) {
+                val allPumpOrderList = FusionManager.pumpList.map {
+                    SPUtil.getOrderListByPump(it.pumpId)
+                }
+                val sum = allPumpOrderList.reduce { acc, list ->
+                    acc.addAll(list)
+                    acc
+                }
+                sum.sortByDescending { it.releaseTokenAttribute }
+                orderList.addAll(sum)
+                selectOilName(oilNameList[0], false)
+            } else {
+                orderList.addAll(SPUtil.getOrderListByPump(pumpId))
             }
-            sum.sortByDescending { it.releaseTokenAttribute }
-            orderList.addAll(sum)
-            selectOilName(oilNameList[0], false)
-        } else {
-            orderList.addAll(SPUtil.getOrderListByPump(pumpId))
-        }
-        orderListAdapter.notifyDataSetChanged()
+            orderListAdapter.notifyDataSetChanged()
 
-        // remote data
-        loadRemoteData()
-        dialog.dismiss()
-        binding.fragmentToolbar.resumeCountdown()
+            // remote data
+            loadRemoteData()
+            dialog.dismiss()
+            binding.fragmentToolbar.resumeCountdown()
+        }
     }
 
     private suspend fun loadRemoteData() {

+ 1 - 6
app/src/main/java/com/doverfuelingsolutions/issp/view/fragment/FragmentPayResult.kt

@@ -42,12 +42,7 @@ class FragmentPayResult private constructor(
         (activity as MainActivity).blockBackPress(true)
     }
 
-
-    override fun onCreateView(
-        inflater: LayoutInflater,
-        container: ViewGroup?,
-        savedInstanceState: Bundle?
-    ): View? {
+    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
         binding = DataBindingUtil.inflate(inflater, R.layout.fragment_pay_result, container, false)
         binding.lifecycleOwner = this
         binding.viewModel = viewModel