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 class GPLicenser( 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 checker: LicenseChecker @OnLifecycleEvent(Lifecycle.Event.ON_CREATE) fun start() { @SuppressLint("HardwareIds") val android_id = Settings.Secure.getString(context.contentResolver, Settings.Secure.ANDROID_ID) checker = LicenseChecker( context, ServerManagedPolicy(context, AESObfuscator(SALT, BuildConfig.APPLICATION_ID, android_id)), BuildConfig.GOOGLE_PLAY_LICENSING_KEY ) checker.checkAccess(callback) } @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY) fun destroy() { if (::checker.isInitialized) { checker.onDestroy() } } }