forked from organicmaps/organicmaps
[android] Added careful handling of play store connection failure
This commit is contained in:
parent
83a5b3d0d6
commit
0f6e797f4c
5 changed files with 17 additions and 1 deletions
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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()
|
||||
{
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue