commit
fb9325384e
4 changed files with 69 additions and 2 deletions
|
@ -120,7 +120,7 @@ android {
|
||||||
targetSdkVersion 28
|
targetSdkVersion 28
|
||||||
multiDexEnabled true
|
multiDexEnabled true
|
||||||
versionCode 1500
|
versionCode 1500
|
||||||
version "2.8.2"
|
version "2.8.2.1"
|
||||||
buildConfigField "String", "VERSION", '"' + version + '"'
|
buildConfigField "String", "VERSION", '"' + version + '"'
|
||||||
buildConfigField "String", "BUILDVERSION", '"' + generateGitBuild() + '-' + generateDate() + '"'
|
buildConfigField "String", "BUILDVERSION", '"' + generateGitBuild() + '-' + generateDate() + '"'
|
||||||
buildConfigField "String", "REMOTE", '"' + generateGitRemote() + '"'
|
buildConfigField "String", "REMOTE", '"' + generateGitRemote() + '"'
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
package info.nightscout.androidaps.plugins.constraints.versionChecker
|
||||||
|
|
||||||
|
import org.junit.Assert.*
|
||||||
|
import org.junit.Test
|
||||||
|
|
||||||
|
class AllowedVersionsTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun generateSupportedVersionsTest() {
|
||||||
|
val definition = AllowedVersions().generateSupportedVersions()
|
||||||
|
assertNull(AllowedVersions().findByApi(definition, 0))
|
||||||
|
assertFalse(AllowedVersions().findByApi(definition, 1)?.has("supported") ?: true)
|
||||||
|
assertFalse(AllowedVersions().findByApi(definition, 23)?.has("supported") ?: true)
|
||||||
|
assertEquals("2.6.2", AllowedVersions().findByApi(definition, 24)?.getString("supported"))
|
||||||
|
assertEquals("2.6.2", AllowedVersions().findByApi(definition, 25)?.getString("supported"))
|
||||||
|
assertEquals("2.8.2", AllowedVersions().findByApi(definition, 26)?.getString("supported"))
|
||||||
|
assertEquals("2.8.2", AllowedVersions().findByApi(definition, 27)?.getString("supported"))
|
||||||
|
assertEquals("2.8.2", AllowedVersions().findByApi(definition, 28)?.getString("supported"))
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,45 @@
|
||||||
|
package info.nightscout.androidaps.plugins.constraints.versionChecker
|
||||||
|
|
||||||
|
import org.json.JSONArray
|
||||||
|
import org.json.JSONException
|
||||||
|
import org.json.JSONObject
|
||||||
|
|
||||||
|
class AllowedVersions {
|
||||||
|
|
||||||
|
fun generateSupportedVersions(): String =
|
||||||
|
JSONArray()
|
||||||
|
.put(JSONObject().apply {
|
||||||
|
put("minAndroid", 1) // 1.0
|
||||||
|
put("maxAndroid", 23) // 6.0.1
|
||||||
|
})
|
||||||
|
.put(JSONObject().apply {
|
||||||
|
put("minAndroid", 24) // 7.0
|
||||||
|
put("maxAndroid", 25) // 7.1.2
|
||||||
|
put("supported", "2.6.2")
|
||||||
|
})
|
||||||
|
.put(JSONObject().apply {
|
||||||
|
put("minAndroid", 26) // 8.0
|
||||||
|
put("maxAndroid", 27) // 8.1
|
||||||
|
put("supported", "2.8.2")
|
||||||
|
})
|
||||||
|
.put(JSONObject().apply {
|
||||||
|
put("minAndroid", 28) // 9.0
|
||||||
|
put("maxAndroid", 99)
|
||||||
|
put("supported", "2.8.2")
|
||||||
|
})
|
||||||
|
.toString()
|
||||||
|
|
||||||
|
fun findByApi(definition: String?, api: Int): JSONObject? {
|
||||||
|
if (definition == null) return null
|
||||||
|
try {
|
||||||
|
val array = JSONArray(definition)
|
||||||
|
for (i in 0 until array.length()) {
|
||||||
|
val record = array[i] as JSONObject
|
||||||
|
if (api in record.getInt("minAndroid")..record.getInt("maxAndroid")) return record
|
||||||
|
}
|
||||||
|
} catch (e: JSONException) {
|
||||||
|
}
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -2,6 +2,7 @@ package info.nightscout.androidaps.plugins.constraints.versionChecker
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.net.ConnectivityManager
|
import android.net.ConnectivityManager
|
||||||
|
import android.os.Build
|
||||||
import info.nightscout.androidaps.core.R
|
import info.nightscout.androidaps.core.R
|
||||||
import info.nightscout.androidaps.interfaces.ConfigInterface
|
import info.nightscout.androidaps.interfaces.ConfigInterface
|
||||||
import info.nightscout.androidaps.logging.AAPSLogger
|
import info.nightscout.androidaps.logging.AAPSLogger
|
||||||
|
@ -49,7 +50,8 @@ class VersionCheckerUtils @Inject constructor(
|
||||||
private fun checkVersion() = if (isConnected()) {
|
private fun checkVersion() = if (isConnected()) {
|
||||||
Thread {
|
Thread {
|
||||||
try {
|
try {
|
||||||
val version: String? = findVersion(URL("https://raw.githubusercontent.com/nightscout/AndroidAPS/master/app/build.gradle").readText())
|
val definition: String = URL("https://raw.githubusercontent.com/nightscout/AndroidAPS/versions/definition.json").readText()
|
||||||
|
val version: String? = AllowedVersions().findByApi(definition, Build.VERSION.SDK_INT)?.optString("supported")
|
||||||
compareWithCurrentVersion(version, config.VERSION_NAME)
|
compareWithCurrentVersion(version, config.VERSION_NAME)
|
||||||
} catch (e: IOException) {
|
} catch (e: IOException) {
|
||||||
aapsLogger.error(LTag.CORE, "Github master version check error: $e")
|
aapsLogger.error(LTag.CORE, "Github master version check error: $e")
|
||||||
|
|
Loading…
Reference in a new issue