From 092400f7a01a52847cbf2507ee00188b84de217d Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Wed, 17 Apr 2019 22:45:21 +0200 Subject: [PATCH] check regularly --- .../nightscout/androidaps/MainActivity.java | 8 ++++++- .../versionChecker/VersionCheckerPlugin.kt | 21 ++++++++++++++++--- app/src/main/res/values/strings.xml | 4 +++- 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/MainActivity.java b/app/src/main/java/info/nightscout/androidaps/MainActivity.java index 7ce5ae2beb..31d462a007 100644 --- a/app/src/main/java/info/nightscout/androidaps/MainActivity.java +++ b/app/src/main/java/info/nightscout/androidaps/MainActivity.java @@ -48,7 +48,9 @@ import info.nightscout.androidaps.events.EventFeatureRunning; import info.nightscout.androidaps.events.EventPreferenceChange; import info.nightscout.androidaps.events.EventRefreshGui; import info.nightscout.androidaps.interfaces.PluginBase; +import info.nightscout.androidaps.interfaces.PluginType; import info.nightscout.androidaps.logging.L; +import info.nightscout.androidaps.plugins.aps.loop.LoopPlugin; import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions; import info.nightscout.androidaps.plugins.general.nsclient.data.NSSettingsStatus; import info.nightscout.androidaps.plugins.general.versionChecker.VersionCheckerUtilsKt; @@ -115,7 +117,11 @@ public class MainActivity extends AppCompatActivity { public void onPageScrollStateChanged(int state) { } }); - VersionCheckerUtilsKt.checkVersion(); + + //Check here if loop plugin is disabled. Else check via constraints + if (!LoopPlugin.getPlugin().isEnabled(PluginType.LOOP)) + VersionCheckerUtilsKt.checkVersion(); + FabricPrivacy.setUserStats(); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/versionChecker/VersionCheckerPlugin.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/versionChecker/VersionCheckerPlugin.kt index d80b3cc7d0..7be99e2369 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/versionChecker/VersionCheckerPlugin.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/versionChecker/VersionCheckerPlugin.kt @@ -23,6 +23,7 @@ object VersionCheckerPlugin : PluginBase(PluginDescription() override fun isClosedLoopAllowed(value: Constraint): Constraint { checkWarning() + checkUpdate() return if (isOldVersion(GRACE_PERIOD_VERY_OLD)) value.set(false, MainApp.gs(R.string.very_old_version), this) else @@ -33,7 +34,7 @@ object VersionCheckerPlugin : PluginBase(PluginDescription() val now = System.currentTimeMillis() if (isOldVersion(GRACE_PERIOD_WARNING) && shouldWarnAgain(now)) { // store last notification time - SP.putLong(R.string.key_last_versionchecker_waring, now) + SP.putLong(R.string.key_last_versionchecker_warning, now) //notify val message = MainApp.gs(R.string.new_version_warning, Math.round(now / TimeUnit.DAYS.toMillis(1).toDouble())) @@ -42,8 +43,21 @@ object VersionCheckerPlugin : PluginBase(PluginDescription() } } + private fun checkUpdate() { + val now = System.currentTimeMillis() + if (shouldCheckVersionAgain(now)) { + // store last notification time + SP.putLong(R.string.key_last_versioncheck, now) + + checkVersion() + } + } + + private fun shouldCheckVersionAgain(now: Long) = + now > SP.getLong(R.string.key_last_versioncheck, 0) + CHECK_EVERY + private fun shouldWarnAgain(now: Long) = - now > SP.getLong(R.string.key_last_versionchecker_waring, 0) + WARN_EVERY + now > SP.getLong(R.string.key_last_versionchecker_warning, 0) + WARN_EVERY override fun applyMaxIOBConstraints(maxIob: Constraint): Constraint = if (isOldVersion(GRACE_PERIOD_OLD)) @@ -53,9 +67,10 @@ object VersionCheckerPlugin : PluginBase(PluginDescription() private fun isOldVersion(gracePeriod: Long): Boolean { val now = System.currentTimeMillis() - return now > SP.getLong(R.string.key_new_version_available_since, 0) + gracePeriod + return now > SP.getLong(R.string.key_new_version_available_since, 0) + gracePeriod } + val CHECK_EVERY = TimeUnit.DAYS.toMillis(1) val WARN_EVERY = TimeUnit.DAYS.toMillis(1) val GRACE_PERIOD_WARNING = TimeUnit.DAYS.toMillis(30) val GRACE_PERIOD_OLD = TimeUnit.DAYS.toMillis(60) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b149bd0f40..9aa326361b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1328,7 +1328,9 @@ Profile switch created Version Checker new_version_available_since - last_versionchecker_waring + last_versionchecker_waring + key_last_versioncheck + old version very old version New version for at least %1$d days available! Fallback to LGS after 60 days, loop will be disabled after 90 days