From ed034f152c6431ec6de87cdd33e49570d5677a20 Mon Sep 17 00:00:00 2001 From: yezhiqiu <123456@qq.com> Date: Mon, 29 Jun 2026 09:54:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=A6=96=E6=AC=A1=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E4=BF=A1=E7=94=A8=E5=8D=A1=E4=B8=8D=E8=83=BD=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 6 +- .../subscribe/AddCreditCardPaymentActivity.kt | 90 +++++++++++-------- .../subscribe/CreditCardPaymentFragment.kt | 12 ++- app/src/main/res/values-fr/strings.xml | 2 +- gradle.properties | 4 +- 5 files changed, 68 insertions(+), 46 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 7234f73..0ed240e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -28,9 +28,9 @@ android { applicationId "com.abbidot.tracker" minSdkVersion 23 targetSdkVersion 35 - versionCode 2212 -// versionName "2.2.12" - versionName "2.2.12-Beta2" + versionCode 2213 +// versionName "2.2.13" + versionName "2.2.13-Beta1" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" diff --git a/app/src/main/java/com/abbidot/tracker/ui/activity/subscribe/AddCreditCardPaymentActivity.kt b/app/src/main/java/com/abbidot/tracker/ui/activity/subscribe/AddCreditCardPaymentActivity.kt index 6703a53..abcd9f7 100644 --- a/app/src/main/java/com/abbidot/tracker/ui/activity/subscribe/AddCreditCardPaymentActivity.kt +++ b/app/src/main/java/com/abbidot/tracker/ui/activity/subscribe/AddCreditCardPaymentActivity.kt @@ -44,6 +44,9 @@ class AddCreditCardPaymentActivity : private var mOldCard: CreditCardBean? = null private var isEdit = false + //是否存在PaymentMethodID + private var isHavePaymentMethodID = false + override fun getTopBar() = mViewBinding.ilAddPaymentMethodTopInfo.titleTopBar override fun initData() { @@ -52,7 +55,8 @@ class AddCreditCardPaymentActivity : mCreditCard = Util.getParcelableAdaptive( intent, ConstantString.Card, CreditCardBean::class.java ) - isEdit = getBoolean(ConstantString.Edit, false) + isEdit = getBoolean(ConstantString.Edit) + isHavePaymentMethodID = getBoolean(ConstantString.isCheck) } if (null == mCreditCard) mCreditCard = CreditCardBean() @@ -382,45 +386,53 @@ class AddCreditCardPaymentActivity : setButtonEnabled(btnSaveNewCreditCard, ConstantInt.Type0) lifecycleScope.launch(Dispatchers.IO) { mCreditCard?.let { - MyDatabase.creditCardDao().deleteAll(MyDatabase.CREDIT_CARD_TABLE) - it.cardNumber = cardNumber - it.cardName = cardName - it.expirationDate = creditCardValidity - it.cvv = cvv - val insertResult = MyDatabase.creditCardDao().insert(it) - if (insertResult > 0) { - if (isEdit) { - val dates = creditCardValidity.split("/") - // 用 PaymentMethodCreateParams 封装银行卡,不再直接new Card - val cardParams = - PaymentMethodCreateParams.Card.Builder().setNumber(cardNumber) - .setExpiryMonth(dates[0].toInt()) - .setExpiryYear(dates[1].toInt()).setCvc(cvv).build() - val paymentMethodParams = PaymentMethodCreateParams.create(cardParams) - val stripeKey = ThirdPartyUtil.instance.getStripeKey(mContext) - LogUtil.e("支付stripeKey=$stripeKey") - Stripe(mContext, stripeKey).createPaymentMethod( - paymentMethodParams, - callback = object : ApiResultCallback { - override fun onError(e: Exception) { - showToast(R.string.txt_missing_param) - setButtonEnabled(btnSaveNewCreditCard, ConstantInt.Type1) - LogUtil.e("PaymentMethodCreateParams,${e.message}") - } + if (isHavePaymentMethodID && isEdit) { + val dates = creditCardValidity.split("/") + // 用 PaymentMethodCreateParams 封装银行卡,不再直接new Card + val cardParams = + PaymentMethodCreateParams.Card.Builder().setNumber(cardNumber) + .setExpiryMonth(dates[0].toInt()) + .setExpiryYear(dates[1].toInt()).setCvc(cvv).build() + val paymentMethodParams = PaymentMethodCreateParams.create(cardParams) + val stripeKey = ThirdPartyUtil.instance.getStripeKey(mContext) + LogUtil.e("支付stripeKey=$stripeKey") + Stripe(mContext, stripeKey).createPaymentMethod( + paymentMethodParams, + callback = object : ApiResultCallback { + override fun onError(e: Exception) { + var message = e.message + if (null == message || TextUtils.isEmpty(message)) message = + getString(R.string.txt_missing_param) + showToast(message) + setButtonEnabled(btnSaveNewCreditCard, ConstantInt.Type1) + LogUtil.e("PaymentMethodCreateParams,${e.message}") + } - override fun onSuccess(result: PaymentMethod) { - LogUtil.e(result.toString()) - val paymentMethodID = "${result.id}" - mSubscriptionPayViewModel.savePaymentMethodInfo( - paymentMethodID - ) - } - }) - } else { - runOnUiThread { - setResult(ResultCode.ResultCode_1, null) - showToast(R.string.txt_save_successful, isFinish = true) - } + override fun onSuccess(result: PaymentMethod) { + LogUtil.e(result.toString()) + MyDatabase.creditCardDao() + .deleteAll(MyDatabase.CREDIT_CARD_TABLE) + it.cardNumber = cardNumber + it.cardName = cardName + it.expirationDate = creditCardValidity + it.cvv = cvv + MyDatabase.creditCardDao().insert(it) + val paymentMethodID = "${result.id}" + mSubscriptionPayViewModel.savePaymentMethodInfo( + paymentMethodID + ) + } + }) + } else { + MyDatabase.creditCardDao().deleteAll(MyDatabase.CREDIT_CARD_TABLE) + it.cardNumber = cardNumber + it.cardName = cardName + it.expirationDate = creditCardValidity + it.cvv = cvv + MyDatabase.creditCardDao().insert(it) + runOnUiThread { + setResult(ResultCode.ResultCode_1, null) + showToast(R.string.txt_save_successful, isFinish = true) } } } diff --git a/app/src/main/java/com/abbidot/tracker/ui/fragment/subscribe/CreditCardPaymentFragment.kt b/app/src/main/java/com/abbidot/tracker/ui/fragment/subscribe/CreditCardPaymentFragment.kt index 828452c..8be16e5 100644 --- a/app/src/main/java/com/abbidot/tracker/ui/fragment/subscribe/CreditCardPaymentFragment.kt +++ b/app/src/main/java/com/abbidot/tracker/ui/fragment/subscribe/CreditCardPaymentFragment.kt @@ -135,6 +135,13 @@ class CreditCardPaymentFragment : BaseFragment Intent(mContext, AddCreditCardPaymentActivity::class.java).let { it.putExtra(ConstantString.Card, cardBean) it.putExtra(ConstantString.Edit, true) + //是否存在PaymentMethodID + var isHavePaymentMethodID = false + getHostActivity(PaymentMethodActivity::class.java)?.let { h -> + isHavePaymentMethodID = + !(null == h.mPaymentIDBean || TextUtils.isEmpty(h.mPaymentIDBean?.stripeMethodInfo?.lastFourNumber)) + } + it.putExtra(ConstantString.isCheck, isHavePaymentMethodID) launchActivity(mActivity!!, mActivityResultLauncher, it) } } @@ -273,7 +280,10 @@ class CreditCardPaymentFragment : BaseFragment paymentMethodParams, callback = object : ApiResultCallback { override fun onError(e: Exception) { - showToast(R.string.txt_missing_param) + var message = e.message + if (null == message || TextUtils.isEmpty(message)) message = + getString(R.string.txt_missing_param) + showToast(message) showNoCancelableLoading(false) LogUtil.e("ApiResultCallback,${e.message}") } diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 8fdb9a1..65e1162 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -82,6 +82,7 @@ À partir du %s %s min En utilisant notre application, vous acceptez notre Politique de confidentialité et nos Conditions générales. Nous pouvons les mettre à jour occasionnellement - votre utilisation continue signifie que vous acceptez ces modifications. + Oui Copyright © %d ABBIDOT Tous droits réservés %d traceurs @@ -357,7 +358,6 @@ Double-cliquez pour modifier Personnaliser Sélection de photos - GIF Jours Renouvellement automatique : diff --git a/gradle.properties b/gradle.properties index 8f7bb63..d61e57a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -10,7 +10,7 @@ # This option should only be used with decoupled projects. For more details, visit # https://developer.android.com/r/tools/gradle-multi-project-decoupled-projects # org.gradle.parallel=true -#Wed Jun 10 09:53:29 CST 2026 +#Fri Jun 26 11:14:19 CST 2026 BAIDU_MAP_KEY=YT2CmlqAkpMyzmw1AKNIBlYlBtHESEaW BUGLY_KEY=06fc0a9cd1 GOOGLE_MAP_KEY=AIzaSyCFEqlOoo2274NsX7tzoQjs_DA7B9N7-gY @@ -25,4 +25,4 @@ android.nonTransitiveRClass=false android.suppressUnsupportedCompileSdk=34 android.useAndroidX=true kotlin.code.style=official -org.gradle.jvmargs=-Xmx1024M -Dkotlin.daemon.jvm.options\="-Xmx1024M" -Dfile.encoding\=UTF-8 +org.gradle.jvmargs=-Xmx1536M -Dkotlin.daemon.jvm.options\="-Xmx1536M" -Dfile.encoding\=UTF-8