From 00702ae9246ef607dd1e2b36842cde67f970270f Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Sat, 7 Dec 2019 20:02:10 +0100 Subject: [PATCH] rc version refactor --- .../versionChecker/VersionCheckerPlugin.kt | 62 ++++++++++--------- build.gradle | 2 +- 2 files changed, 35 insertions(+), 29 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/versionChecker/VersionCheckerPlugin.kt b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/versionChecker/VersionCheckerPlugin.kt index 5f643b1963..8ec716a872 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/versionChecker/VersionCheckerPlugin.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/versionChecker/VersionCheckerPlugin.kt @@ -3,7 +3,11 @@ package info.nightscout.androidaps.plugins.constraints.versionChecker import info.nightscout.androidaps.BuildConfig import info.nightscout.androidaps.MainApp import info.nightscout.androidaps.R -import info.nightscout.androidaps.interfaces.* +import info.nightscout.androidaps.interfaces.Constraint +import info.nightscout.androidaps.interfaces.ConstraintsInterface +import info.nightscout.androidaps.interfaces.PluginBase +import info.nightscout.androidaps.interfaces.PluginDescription +import info.nightscout.androidaps.interfaces.PluginType import info.nightscout.androidaps.plugins.bus.RxBus import info.nightscout.androidaps.plugins.general.overview.events.EventNewNotification import info.nightscout.androidaps.plugins.general.overview.notifications.Notification @@ -18,25 +22,23 @@ import kotlin.math.roundToInt * */ object VersionCheckerPlugin : PluginBase(PluginDescription() - .mainType(PluginType.CONSTRAINTS) - .neverVisible(true) - .alwaysEnabled(true) - .showInList(false) - .pluginName(R.string.versionChecker)), ConstraintsInterface { + .mainType(PluginType.CONSTRAINTS) + .neverVisible(true) + .alwaysEnabled(true) + .showInList(false) + .pluginName(R.string.versionChecker)), ConstraintsInterface { - override fun onStart() { - super.onStart() - if (BuildConfig.VERSION_NAME.contains("RC", ignoreCase = true)) { - GRACE_PERIOD_WARNING = TimeUnit.DAYS.toMillis(0) - GRACE_PERIOD_OLD = TimeUnit.DAYS.toMillis(7) - GRACE_PERIOD_VERY_OLD = TimeUnit.DAYS.toMillis(14) + private val gracePeriod: GracePeriod + get() = if ((BuildConfig.VERSION_NAME.contains("RC", ignoreCase = true))) { + GracePeriod.RC + } else { + GracePeriod.RELEASE } - } override fun isClosedLoopAllowed(value: Constraint): Constraint { checkWarning() triggerCheckVersion() - return if (isOldVersion(GRACE_PERIOD_VERY_OLD)) + return if (isOldVersion(gracePeriod.veryOld.daysToMillis())) value.set(false, MainApp.gs(R.string.very_old_version), this) else value @@ -44,22 +46,22 @@ object VersionCheckerPlugin : PluginBase(PluginDescription() private fun checkWarning() { val now = System.currentTimeMillis() - + if (!SP.contains(R.string.key_last_versionchecker_plugin_warning)) { SP.putLong(R.string.key_last_versionchecker_plugin_warning, now) return } - if (isOldVersion(GRACE_PERIOD_WARNING) && shouldWarnAgain(now)) { + if (isOldVersion(gracePeriod.warning.daysToMillis()) && shouldWarnAgain(now)) { // store last notification time SP.putLong(R.string.key_last_versionchecker_plugin_warning, now) //notify val message = MainApp.gs(R.string.new_version_warning, - ((now - SP.getLong(R.string.key_last_time_this_version_detected, now)) / TimeUnit.DAYS.toMillis(1).toDouble()).roundToInt(), - (GRACE_PERIOD_OLD / TimeUnit.DAYS.toMillis(1).toDouble()).roundToInt(), - (GRACE_PERIOD_VERY_OLD / TimeUnit.DAYS.toMillis(1).toDouble()).roundToInt() + ((now - SP.getLong(R.string.key_last_time_this_version_detected, now)) / 1L.daysToMillis().toDouble()).roundToInt(), + gracePeriod.old, + gracePeriod.veryOld ) val notification = Notification(Notification.OLDVERSION, message, Notification.NORMAL) RxBus.send(EventNewNotification(notification)) @@ -67,22 +69,26 @@ object VersionCheckerPlugin : PluginBase(PluginDescription() } private fun shouldWarnAgain(now: Long) = - now > SP.getLong(R.string.key_last_versionchecker_plugin_warning, 0) + WARN_EVERY + now > SP.getLong(R.string.key_last_versionchecker_plugin_warning, 0) + WARN_EVERY override fun applyMaxIOBConstraints(maxIob: Constraint): Constraint = - if (isOldVersion(GRACE_PERIOD_OLD)) - maxIob.set(0.toDouble(), MainApp.gs(R.string.old_version), this) - else - maxIob + if (isOldVersion(gracePeriod.old.daysToMillis())) + maxIob.set(0.toDouble(), MainApp.gs(R.string.old_version), this) + else + maxIob private fun isOldVersion(gracePeriod: Long): Boolean { val now = System.currentTimeMillis() - return now > SP.getLong(R.string.key_last_time_this_version_detected, 0) + gracePeriod + return now > SP.getLong(R.string.key_last_time_this_version_detected, 0) + gracePeriod } private val WARN_EVERY = TimeUnit.DAYS.toMillis(1) - private var GRACE_PERIOD_WARNING = TimeUnit.DAYS.toMillis(30) - private var GRACE_PERIOD_OLD = TimeUnit.DAYS.toMillis(60) - private var GRACE_PERIOD_VERY_OLD = TimeUnit.DAYS.toMillis(90) } + +enum class GracePeriod(val warning: Long, val old: Long, val veryOld: Long) { + RELEASE(30, 60, 90), + RC(0, 7, 14) +} + +private fun Long.daysToMillis() = TimeUnit.DAYS.toMillis(this) \ No newline at end of file diff --git a/build.gradle b/build.gradle index d10498081c..3327014f1f 100644 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ buildscript { maven { url 'https://maven.fabric.io/public' } } dependencies { - classpath 'com.android.tools.build:gradle:3.5.2' + classpath 'com.android.tools.build:gradle:3.5.3' classpath 'com.google.gms:google-services:4.3.3' classpath 'io.fabric.tools:gradle:1.31.2'