Prevent crash

This commit is contained in:
M66B
2020-04-06 08:39:52 +02:00
parent e24ce5ead6
commit 1e3e37d3ce
2 changed files with 28 additions and 10 deletions

View File

@@ -29,6 +29,7 @@ import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.provider.Settings;
import android.text.TextUtils;
import android.util.Base64;
import android.widget.Toast;
@@ -77,6 +78,7 @@ public class ActivityBilling extends ActivityBase implements PurchasesUpdatedLis
static final String ACTION_PURCHASE = BuildConfig.APPLICATION_ID + ".ACTION_PURCHASE";
static final String ACTION_PURCHASE_CHECK = BuildConfig.APPLICATION_ID + ".ACTION_PURCHASE_CHECK";
static final String ACTION_PURCHASE_ERROR = BuildConfig.APPLICATION_ID + ".ACTION_PURCHASE_ERROR";
private final static long MAX_SKU_CACHE_DURATION = 24 * 3600 * 1000L; // milliseconds
private final static long MAX_SKU_NOACK_DURATION = 24 * 3600 * 1000L; // milliseconds
@@ -126,6 +128,7 @@ public class ActivityBilling extends ActivityBase implements PurchasesUpdatedLis
IntentFilter iff = new IntentFilter();
iff.addAction(ACTION_PURCHASE);
iff.addAction(ACTION_PURCHASE_CHECK);
iff.addAction(ACTION_PURCHASE_ERROR);
lbm.registerReceiver(receiver, iff);
if (billingClient != null && billingClient.isReady())
@@ -202,6 +205,8 @@ public class ActivityBilling extends ActivityBase implements PurchasesUpdatedLis
onPurchase(intent);
else if (ACTION_PURCHASE_CHECK.equals(intent.getAction()))
onPurchaseCheck(intent);
else if (ACTION_PURCHASE_ERROR.equals(intent.getAction()))
onPurchaseError(intent);
}
}
};
@@ -243,6 +248,14 @@ public class ActivityBilling extends ActivityBase implements PurchasesUpdatedLis
});
}
private void onPurchaseError(Intent intent) {
String message = intent.getStringExtra("message");
Uri uri = Uri.parse(Helper.SUPPORT_URI);
if (!TextUtils.isEmpty(message))
uri = uri.buildUpon().appendQueryParameter("message", "IAB: " + message).build();
Helper.view(this, uri, true);
}
private BillingClientStateListener billingClientStateListener = new BillingClientStateListener() {
private int backoff = 4; // seconds