aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/moe/yuuta/workmode/gpl/GPL.kt
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/moe/yuuta/workmode/gpl/GPL.kt')
-rw-r--r--app/src/main/java/moe/yuuta/workmode/gpl/GPL.kt47
1 files changed, 47 insertions, 0 deletions
diff --git a/app/src/main/java/moe/yuuta/workmode/gpl/GPL.kt b/app/src/main/java/moe/yuuta/workmode/gpl/GPL.kt
new file mode 100644
index 0000000..3824f19
--- /dev/null
+++ b/app/src/main/java/moe/yuuta/workmode/gpl/GPL.kt
@@ -0,0 +1,47 @@
+package moe.yuuta.workmode.gpl
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.provider.Settings
+import androidx.lifecycle.Lifecycle
+import androidx.lifecycle.LifecycleObserver
+import androidx.lifecycle.OnLifecycleEvent
+import moe.yuuta.gplicense.AESObfuscator
+import moe.yuuta.gplicense.LicenseChecker
+import moe.yuuta.gplicense.LicenseCheckerCallback
+import moe.yuuta.gplicense.ServerManagedPolicy
+import moe.yuuta.workmode.BuildConfig
+
+// #Anti-Crack
+// Google Play Licenser
+class GPL(
+ private val context: Context,
+ private val lifecycle: Lifecycle,
+ private val callback: LicenseCheckerCallback
+) : LifecycleObserver {
+ private val SALT = byteArrayOf(
+ -90, 83, 80, -91, -37, -57, 74, -69, 52, 89,
+ -9, -5, -77, -71, -36, -79, -11, 37, -69, 88
+ )
+
+ private lateinit var instance: LicenseChecker
+
+ @OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
+ fun start() {
+ @SuppressLint("HardwareIds") val android_id = Settings.Secure.getString(context.contentResolver,
+ Settings.Secure.ANDROID_ID)
+ instance = LicenseChecker(
+ context,
+ ServerManagedPolicy(context, AESObfuscator(SALT, BuildConfig.APPLICATION_ID, android_id)),
+ BuildConfig.GOOGLE_PLAY_LICENSING_KEY
+ )
+ instance.checkAccess(callback)
+ }
+
+ @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
+ fun destroy() {
+ if (::instance.isInitialized) {
+ instance.onDestroy()
+ }
+ }
+} \ No newline at end of file