From 9da638bc60ffd5bbc660353381a8f374e063f4d0 Mon Sep 17 00:00:00 2001 From: Joshua Rogers Date: Tue, 3 Feb 2026 20:15:42 +0800 Subject: [PATCH] Prevent overlapping tokenization calls from overwriting pendingPushTokenizePromise (cherry picked from commit 070a548d5c4f80f7ff8ee88f2dc534eda6b8c2ae) --- android/src/main/java/com/expensify/wallet/WalletModule.kt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/android/src/main/java/com/expensify/wallet/WalletModule.kt b/android/src/main/java/com/expensify/wallet/WalletModule.kt index 368f31f..d94bc91 100644 --- a/android/src/main/java/com/expensify/wallet/WalletModule.kt +++ b/android/src/main/java/com/expensify/wallet/WalletModule.kt @@ -184,6 +184,9 @@ class WalletModule internal constructor(context: ReactApplicationContext) : override fun addCardToGoogleWallet( data: ReadableMap, promise: Promise ) { + if (pendingPushTokenizePromise != null) { + return promise.reject(E_OPERATION_FAILED, "A tokenization request is already in progress") + } try { val cardData = data.toCardData() ?: return promise.reject(E_INVALID_DATA, "Insufficient data") val cardNetwork = getCardNetwork(cardData.network) @@ -210,6 +213,9 @@ class WalletModule internal constructor(context: ReactApplicationContext) : @ReactMethod override fun resumeAddCardToGoogleWallet(data: ReadableMap, promise: Promise) { + if (pendingPushTokenizePromise != null) { + return promise.reject(E_OPERATION_FAILED, "A tokenization request is already in progress") + } try { val tokenReferenceID = data.getString("tokenReferenceID") ?: return promise.reject(E_INVALID_DATA, "Missing tokenReferenceID")