RevenueCat / purchases-android

Android in-app purchases and subscriptions made easy.
https://www.revenuecat.com/
MIT License
235 stars 45 forks source link

Checks if callback has already been called in `canMakePayments` #1690

Closed vegaro closed 2 months ago

vegaro commented 2 months ago

Should prevent a Flutter stacktrace that looks like

Exception java.lang.IllegalStateException: Reply already submitted
  at io.flutter.embedding.engine.dart.DartMessenger$Reply.reply (DartMessenger.java)
  at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler$1.success (MethodChannel.java)
  at com.revenuecat.purchases_flutter.PurchasesFlutterPlugin$3.onReceived
  at com.revenuecat.purchases_flutter.PurchasesFlutterPlugin$3.onReceived
  at com.revenuecat.purchases.hybridcommon.CommonKt.canMakePayments$lambda$2 (Common.kt)
  at com.revenuecat.purchases.PurchasesOrchestrator$Companion$canMakePayments$2$1.onBillingServiceDisconnected$lambda$2 (PurchasesOrchestrator.java)
  at android.os.Handler.handleCallback (Handler.java:942)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at android.os.Looper.loopOnce (Looper.java:211)
  at android.os.Looper.loop (Looper.java:300)
  at android.app.ActivityThread.main (ActivityThread.java:8410)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:559)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:954)
RevenueCat-Danger-Bot commented 2 months ago
1 Message
:book: Size increase: 13.93 KB

Generated by :no_entry_sign: Danger

vegaro commented 2 months ago

I haven't been able to reproduce, but manually triggering onBillingServiceDisconnected from onBillingSetupFinished would replicate calling the callback twice. I am confident this will fix it.

codecov[bot] commented 2 months ago

Codecov Report

Attention: Patch coverage is 76.47059% with 4 lines in your changes are missing coverage. Please review.

Project coverage is 83.35%. Comparing base (b296b93) to head (cf2d8ea). Report is 1 commits behind head on main.

Files Patch % Lines
.../com/revenuecat/purchases/PurchasesOrchestrator.kt 76.47% 3 Missing and 1 partial :warning:
Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #1690 +/- ## ========================================== - Coverage 83.37% 83.35% -0.02% ========================================== Files 220 220 Lines 7511 7527 +16 Branches 1059 1061 +2 ========================================== + Hits 6262 6274 +12 - Misses 831 834 +3 - Partials 418 419 +1 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.