diff options
author | Tarja Sundqvist <tarja.sundqvist@qt.io> | 2022-11-10 22:42:40 +0200 |
---|---|---|
committer | Tarja Sundqvist <tarja.sundqvist@qt.io> | 2022-11-10 22:42:40 +0200 |
commit | 9dfea35b04dcb52d02d7a2883df88d89ba9999ef (patch) | |
tree | 43c3341d8fc39fb612b37ad5f0375cb8600b2bef | |
parent | 25ead89b0834f669e0a193e6d6cf2da25d33a452 (diff) | |
parent | 0e2696c6a7f53e1f4cefd01cb927189cd8d5815a (diff) |
Merge remote-tracking branch 'origin/tqtc/lts-5.15.8' into tqtc/lts-5.15-opensourcev5.15.8-lts-lgpl
Change-Id: I30a709e14bfa9a89eeb176313e7dd11649fd5d75
-rw-r--r-- | .qmake.conf | 2 | ||||
-rw-r--r-- | src/android/src/org/qtproject/qt5/android/purchasing/QtInAppPurchase.java | 19 | ||||
-rw-r--r-- | src/purchasing/inapppurchase/android/qandroidinapppurchasebackend.cpp | 4 |
3 files changed, 14 insertions, 11 deletions
diff --git a/.qmake.conf b/.qmake.conf index b342e34..3215b0d 100644 --- a/.qmake.conf +++ b/.qmake.conf @@ -2,6 +2,6 @@ load(qt_build_config) DEFINES += QT_NO_FOREACH -MODULE_VERSION = 5.15.7 +MODULE_VERSION = 5.15.8 CMAKE_MODULE_TESTS=- diff --git a/src/android/src/org/qtproject/qt5/android/purchasing/QtInAppPurchase.java b/src/android/src/org/qtproject/qt5/android/purchasing/QtInAppPurchase.java index ff8ff21..e751935 100644 --- a/src/android/src/org/qtproject/qt5/android/purchasing/QtInAppPurchase.java +++ b/src/android/src/org/qtproject/qt5/android/purchasing/QtInAppPurchase.java @@ -153,7 +153,7 @@ public class QtInAppPurchase implements PurchasesUpdatedListener for (Purchase purchase : list) { try { if (m_publicKey != null && !Security.verifyPurchase(m_publicKey, - TYPE_INAPP, + purchase.getOriginalJson(), purchase.getSignature())) { purchaseFailed(requestCode, @@ -162,7 +162,7 @@ public class QtInAppPurchase implements PurchasesUpdatedListener return; } int purchaseState = purchase.getPurchaseState(); - if (purchaseState != PurchaseState.UNSPECIFIED_STATE) { + if (purchaseState != PurchaseState.PURCHASED) { purchaseFailed(requestCode, FAILUREREASON_ERROR, "Unexpected purchase state in result"); @@ -174,7 +174,7 @@ public class QtInAppPurchase implements PurchasesUpdatedListener } purchaseSucceeded(requestCode, purchase.getSignature(), - TYPE_INAPP, + purchase.getOriginalJson(), purchase.getPurchaseToken(), purchase.getOrderId(), purchase.getPurchaseTime()); @@ -213,7 +213,7 @@ public class QtInAppPurchase implements PurchasesUpdatedListener registerPurchased(m_nativePointer, purchase.getSkus().get(0), signature, - TYPE_INAPP, + purchase.getOriginalJson(), purchase.getPurchaseToken(), purchase.getOrderId(), purchase.getPurchaseTime()); @@ -236,7 +236,7 @@ public class QtInAppPurchase implements PurchasesUpdatedListener index += productIdList.size(); SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder(); - params.setSkusList(productIdList).setType(BillingClient.SkuType.INAPP); + params.setSkusList(productIdList).setType(TYPE_INAPP); billingClient.querySkuDetailsAsync(params.build(), new SkuDetailsResponseListener() { @Override @@ -275,6 +275,10 @@ public class QtInAppPurchase implements PurchasesUpdatedListener queriedTitle, queriedDescription); } + if (skuDetailsList.size() == skuDetailsList.indexOf(skuDetails) + 1){ + for (String failedProduct : failedProducts) + queryFailed(m_nativePointer, failedProduct); + } } catch (Exception e) { e.printStackTrace(); @@ -283,8 +287,6 @@ public class QtInAppPurchase implements PurchasesUpdatedListener } }); } - for (String failedProduct : failedProducts) - queryFailed(m_nativePointer, failedProduct); } public void setPublicKey(String publicKey) @@ -296,6 +298,7 @@ public class QtInAppPurchase implements PurchasesUpdatedListener { requestCode = rqCode; List<String> skuList = new ArrayList<>(); + skuList.add(identifier); SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder(); params.setSkusList(skuList).setType(TYPE_INAPP); @@ -308,7 +311,7 @@ public class QtInAppPurchase implements PurchasesUpdatedListener int response = billingResult.getResponseCode(); if (response != RESULT_OK) { - Log.e(TAG, "Unable to create buy intent. Response code: " + response); + Log.e(TAG, "Unable to launch the purchase flow. Response code: " + response); String errorString; switch (response) { case RESULT_BILLING_UNAVAILABLE: errorString = "Billing unavailable"; break; diff --git a/src/purchasing/inapppurchase/android/qandroidinapppurchasebackend.cpp b/src/purchasing/inapppurchase/android/qandroidinapppurchasebackend.cpp index b48f7e1..9c9ab62 100644 --- a/src/purchasing/inapppurchase/android/qandroidinapppurchasebackend.cpp +++ b/src/purchasing/inapppurchase/android/qandroidinapppurchasebackend.cpp @@ -335,8 +335,8 @@ void QAndroidInAppPurchaseBackend::purchaseProduct(QAndroidInAppProduct *product m_activePurchaseRequests[requestCode] = product; - m_javaObject.callObjectMethod("launchBillingFlow", - "(Ljava/lang/String;I)Landroid/content/IntentSender;", + m_javaObject.callMethod<void>("launchBillingFlow", + "(Ljava/lang/String;I)V", QAndroidJniObject::fromString(product->identifier()).object<jstring>(), requestCode); } |