aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/moe/yuuta/gplicense/LicenseCheckerCallback.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/moe/yuuta/gplicense/LicenseCheckerCallback.java')
-rw-r--r--app/src/main/java/moe/yuuta/gplicense/LicenseCheckerCallback.java51
1 files changed, 51 insertions, 0 deletions
diff --git a/app/src/main/java/moe/yuuta/gplicense/LicenseCheckerCallback.java b/app/src/main/java/moe/yuuta/gplicense/LicenseCheckerCallback.java
new file mode 100644
index 0000000..214f152
--- /dev/null
+++ b/app/src/main/java/moe/yuuta/gplicense/LicenseCheckerCallback.java
@@ -0,0 +1,51 @@
+package moe.yuuta.gplicense;
+
+/**
+ * Callback for the license checker library.
+ * <p>
+ * Upon checking with the Market server and conferring with the {@link Policy},
+ * the library calls the appropriate callback method to communicate the result.
+ * <p>
+ * <b>The callback does not occur in the original checking thread.</b> Your
+ * application should post to the appropriate handling thread or lock
+ * accordingly.
+ * <p>
+ * 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);
+}