IAB error reporting

pull/199/head
M66B 4 years ago
parent 3109e8ed95
commit 72dd55cd42

@ -60,8 +60,6 @@ import java.util.Set;
public class ActivityBilling extends ActivityBase implements PurchasingListener, FragmentManager.OnBackStackChangedListener { public class ActivityBilling extends ActivityBase implements PurchasingListener, FragmentManager.OnBackStackChangedListener {
private boolean standalone = false; private boolean standalone = false;
private String currentUserId;
private String currentMarketplace;
private List<IBillingListener> listeners = new ArrayList<>(); private List<IBillingListener> listeners = new ArrayList<>();
static final String ACTION_PURCHASE = BuildConfig.APPLICATION_ID + ".ACTION_PURCHASE"; static final String ACTION_PURCHASE = BuildConfig.APPLICATION_ID + ".ACTION_PURCHASE";
@ -202,12 +200,16 @@ public class ActivityBilling extends ActivityBase implements PurchasingListener,
}; };
private void onPurchase(Intent intent) { private void onPurchase(Intent intent) {
if (Helper.isAmazonInstall() || isTesting(this)) { if (Helper.isAmazonInstall() || isTesting(this))
String skuPro = getSkuPro(); try {
Log.i("IAB purchase SKU=" + skuPro); String skuPro = getSkuPro();
RequestId requestId = PurchasingService.purchase(skuPro); Log.i("IAB purchase SKU=" + skuPro);
Log.i("IAB request=" + requestId); RequestId requestId = PurchasingService.purchase(skuPro);
} else Log.i("IAB request=" + requestId);
} catch (Throwable ex) {
reportError(ex.toString(), "onPurchase");
}
else
try { try {
Uri uri = Uri.parse(BuildConfig.PRO_FEATURES_URI + Uri uri = Uri.parse(BuildConfig.PRO_FEATURES_URI +
"?challenge=" + getChallenge(this) + "?challenge=" + getChallenge(this) +
@ -247,15 +249,14 @@ public class ActivityBilling extends ActivityBase implements PurchasingListener,
switch (response.getRequestStatus()) { switch (response.getRequestStatus()) {
case SUCCESSFUL: case SUCCESSFUL:
Log.i("IAB user=" + response.getUserData().toString().replace('\n', '|')); Log.i("IAB user=" + response.getUserData()
currentUserId = response.getUserData().getUserId(); .toString().replace('\n', '|'));
currentMarketplace = response.getUserData().getMarketplace();
for (IBillingListener listener : listeners) for (IBillingListener listener : listeners)
listener.onConnected(); listener.onConnected();
break; break;
case FAILED: default:
case NOT_SUPPORTED: reportError(response.getRequestStatus().toString(), "onUserDataResponse");
break; break;
} }
} }
@ -267,13 +268,13 @@ public class ActivityBilling extends ActivityBase implements PurchasingListener,
switch (response.getRequestStatus()) { switch (response.getRequestStatus()) {
case SUCCESSFUL: case SUCCESSFUL:
for (Receipt receipt : response.getReceipts()) for (Receipt receipt : response.getReceipts())
handle(receipt); handleReceipt(receipt);
if (response.hasMore()) if (response.hasMore())
PurchasingService.getPurchaseUpdates(false); PurchasingService.getPurchaseUpdates(false);
break; break;
case FAILED: default:
reportError(response.getRequestStatus().toString(), "onPurchaseUpdatesResponse");
break; break;
} }
} }
@ -284,11 +285,10 @@ public class ActivityBilling extends ActivityBase implements PurchasingListener,
switch (response.getRequestStatus()) { switch (response.getRequestStatus()) {
case SUCCESSFUL: case SUCCESSFUL:
for (final String sku : response.getUnavailableSkus()) for (String sku : response.getUnavailableSkus())
Log.i("IAB unavailable sku=" + sku); Log.i("IAB unavailable sku=" + sku);
Map<String, Product> products = response.getProductData(); Map<String, Product> products = response.getProductData();
for (final String key : products.keySet()) { for (String key : products.keySet()) {
Product product = products.get(key); Product product = products.get(key);
Log.i("IAB product=" + product.toString().replace('\n', '|')); Log.i("IAB product=" + product.toString().replace('\n', '|'));
if (getSkuPro().equals(product.getSku())) if (getSkuPro().equals(product.getSku()))
@ -297,7 +297,8 @@ public class ActivityBilling extends ActivityBase implements PurchasingListener,
} }
break; break;
case FAILED: default:
reportError(response.getRequestStatus().toString(), "onProductDataResponse");
break; break;
} }
} }
@ -308,15 +309,16 @@ public class ActivityBilling extends ActivityBase implements PurchasingListener,
switch (response.getRequestStatus()) { switch (response.getRequestStatus()) {
case SUCCESSFUL: case SUCCESSFUL:
handle(response.getReceipt()); handleReceipt(response.getReceipt());
break; break;
case FAILED: default:
reportError(response.getRequestStatus().toString(), "onPurchaseResponse");
break; break;
} }
} }
private void handle(Receipt receipt) { private void handleReceipt(Receipt receipt) {
Log.i("IAB receipt=" + receipt.toString().replace('\n', '|') + Log.i("IAB receipt=" + receipt.toString().replace('\n', '|') +
" canceled=" + receipt.isCanceled() + "/" + receipt.getCancelDate()); " canceled=" + receipt.isCanceled() + "/" + receipt.getCancelDate());
@ -337,6 +339,15 @@ public class ActivityBilling extends ActivityBase implements PurchasingListener,
} }
} }
private void reportError(String status, String stage) {
String message = status + " " + stage;
Log.e(message);
EntityLog.log(this, message);
for (IBillingListener listener : listeners)
listener.onError(message);
}
interface IBillingListener { interface IBillingListener {
void onConnected(); void onConnected();

@ -547,6 +547,7 @@ public class ActivityBilling extends ActivityBase implements /*PurchasesUpdatedL
message += " " + stage; message += " " + stage;
} }
Log.e(message);
EntityLog.log(this, message); EntityLog.log(this, message);
if (result != null) { if (result != null) {

@ -546,6 +546,7 @@ public class ActivityBilling extends ActivityBase implements PurchasesUpdatedLis
message += " " + stage; message += " " + stage;
} }
Log.e(message);
EntityLog.log(this, message); EntityLog.log(this, message);
if (result != null) { if (result != null) {

Loading…
Cancel
Save