package moe.yuuta.gplicense; /** * Callback for the license checker library. *

* Upon checking with the Market server and conferring with the {@link Policy}, * the library calls the appropriate callback method to communicate the result. *

* The callback does not occur in the original checking thread. Your * application should post to the appropriate handling thread or lock * accordingly. *

* The reason that is passed back with allow/dontAllow is the base status handed * to the policy for allowed/disallowing the license. Policy.RETRY will call * allow or dontAllow depending on other statistics associated with the policy, * while in most cases Policy.NOT_LICENSED will call dontAllow and * Policy.LICENSED will Allow. */ public interface LicenseCheckerCallback { /** * Allow use. App should proceed as normal. * * @param reason Policy.LICENSED or Policy.RETRY typically. (although in * theory the policy can return Policy.NOT_LICENSED here as well) */ void allow(int reason); /** * Don't allow use. App should inform user and take appropriate action. * * @param reason Policy.NOT_LICENSED or Policy.RETRY. (although in theory * the policy can return Policy.LICENSED here as well --- * perhaps the call to the LVL took too long, for example) */ void dontAllow(int reason); /** Application error codes. */ int ERROR_INVALID_PACKAGE_NAME = 1; int ERROR_NON_MATCHING_UID = 2; int ERROR_NOT_MARKET_MANAGED = 3; int ERROR_CHECK_IN_PROGRESS = 4; int ERROR_INVALID_PUBLIC_KEY = 5; int ERROR_MISSING_PERMISSION = 6; /** * Error in application code. Caller did not call or set up license checker * correctly. Should be considered fatal. */ void applicationError(int errorCode); }