diff options
author | YuutaW <17158086+Trumeet@users.noreply.github.com> | 2019-02-28 19:50:55 -0800 |
---|---|---|
committer | YuutaW <17158086+Trumeet@users.noreply.github.com> | 2019-02-28 19:50:55 -0800 |
commit | 39de35e09424c573670d4c56742c17a3bdbe8108 (patch) | |
tree | 7b339eae41a14d0e54da967b65c2c78e66fcd9f0 /app/src/main/java/moe/yuuta/workmode/MainActivity.kt | |
parent | 1ff7d4d73a0c7d89487f40ccdab7433685e2200b (diff) | |
download | WorkMode-39de35e09424c573670d4c56742c17a3bdbe8108.tar WorkMode-39de35e09424c573670d4c56742c17a3bdbe8108.tar.gz WorkMode-39de35e09424c573670d4c56742c17a3bdbe8108.tar.bz2 WorkMode-39de35e09424c573670d4c56742c17a3bdbe8108.zip |
feat(app): implement Google Play App Licensing
Signed-off-by: YuutaW <17158086+Trumeet@users.noreply.github.com>
Diffstat (limited to 'app/src/main/java/moe/yuuta/workmode/MainActivity.kt')
-rw-r--r-- | app/src/main/java/moe/yuuta/workmode/MainActivity.kt | 31 |
1 files changed, 30 insertions, 1 deletions
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<Adapter.VH>() { |