From 2bd30aa346732efcdc51a7c51cce0cbb63d670bb Mon Sep 17 00:00:00 2001 From: klaus Date: Mon, 22 Apr 2024 14:40:16 +0900 Subject: [PATCH] =?UTF-8?q?versionCode=2057,=20versionName=201.9.11=20?= =?UTF-8?q?=EC=9D=B8=20=EC=95=B1=20=EA=B2=B0=EC=A0=9C=20=EB=A1=9C=EC=A7=81?= =?UTF-8?q?=20=EC=88=98=EC=A0=95=20-=20=EA=B2=B0=EC=A0=9C=20=EC=99=84?= =?UTF-8?q?=EB=A3=8C=20=ED=9B=84=20=EC=84=9C=EB=B2=84=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=EB=8D=B0=EC=9D=B4=ED=84=B0=20=EC=B2=98=EB=A6=AC=20=ED=9B=84=20?= =?UTF-8?q?=EB=A1=9C=EC=BB=AC=EC=97=90=EC=84=9C=20=EB=8B=A4=EC=8B=9C=20?= =?UTF-8?q?=EC=86=8C=EB=B9=84=EC=B2=98=EB=A6=AC=EB=A5=BC=20=ED=95=98?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 4 +- .../can/charge/iap/CanChargeIapFragment.kt | 66 +++++++++---------- 2 files changed, 35 insertions(+), 35 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index f7575fd..649a289 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -40,8 +40,8 @@ android { applicationId "kr.co.vividnext.sodalive" minSdk 23 targetSdk 33 - versionCode 49 - versionName "1.9.2" + versionCode 57 + versionName "1.9.10" } buildTypes { diff --git a/app/src/main/java/kr/co/vividnext/sodalive/mypage/can/charge/iap/CanChargeIapFragment.kt b/app/src/main/java/kr/co/vividnext/sodalive/mypage/can/charge/iap/CanChargeIapFragment.kt index 0027063..3d8a79a 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/mypage/can/charge/iap/CanChargeIapFragment.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/mypage/can/charge/iap/CanChargeIapFragment.kt @@ -56,29 +56,9 @@ class CanChargeIapFragment : BaseFragment( setupBillingClient() } - override fun onStart() { - super.onStart() - - billingClient.startConnection(object : BillingClientStateListener { - override fun onBillingServiceDisconnected() { - viewModel.showToast("인 앱 결제 이용이 불가능 합니다. 다시 시도해 주세요.") - viewModel.setLoading(false) - } - - override fun onBillingSetupFinished(billingResult: BillingResult) { - if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) { - queryAndConsumeUnconsumedPurchases() - } else { - viewModel.showToast("인 앱 결제 이용이 불가능 합니다. 다시 시도해 주세요.") - viewModel.setLoading(false) - } - } - }) - } - - override fun onStop() { - super.onStop() + override fun onDestroy() { billingClient.endConnection() + super.onDestroy() } private fun bindData() { @@ -171,6 +151,22 @@ class CanChargeIapFragment : BaseFragment( .build() loadingDialog.show(screenWidth) + + billingClient.startConnection(object : BillingClientStateListener { + override fun onBillingServiceDisconnected() { + viewModel.showToast("인 앱 결제 이용이 불가능 합니다. 다시 시도해 주세요.") + viewModel.setLoading(false) + } + + override fun onBillingSetupFinished(billingResult: BillingResult) { + if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) { + queryAndConsumeUnconsumedPurchases() + } else { + viewModel.showToast("인 앱 결제 이용이 불가능 합니다. 다시 시도해 주세요.") + viewModel.setLoading(false) + } + } + }) } @SuppressLint("NotifyDataSetChanged") @@ -219,7 +215,9 @@ class CanChargeIapFragment : BaseFragment( if (purchaseList.isNotEmpty()) { for (purchase in purchaseList) { if (!purchase.isAcknowledged) { - consumePurchase(purchase) + consumePurchase(purchase) { + queryAvailableCans() + } } } } else { @@ -229,14 +227,14 @@ class CanChargeIapFragment : BaseFragment( } } - private fun consumePurchase(purchase: Purchase) { + private fun consumePurchase(purchase: Purchase, onSuccess: () -> Unit) { val params = ConsumeParams.newBuilder() .setPurchaseToken(purchase.purchaseToken) .build() billingClient.consumeAsync(params) { billingResult, _ -> if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) { - queryAvailableCans() + onSuccess() } } } @@ -251,15 +249,17 @@ class CanChargeIapFragment : BaseFragment( selectedProductDetails = selectedProductDetails!!, purchase = purchase ) { chargeCan -> - handler.post { - viewModel.showToast("캔이 충전되었습니다") - SharedPreferenceManager.can += chargeCan + consumePurchase(purchase) { + handler.post { + viewModel.showToast("캔이 충전되었습니다") + SharedPreferenceManager.can += chargeCan - if (activity != null) { - if (activity as? CanChargeActivity != null) { - (activity as CanChargeActivity).successIapCharge() - } else { - requireActivity().finish() + if (activity != null) { + if (activity as? CanChargeActivity != null) { + (activity as CanChargeActivity).successIapCharge() + } else { + requireActivity().finish() + } } } }