summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTarja Sundqvist <tarja.sundqvist@qt.io>2022-11-10 22:42:40 +0200
committerTarja Sundqvist <tarja.sundqvist@qt.io>2022-11-10 22:42:40 +0200
commit9dfea35b04dcb52d02d7a2883df88d89ba9999ef (patch)
tree43c3341d8fc39fb612b37ad5f0375cb8600b2bef
parent25ead89b0834f669e0a193e6d6cf2da25d33a452 (diff)
parent0e2696c6a7f53e1f4cefd01cb927189cd8d5815a (diff)
Merge remote-tracking branch 'origin/tqtc/lts-5.15.8' into tqtc/lts-5.15-opensourcev5.15.8-lts-lgpl
-rw-r--r--.qmake.conf2
-rw-r--r--src/android/src/org/qtproject/qt5/android/purchasing/QtInAppPurchase.java19
-rw-r--r--src/purchasing/inapppurchase/android/qandroidinapppurchasebackend.cpp4
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);
}