[android] Added careful handling of play store connection failure

This commit is contained in:
Alexander Zatsepin 2018-09-28 12:45:17 +03:00 committed by yoksnod
parent 83a5b3d0d6
commit 0f6e797f4c
5 changed files with 17 additions and 1 deletions

View file

@ -12,6 +12,7 @@ public interface AdsRemovalPurchaseCallback
void onProductDetailsLoaded(@NonNull List<SkuDetails> details);
void onPaymentFailure(@BillingClient.BillingResponse int error);
void onProductDetailsFailure();
void onStoreConnectionFailed();
void onValidationStarted();
void onValidationStatusObtained(@NonNull AdsRemovalValidationStatus status);
}

View file

@ -113,6 +113,13 @@ class AdsRemovalPurchaseController extends AbstractPurchaseController<AdsRemoval
getUiCallback().onProductDetailsFailure();
}
@Override
public void onStoreConnectionFailed()
{
if (getUiCallback() != null)
getUiCallback().onStoreConnectionFailed();
}
@Override
public void onPurchasesLoaded(@NonNull List<Purchase> purchases)
{

View file

@ -349,6 +349,12 @@ public class AdsRemovalPurchaseDialog extends BaseMwmDialogFragment implements A
activateStateSafely(AdsRemovalPaymentState.PRODUCT_DETAILS_FAILURE);
}
@Override
public void onStoreConnectionFailed()
{
activateStateSafely(AdsRemovalPaymentState.PRODUCT_DETAILS_FAILURE);
}
@Override
public void onValidationStarted()
{

View file

@ -14,5 +14,6 @@ public interface PlayStoreBillingCallback
void onPurchaseSuccessful(@NonNull List<Purchase> purchases);
void onPurchaseFailure(@BillingClient.BillingResponse int error);
void onPurchaseDetailsFailure();
void onStoreConnectionFailed();
void onPurchasesLoaded(@NonNull List<Purchase> purchases);
}

View file

@ -182,11 +182,12 @@ class PlayStoreBillingManager implements BillingManager<PlayStoreBillingCallback
@Override
public void onDisconnected()
{
LOGGER.w(TAG, "Play store connection failed.");
if (mPendingRequests.isEmpty())
return;
mPendingRequests.clear();
if (mCallback != null)
mCallback.onPurchaseFailure(BillingResponse.SERVICE_DISCONNECTED);
mCallback.onStoreConnectionFailed();
}
}