honghengqiang 2 년 전
부모
커밋
4bb02eeffd

+ 44 - 19
baseswago/src/main/java/com/swago/baseswago/dialog/BenefitBagDialog.kt

@@ -4,6 +4,7 @@ import android.os.Bundle
 import android.view.Gravity
 import android.widget.Toast
 import androidx.fragment.app.viewModels
+import androidx.lifecycle.lifecycleScope
 import com.android.billingclient.api.Purchase
 import com.swago.baseswago.PayVm
 import com.swago.baseswago.R
@@ -15,6 +16,8 @@ import com.swago.baseswago.util.AppContext
 import com.swago.baseswago.util.NoDoubleClickListener
 import com.swago.baseswago.util.SwagoLoading
 import com.swago.baseswago.util.UserInfo
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
 
 /**
  *@date 2022/1/18 20:29
@@ -86,48 +89,70 @@ class BenefitBagDialog : BaseXDFragment<DialogBenefitBagBinding>(), IPayCallback
     }
 
     override fun onPaySuccess(data: List<Purchase>?) {
-        data?.forEach {
-            payVm.payOrderToServer(it, 1)
-            UserInfo.getUserInfo()?.is_benefit = 1
-            benefitIconDismissFun?.invoke()
+        lifecycleScope.launch(Dispatchers.Main) {
+            data?.forEach {
+                payVm.payOrderToServer(it, 1)
+                UserInfo.getUserInfo()?.is_benefit = 1
+                benefitIconDismissFun?.invoke()
+            }
         }
     }
 
     override fun onQueryProductPrice(data: List<PayModel>) {
-        SwagoLoading.cancelLoadingDialog()
-        binding.tvRecharge.text = data[0].product_price
-        PayManager.queryUnConsumeOrder("")
+        lifecycleScope.launch(Dispatchers.Main) {
+            SwagoLoading.cancelLoadingDialog()
+            binding.tvRecharge.text = data[0].product_price
+            PayManager.queryUnConsumeOrder("")
+        }
     }
 
     override fun onPayError(code: Int) {
-        SwagoLoading.cancelLoadingDialog()
-        Toast.makeText(AppContext.getContext(), AppContext.getContext().resources.getString(R.string.pay_fail)+"-$code", Toast.LENGTH_SHORT).show()
-        payVm.payOrderToServer(null, 2)
+        lifecycleScope.launch(Dispatchers.Main) {
+            SwagoLoading.cancelLoadingDialog()
+            Toast.makeText(
+                AppContext.getContext(),
+                AppContext.getContext().resources.getString(R.string.pay_fail) + "-$code",
+                Toast.LENGTH_SHORT
+            ).show()
+            payVm.payOrderToServer(null, 2)
+        }
     }
 
     override fun onPayCancel() {
-        Toast.makeText(AppContext.getContext(), AppContext.getContext().resources.getString(R.string.pay_cancel), Toast.LENGTH_SHORT).show()
-        payVm.payOrderToServer(null, 3)
+        lifecycleScope.launch(Dispatchers.Main) {
+            Toast.makeText(
+                AppContext.getContext(),
+                AppContext.getContext().resources.getString(R.string.pay_cancel),
+                Toast.LENGTH_SHORT
+            ).show()
+            payVm.payOrderToServer(null, 3)
+        }
     }
 
     override fun onUnConsumeOrder(data: List<Purchase>) {
-        data.forEach {
-            val orderLostDialog = OrderLostDialog.newInstance(it.orderId)
-            orderLostDialog.commitLostOrderFun = {
-                payVm.payOrderToServer(it,4)
+        lifecycleScope.launch(Dispatchers.Main) {
+            data.forEach {
+                val orderLostDialog = OrderLostDialog.newInstance(it.orderId)
+                orderLostDialog.commitLostOrderFun = {
+                    payVm.payOrderToServer(it, 4)
+                }
+                orderLostDialog.show(childFragmentManager, "OrderLostDialog")
             }
-            orderLostDialog.show(childFragmentManager, "OrderLostDialog")
         }
     }
 
     override fun consumeOrderSuccess() {
-        dismissAllowingStateLoss()
+        lifecycleScope.launch(Dispatchers.Main) {
+            dismissAllowingStateLoss()
+        }
     }
 
     override fun consumeOrderFail(code: Int) {
     }
 
     override fun toCreateNewOrder(productId: String) {
-        payVm.createOrder(productId)
+        lifecycleScope.launch(Dispatchers.Main) {
+            payVm.createOrder(productId)
+        }
     }
 }

+ 40 - 17
baseswago/src/main/java/com/swago/baseswago/dialog/PayDialog.kt

@@ -6,6 +6,7 @@ import android.view.Gravity
 import android.view.View
 import android.widget.Toast
 import androidx.fragment.app.viewModels
+import androidx.lifecycle.lifecycleScope
 import androidx.recyclerview.widget.GridLayoutManager
 import androidx.recyclerview.widget.RecyclerView
 import com.android.billingclient.api.Purchase
@@ -19,12 +20,14 @@ import com.swago.baseswago.util.AppContext
 import com.swago.baseswago.util.DpPxUtil
 import com.swago.baseswago.util.NoDoubleClickListener
 import com.swago.baseswago.util.SwagoLoading
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
 
 /**
  *@date 2021/12/18 09:14
  *description:
  */
-class PayDialog : BaseXDFragment<DialogPayBinding>(), IPayCallback {
+class PayDialog : BaseXDFragment<DialogPayBinding>(), IPayCallback{
 
     private val payVm by viewModels<PayVm>()
     private val adapter by lazy {
@@ -99,35 +102,53 @@ class PayDialog : BaseXDFragment<DialogPayBinding>(), IPayCallback {
     }
 
     override fun onPaySuccess(data: List<Purchase>?) {
-        data?.forEach {
-            payVm.payOrderToServer(it, 1)
+        lifecycleScope.launch(Dispatchers.Main) {
+            data?.forEach {
+                payVm.payOrderToServer(it, 1)
+            }
         }
     }
 
     override fun onQueryProductPrice(data: List<PayModel>) {
-        SwagoLoading.cancelLoadingDialog()
-        adapter.setNewData(data)
-        PayManager.queryUnConsumeOrder("")
+        lifecycleScope.launch(Dispatchers.Main) {
+            SwagoLoading.cancelLoadingDialog()
+            adapter.setNewData(data)
+            PayManager.queryUnConsumeOrder("")
+        }
     }
 
     override fun onPayError(code: Int) {
-        SwagoLoading.cancelLoadingDialog()
-        Toast.makeText(AppContext.getContext(), AppContext.getContext().resources.getString(R.string.pay_fail)+"-$code", Toast.LENGTH_SHORT).show()
-        payVm.payOrderToServer(null, 2)
+        lifecycleScope.launch(Dispatchers.Main) {
+            SwagoLoading.cancelLoadingDialog()
+            Toast.makeText(
+                AppContext.getContext(),
+                AppContext.getContext().resources.getString(R.string.pay_fail) + "-$code",
+                Toast.LENGTH_SHORT
+            ).show()
+            payVm.payOrderToServer(null, 2)
+        }
     }
 
     override fun onPayCancel() {
-        Toast.makeText(AppContext.getContext(), AppContext.getContext().resources.getString(R.string.pay_cancel), Toast.LENGTH_SHORT).show()
-        payVm.payOrderToServer(null, 3)
+        lifecycleScope.launch(Dispatchers.Main) {
+            Toast.makeText(
+                AppContext.getContext(),
+                AppContext.getContext().resources.getString(R.string.pay_cancel),
+                Toast.LENGTH_SHORT
+            ).show()
+            payVm.payOrderToServer(null, 3)
+        }
     }
 
     override fun onUnConsumeOrder(data: List<Purchase>) {
-        data.forEach {
-            val orderLostDialog = OrderLostDialog.newInstance(it.orderId)
-            orderLostDialog.commitLostOrderFun = {
-                payVm.payOrderToServer(it,4)
+        lifecycleScope.launch(Dispatchers.Main) {
+            data.forEach {
+                val orderLostDialog = OrderLostDialog.newInstance(it.orderId)
+                orderLostDialog.commitLostOrderFun = {
+                    payVm.payOrderToServer(it, 4)
+                }
+                orderLostDialog.show(childFragmentManager, "OrderLostDialog")
             }
-            orderLostDialog.show(childFragmentManager, "OrderLostDialog")
         }
     }
 
@@ -140,7 +161,9 @@ class PayDialog : BaseXDFragment<DialogPayBinding>(), IPayCallback {
     }
 
     override fun toCreateNewOrder(productId: String) {
-        payVm.createOrder(productId)
+        lifecycleScope.launch(Dispatchers.Main) {
+            payVm.createOrder(productId)
+        }
     }
 
     inner class GridItemDecoration : RecyclerView.ItemDecoration() {

+ 25 - 8
home/src/main/java/com/swago/home/HomeActivity.kt

@@ -2,6 +2,7 @@ package com.swago.home
 
 import android.widget.Toast
 import androidx.activity.viewModels
+import androidx.lifecycle.lifecycleScope
 import androidx.viewpager.widget.ViewPager
 import com.alibaba.android.arouter.facade.annotation.Route
 import com.android.billingclient.api.Purchase
@@ -24,13 +25,15 @@ import com.swago.home.update.UpdateDialog
 import com.tencent.qcloud.tim.uikit.TUIKit
 import com.tencent.qcloud.tim.uikit.base.IUIKitCallBack
 import com.tencent.qcloud.tim.uikit.config.TUIKitConfigs
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
 
 /**
  *@date 2021/8/17 22:39
  *description:
  */
 @Route(path = ARouteConstant.Home.home)
-class HomeActivity : BaseXActivity<ActivityHomeBinding>(), IPayCallback {
+class HomeActivity : BaseXActivity<ActivityHomeBinding>(),  IPayCallback{
 
     private val officialVm by viewModels<OfficialVm>()
     private val homeVm by viewModels<HomeVm>()
@@ -144,20 +147,34 @@ class HomeActivity : BaseXActivity<ActivityHomeBinding>(), IPayCallback {
     }
 
     override fun onPayError(code: Int) {
-        Toast.makeText(AppContext.getContext(), AppContext.getContext().resources.getString(R.string.pay_fail)+"-$code", Toast.LENGTH_SHORT).show()
+        lifecycleScope.launch(Dispatchers.Main) {
+            Toast.makeText(
+                AppContext.getContext(),
+                AppContext.getContext().resources.getString(R.string.pay_fail) + "-$code",
+                Toast.LENGTH_SHORT
+            ).show()
+        }
     }
 
     override fun onPayCancel() {
-        Toast.makeText(AppContext.getContext(), AppContext.getContext().resources.getString(R.string.pay_cancel), Toast.LENGTH_SHORT).show()
+        lifecycleScope.launch(Dispatchers.Main) {
+            Toast.makeText(
+                AppContext.getContext(),
+                AppContext.getContext().resources.getString(R.string.pay_cancel),
+                Toast.LENGTH_SHORT
+            ).show()
+        }
     }
 
     override fun onUnConsumeOrder(data: List<Purchase>) {
-        data.forEach {
-            val orderLostDialog = OrderLostDialog.newInstance(it.orderId)
-            orderLostDialog.commitLostOrderFun = {
-                payVm.payOrderToServer(it,4)
+        lifecycleScope.launch(Dispatchers.Main) {
+            data.forEach {
+                val orderLostDialog = OrderLostDialog.newInstance(it.orderId)
+                orderLostDialog.commitLostOrderFun = {
+                    payVm.payOrderToServer(it, 4)
+                }
+                orderLostDialog.show(supportFragmentManager, "OrderLostDialog")
             }
-            orderLostDialog.show(supportFragmentManager, "OrderLostDialog")
         }
     }
 

+ 38 - 18
user/src/main/java/com/swago/user/recharge/RechargeActivity.kt

@@ -4,6 +4,7 @@ import android.graphics.Rect
 import android.view.View
 import android.widget.Toast
 import androidx.activity.viewModels
+import androidx.lifecycle.lifecycleScope
 import androidx.recyclerview.widget.GridLayoutManager
 import androidx.recyclerview.widget.RecyclerView
 import com.alibaba.android.arouter.facade.annotation.Route
@@ -19,13 +20,15 @@ import com.swago.baseswago.model.pay.PayModel
 import com.swago.baseswago.util.*
 import com.swago.user.R
 import com.swago.user.databinding.ActivityRechargeBinding
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
 
 /**
  *@date 2021/11/24 21:06
  *description:
  */
 @Route(path = ARouteConstant.User.recharge)
-class RechargeActivity : BaseXActivity<ActivityRechargeBinding>(), IPayCallback {
+class RechargeActivity : BaseXActivity<ActivityRechargeBinding>(),IPayCallback {
 
 
     private val payVm by viewModels<PayVm>()
@@ -117,36 +120,51 @@ class RechargeActivity : BaseXActivity<ActivityRechargeBinding>(), IPayCallback
     }
 
     override fun onPaySuccess(data: List<Purchase>?) {
-        data?.forEach {
-            SwagoLoading.showLoadingDialog(this)
-            payVm.payOrderToServer(it, 1)
+        lifecycleScope.launch(Dispatchers.Main) {
+            data?.forEach {
+                SwagoLoading.showLoadingDialog(this@RechargeActivity)
+                payVm.payOrderToServer(it, 1)
+            }
         }
     }
 
     override fun onQueryProductPrice(data: List<PayModel>) {
-        SwagoLoading.cancelLoadingDialog()
-        adapter.setNewData(data)
-        PayManager.queryUnConsumeOrder("")
+        lifecycleScope.launch(Dispatchers.Main){
+            LogUtil.d("线程","${Thread.currentThread().name}")
+            SwagoLoading.cancelLoadingDialog()
+            adapter.setNewData(data)
+            PayManager.queryUnConsumeOrder("")
+        }
     }
 
     override fun onPayError(code: Int) {
-        SwagoLoading.cancelLoadingDialog()
-        Toast.makeText(AppContext.getContext(), AppContext.getContext().resources.getString(R.string.pay_fail)+"-$code", Toast.LENGTH_SHORT).show()
-        payVm.payOrderToServer(null, 2)
+        lifecycleScope.launch(Dispatchers.Main) {
+            SwagoLoading.cancelLoadingDialog()
+            Toast.makeText(
+                AppContext.getContext(),
+                AppContext.getContext().resources.getString(R.string.pay_fail) + "-$code",
+                Toast.LENGTH_SHORT
+            ).show()
+            payVm.payOrderToServer(null, 2)
+        }
     }
 
     override fun onPayCancel() {
-        Toast.makeText(AppContext.getContext(), AppContext.getContext().resources.getString(R.string.pay_cancel), Toast.LENGTH_SHORT).show()
-        payVm.payOrderToServer(null, 3)
+        lifecycleScope.launch(Dispatchers.Main) {
+            Toast.makeText(AppContext.getContext(), AppContext.getContext().resources.getString(R.string.pay_cancel), Toast.LENGTH_SHORT).show()
+            payVm.payOrderToServer(null, 3)
+        }
     }
 
     override fun onUnConsumeOrder(data: List<Purchase>) {
-        data.forEach {
-            val orderLostDialog = OrderLostDialog.newInstance(it.orderId)
-            orderLostDialog.commitLostOrderFun = {
-                payVm.payOrderToServer(it,4)
+        lifecycleScope.launch(Dispatchers.Main) {
+            data.forEach {
+                val orderLostDialog = OrderLostDialog.newInstance(it.orderId)
+                orderLostDialog.commitLostOrderFun = {
+                    payVm.payOrderToServer(it, 4)
+                }
+                orderLostDialog.show(supportFragmentManager, "OrderLostDialog")
             }
-            orderLostDialog.show(supportFragmentManager, "OrderLostDialog")
         }
     }
 
@@ -159,6 +177,8 @@ class RechargeActivity : BaseXActivity<ActivityRechargeBinding>(), IPayCallback
     }
 
     override fun toCreateNewOrder(productId: String) {
-        payVm.createOrder(productId)
+        lifecycleScope.launch(Dispatchers.Main) {
+            payVm.createOrder(productId)
+        }
     }
 }