From ab12d7e40697b802518d7ce9d24faa97681b9064 Mon Sep 17 00:00:00 2001 From: ed Date: Mon, 10 Feb 2020 11:47:03 +0000 Subject: [PATCH] Android: Fixed a potential NullPointerException in the BillingClient code --- .../app/com/roli/juce/JuceBillingClient.java | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/modules/juce_product_unlocking/native/javaopt/app/com/roli/juce/JuceBillingClient.java b/modules/juce_product_unlocking/native/javaopt/app/com/roli/juce/JuceBillingClient.java index ad63f5ba6e..c3e13454a2 100644 --- a/modules/juce_product_unlocking/native/javaopt/app/com/roli/juce/JuceBillingClient.java +++ b/modules/juce_product_unlocking/native/javaopt/app/com/roli/juce/JuceBillingClient.java @@ -2,7 +2,7 @@ package com.roli.juce; import com.android.billingclient.api.*; -public class JuceBillingClient implements PurchasesUpdatedListener { +public class JuceBillingClient implements PurchasesUpdatedListener, BillingClientStateListener { private native void skuDetailsQueryCallback(long host, java.util.List skuDetails); private native void purchasesListQueryCallback(long host, java.util.List purchases); private native void purchaseCompletedCallback(long host, Purchase purchase, int responseCode); @@ -16,7 +16,7 @@ public class JuceBillingClient implements PurchasesUpdatedListener { .setListener(this) .build(); - billingClient.startConnection(null); + billingClient.startConnection(this); } public void endConnection() { @@ -127,6 +127,18 @@ public class JuceBillingClient implements PurchasesUpdatedListener { } } + @Override + public void onBillingServiceDisconnected() + { + + } + + @Override + public void onBillingSetupFinished(BillingResult billingResult) + { + + } + private void executeOnBillingClientConnection(Runnable runnable) { if (billingClient.isReady()) { runnable.run(); @@ -162,7 +174,12 @@ public class JuceBillingClient implements PurchasesUpdatedListener { @Override public void run() { AcknowledgePurchaseParams acknowledgePurchaseParams = AcknowledgePurchaseParams.newBuilder().setPurchaseToken(purchase.getPurchaseToken()).build(); - billingClient.acknowledgePurchase(acknowledgePurchaseParams, null); + billingClient.acknowledgePurchase(acknowledgePurchaseParams, new AcknowledgePurchaseResponseListener() { + @Override + public void onAcknowledgePurchaseResponse(BillingResult billingResult) { + + } + }); } }); }