diff options
Diffstat (limited to 'src/purchasing/inapppurchase/android/qandroidinapppurchasebackend.cpp')
-rw-r--r-- | src/purchasing/inapppurchase/android/qandroidinapppurchasebackend.cpp | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/purchasing/inapppurchase/android/qandroidinapppurchasebackend.cpp b/src/purchasing/inapppurchase/android/qandroidinapppurchasebackend.cpp index e6a42cb..ee00591 100644 --- a/src/purchasing/inapppurchase/android/qandroidinapppurchasebackend.cpp +++ b/src/purchasing/inapppurchase/android/qandroidinapppurchasebackend.cpp @@ -334,14 +334,6 @@ void QAndroidInAppPurchaseBackend::purchaseProduct(QAndroidInAppProduct *product return; } - QAndroidJniObject intentSender = m_javaObject.callObjectMethod("createBuyIntentSender", - "(Ljava/lang/String;)Landroid/content/IntentSender;", - QAndroidJniObject::fromString(product->identifier()).object<jstring>()); - if (!intentSender.isValid()) { - purchaseFailed(product, QInAppTransaction::ErrorOccurred, QStringLiteral("Unable to get intent sender from service")); - return; - } - int requestCode = 0; while (m_activePurchaseRequests.contains(requestCode)) { requestCode++; @@ -352,6 +344,16 @@ void QAndroidInAppPurchaseBackend::purchaseProduct(QAndroidInAppProduct *product } m_activePurchaseRequests[requestCode] = product; + + QAndroidJniObject intentSender = m_javaObject.callObjectMethod("createBuyIntentSender", + "(Ljava/lang/String;I)Landroid/content/IntentSender;", + QAndroidJniObject::fromString(product->identifier()).object<jstring>(), requestCode); + + if (!intentSender.isValid()) { + m_activePurchaseRequests.remove(requestCode); + return; + } + QtAndroid::startIntentSender(intentSender, requestCode, this); } |