[adroid] Made purchase validation callback generic

This commit is contained in:
Alexander Zatsepin 2018-08-29 14:10:22 +03:00 committed by yoksnod
parent d74618ddcb
commit cf75e55bc6
5 changed files with 25 additions and 21 deletions

View file

@ -4,8 +4,8 @@ import android.support.annotation.NonNull;
import com.mapswithme.maps.Framework;
public class AdRemovalPurchaseValidator implements PurchaseValidator,
Framework.SubscriptionValidationListener
class AdSubscriptionValidator implements PurchaseValidator<AdValidationCallback>,
Framework.SubscriptionValidationListener
{
@Override
public void initialize()
@ -26,13 +26,13 @@ public class AdRemovalPurchaseValidator implements PurchaseValidator,
}
@Override
public void addCallback(@NonNull ValidationCallback callback)
public void addCallback(@NonNull AdValidationCallback callback)
{
// Coming soon.
}
@Override
public void removeCallback(@NonNull ValidationCallback callback)
public void removeCallback(@NonNull AdValidationCallback callback)
{
// Coming soon.
}

View file

@ -0,0 +1,8 @@
package com.mapswithme.maps.purchase;
import android.support.annotation.NonNull;
public interface AdValidationCallback
{
void onValidate(@NonNull AdValidationStatus status);
}

View file

@ -0,0 +1,8 @@
package com.mapswithme.maps.purchase;
public enum AdValidationStatus
{
ACTIVE,
NOT_ACTIVE,
FAILURE
}

View file

@ -11,7 +11,7 @@ public enum Factory
@Override
public PurchaseValidator createPurchaseManager()
{
return new AdRemovalPurchaseValidator();
return new AdSubscriptionValidator();
}
@NonNull

View file

@ -4,12 +4,12 @@ import android.support.annotation.NonNull;
/**
* Represents a purchase validator. The main of purpose is to validate existing purchase and inform
* the client code through {@link ValidationCallback#onValidate(Status)}.<br><br>
* the client code through typed callback {@link T}.<br><br>
* <b>Important note: </b> one validator can serve only one purchase, i.e. logical link is
* <b>one-to-one</b>. If you need to validate different purchases you have to create different
* implementations of this interface.
*/
public interface PurchaseValidator
public interface PurchaseValidator<T>
{
/**
* Initializes validator for further work.
@ -31,22 +31,10 @@ public interface PurchaseValidator
/**
* Ads observer of validation.
*/
void addCallback(@NonNull ValidationCallback callback);
void addCallback(@NonNull T callback);
/**
* Removes observer of validation.
*/
void removeCallback(@NonNull ValidationCallback callback);
interface ValidationCallback
{
void onValidate(@NonNull Status status);
}
public enum Status
{
ACTIVE,
NOT_ACTIVE,
FAILURE;
}
void removeCallback(@NonNull T callback);
}