aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/moe/yuuta/workmode/MainActivity.kt
diff options
context:
space:
mode:
authorYuutaW <17158086+Trumeet@users.noreply.github.com>2019-02-28 19:50:55 -0800
committerYuutaW <17158086+Trumeet@users.noreply.github.com>2019-02-28 19:50:55 -0800
commit39de35e09424c573670d4c56742c17a3bdbe8108 (patch)
tree7b339eae41a14d0e54da967b65c2c78e66fcd9f0 /app/src/main/java/moe/yuuta/workmode/MainActivity.kt
parent1ff7d4d73a0c7d89487f40ccdab7433685e2200b (diff)
downloadWorkMode-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.kt31
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>() {