IAB small improvement

This commit is contained in:
M66B 2021-05-23 15:43:27 +02:00
parent dc123ecded
commit f2c027dc3e
1 changed files with 14 additions and 8 deletions

View File

@ -226,11 +226,11 @@ public class ActivityBilling extends ActivityBase implements PurchasesUpdatedLis
private void onPurchase(Intent intent) { private void onPurchase(Intent intent) {
if (Helper.isPlayStoreInstall() || isTesting(this)) { if (Helper.isPlayStoreInstall() || isTesting(this)) {
String sku = getSkuPro(); String skuPro = getSkuPro();
Log.i("IAB purchase SKU=" + sku); Log.i("IAB purchase SKU=" + skuPro);
SkuDetailsParams.Builder builder = SkuDetailsParams.newBuilder(); SkuDetailsParams.Builder builder = SkuDetailsParams.newBuilder();
builder.setSkusList(Arrays.asList(sku)); builder.setSkusList(Arrays.asList(skuPro));
builder.setType(BillingClient.SkuType.INAPP); builder.setType(BillingClient.SkuType.INAPP);
billingClient.querySkuDetailsAsync(builder.build(), billingClient.querySkuDetailsAsync(builder.build(),
new SkuDetailsResponseListener() { new SkuDetailsResponseListener() {
@ -238,7 +238,7 @@ public class ActivityBilling extends ActivityBase implements PurchasesUpdatedLis
public void onSkuDetailsResponse(@NonNull BillingResult r, List<SkuDetails> skuDetailsList) { public void onSkuDetailsResponse(@NonNull BillingResult r, List<SkuDetails> skuDetailsList) {
if (r.getResponseCode() == BillingClient.BillingResponseCode.OK) { if (r.getResponseCode() == BillingClient.BillingResponseCode.OK) {
if (skuDetailsList.size() == 0) if (skuDetailsList.size() == 0)
reportError(null, "Unknown SKU=" + sku); reportError(null, "Unknown SKU=" + skuPro);
else { else {
SkuDetails skuDetails = skuDetailsList.get(0); SkuDetails skuDetails = skuDetailsList.get(0);
Log.i("IAB purchase details=" + skuDetails); Log.i("IAB purchase details=" + skuDetails);
@ -310,11 +310,17 @@ public class ActivityBilling extends ActivityBase implements PurchasesUpdatedLis
private void retry(int backoff) { private void retry(int backoff) {
Log.i("IAB connect retry in " + backoff + " s"); Log.i("IAB connect retry in " + backoff + " s");
new Handler().postDelayed(new Runnable() { getMainHandler().postDelayed(new Runnable() {
@Override @Override
public void run() { public void run() {
if (!billingClient.isReady()) try {
billingClient.startConnection(billingClientStateListener); boolean ready = billingClient.isReady();
Log.i("IAB ready=" + ready);
if (!ready)
billingClient.startConnection(billingClientStateListener);
} catch (Throwable ex) {
Log.e(ex);
}
} }
}, backoff * 1000L); }, backoff * 1000L);
} }
@ -475,7 +481,7 @@ public class ActivityBilling extends ActivityBase implements PurchasesUpdatedLis
for (IBillingListener listener : listeners) for (IBillingListener listener : listeners)
listener.onPurchased(purchase.getSku(), false); listener.onPurchased(purchase.getSku(), false);
} else } else
reportError(result, "IAB consumed SKU=" + purchase.getSku()); reportError(result, "IAB consuming SKU=" + purchase.getSku());
} }
}); });
} }