purchases-android icon indicating copy to clipboard operation
purchases-android copied to clipboard

[Bug] Wrong tab behavior in Paywall UI from purchases-ui

Open hieuwu opened this issue 5 months ago • 4 comments

Describe the bug Wrong behavior of select package in UI when display paywall on Android app

https://github.com/user-attachments/assets/0667051e-285e-43e1-8b03-2181b8de4e89

  1. Environment
    1. Platform: Android
    2. SDK version:
   implementation("com.revenuecat.purchases:purchases:8.17.1")
   implementation("com.revenuecat.purchases:purchases-ui:8.20.0")
  1. OS version: Android API 35
  2. Android Studio version: Android Studio Meerkat | 2024.3.1
  3. How widespread is the issue. Percentage of devices affected.
  4. Debug logs that reproduce the issue
  5. Steps to reproduce, with a description of expected vs. actual behavior
  6. Other information (e.g. stacktraces, related issues, suggestions how to fix, links for us to have context, eg. stackoverflow, etc.)

Additional context Add any other context about the problem here.

hieuwu avatar Jul 15 '25 15:07 hieuwu

👀 We've just linked this issue to our internal tracker and notified the team. Thank you for reporting, we're checking this out!

RCGitBot avatar Jul 15 '25 15:07 RCGitBot

Thanks for the report! We are looking into 🫡

joshdholtz avatar Jul 15 '25 15:07 joshdholtz

I found more infomation, the issue happens only in PaywallDialog. It works well in normal Paywall

hieuwu avatar Jul 16 '25 15:07 hieuwu

So this is the code I used that cause the problem: https://revenuecat.github.io/codelab/android/codelab-2-android-sdk/index.html#4

PaywallDialog(
   PaywallDialogOptions.Builder()
       .setDismissRequest {  }
       .setOffering(offering)
       .setFontProvider(..)
       .setCustomPurchaseLogic(..)
       .setListener(object : PaywallListener {
           override fun onPurchaseStarted(rcPackage: Package) {
               super.onPurchaseStarted(rcPackage)
           }

           override fun onPurchaseCompleted(customerInfo: CustomerInfo, storeTransaction: StoreTransaction) {
               super.onPurchaseCompleted(customerInfo, storeTransaction)

               customer = customerInfo
           }

           override fun onPurchaseError(error: PurchasesError) {
               super.onPurchaseError(error)
           }

           override fun onPurchaseCancelled() {
               super.onPurchaseCancelled()
           }
       })
       .build()
)

hieuwu avatar Jul 16 '25 15:07 hieuwu