From 39de35e09424c573670d4c56742c17a3bdbe8108 Mon Sep 17 00:00:00 2001 From: YuutaW <17158086+Trumeet@users.noreply.github.com> Date: Thu, 28 Feb 2019 19:50:55 -0800 Subject: feat(app): implement Google Play App Licensing Signed-off-by: YuutaW <17158086+Trumeet@users.noreply.github.com> --- .../main/java/moe/yuuta/workmode/MainActivity.kt | 31 +++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) (limited to 'app/src/main/java/moe/yuuta/workmode/MainActivity.kt') diff --git a/app/src/main/java/moe/yuuta/workmode/MainActivity.kt b/app/src/main/java/moe/yuuta/workmode/MainActivity.kt index f18370f..b09e38e 100644 --- a/app/src/main/java/moe/yuuta/workmode/MainActivity.kt +++ b/app/src/main/java/moe/yuuta/workmode/MainActivity.kt @@ -25,8 +25,11 @@ import com.google.android.gms.oss.licenses.OssLicensesMenuActivity import com.google.android.material.floatingactionbutton.FloatingActionButton import com.google.android.material.snackbar.Snackbar import com.google.android.material.tabs.TabLayout +import moe.yuuta.gplicense.LicenseCheckerCallback +import moe.yuuta.gplicense.Policy import moe.yuuta.workmode.access.AccessorStarter import moe.yuuta.workmode.async.* +import moe.yuuta.workmode.gpl.GPLicenser import moe.yuuta.workmode.suspend.AsyncSuspender import moe.yuuta.workmode.suspend.SuspendTile import moe.yuuta.workmode.suspend.data.ListMode @@ -37,7 +40,7 @@ import moe.yuuta.workmode.update.UpdateChecker import moe.yuuta.workmode.utils.Utils import java.util.stream.Collectors -class MainActivity : AppCompatActivity(), SwitchBar.OnSwitchChangeListener, View.OnClickListener { +class MainActivity : AppCompatActivity(), SwitchBar.OnSwitchChangeListener, View.OnClickListener, LicenseCheckerCallback { private val logger: Logger = XLog.tag("MainActivity").build() companion object { @@ -75,6 +78,7 @@ class MainActivity : AppCompatActivity(), SwitchBar.OnSwitchChangeListener, View filter.addAction(AccessorStarter.ACTION_UPDATE_UI_PROGRESS) registerReceiver(mUIUpdateReceiver, filter) scheduleUpdateChecking() + lifecycle.addObserver(GPLicenser(this, lifecycle, this)) setProgressUI(false) } @@ -336,6 +340,31 @@ class MainActivity : AppCompatActivity(), SwitchBar.OnSwitchChangeListener, View } } } + + override fun allow(reason: Int) = proceedLicensing(reason) + + override fun dontAllow(reason: Int) = proceedLicensing(reason) + + override fun applicationError(errorCode: Int) { + logger.e("StatusException: $errorCode") + SuspendedStorage(this).reportCrack("a_e", "co: $errorCode") + } + + private fun proceedLicensing(reason: Int) { + logger.d("Status: ${ + when (reason) { + Policy.LICENSED -> "OK" + Policy.NOT_LICENSED -> "Fail" + Policy.RETRY -> "Unknown" + else -> "? $reason" + } + }") + when (reason) { + Policy.LICENSED -> SuspendedStorage(this).removeCrack("g_p_l") + Policy.NOT_LICENSED -> SuspendedStorage(this).reportCrack("g_p_l", "n_p") + Policy.RETRY -> SuspendedStorage(this).reportCrack("g_p_l", "rt") + } + } } private class Adapter : RecyclerView.Adapter() { -- cgit v1.2.3