diff --git a/gradle.properties b/gradle.properties
index d11d9555972860ca7434e98e7d843dd5d4a1ff67..8478b5b92bbb8ab59e193123ada9c159134a5cd7 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,6 +1,6 @@
 GROUP=org.briarproject
 POM_ARTIFACT_ID=dont-kill-me-lib
-VERSION_NAME=0.2.4
+VERSION_NAME=0.2.5
 
 POM_NAME=Do not kill me library
 POM_DESCRIPTION=An Android library helping to keep a foreground service with wake-locks running. No other use-cases considered.
diff --git a/lib/build.gradle b/lib/build.gradle
index c4d84eaffa46b32e7402a386c99935e7d898880f..f1a9a5e665173925a466b2fc62c646ed9d0e8cb3 100644
--- a/lib/build.gradle
+++ b/lib/build.gradle
@@ -36,10 +36,15 @@ kotlin {
 
 dependencies {
     implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
+    testImplementation 'org.junit.jupiter:junit-jupiter:5.8.2'
 }
 
 signing {
     useGpgCmd()
 }
 
+tasks.withType(Test) {
+    useJUnitPlatform()
+}
+
 apply from: "${rootProject.rootDir}/gradle/ktlint.gradle"
diff --git a/lib/src/main/java/org/briarproject/android/dontkillmelib/DozeHelperImpl.kt b/lib/src/main/java/org/briarproject/android/dontkillmelib/DozeHelperImpl.kt
index b6937e1c858c384d90d69a450a56b7412a20d6c9..802307dd7989985b908346346b010c55899a1c94 100644
--- a/lib/src/main/java/org/briarproject/android/dontkillmelib/DozeHelperImpl.kt
+++ b/lib/src/main/java/org/briarproject/android/dontkillmelib/DozeHelperImpl.kt
@@ -8,7 +8,7 @@ public class DozeHelperImpl : DozeHelper {
         return DozeUtils.needsDozeWhitelisting(appContext) ||
                 HuaweiUtils.protectedAppsNeedsToBeShown(appContext) ||
                 HuaweiUtils.appLaunchNeedsToBeShown(appContext) ||
-                XiaomiUtils.xiaomiRecentAppsNeedsToBeShown ||
+                XiaomiUtils.xiaomiRecentAppsNeedsToBeShown() ||
                 XiaomiUtils.xiaomiLockAppsNeedsToBeShown(appContext)
     }
 }
diff --git a/lib/src/main/java/org/briarproject/android/dontkillmelib/HuaweiUtils.kt b/lib/src/main/java/org/briarproject/android/dontkillmelib/HuaweiUtils.kt
index 329fa5b0d327e8f85fe93cfd14096eb008a4473a..0955f1e28eaf7e0ef2cf2bd7671745008b41f91e 100644
--- a/lib/src/main/java/org/briarproject/android/dontkillmelib/HuaweiUtils.kt
+++ b/lib/src/main/java/org/briarproject/android/dontkillmelib/HuaweiUtils.kt
@@ -44,14 +44,16 @@ public object HuaweiUtils {
     }
 
     @JvmStatic
-    public val huaweiAppListIntent: Intent = Intent().apply {
-        setClassName(PACKAGE_NAME_HUAWEI, CLASS_NAME_APP_LIST)
-    }
+    public val huaweiAppListIntent: Intent
+        get() = Intent().apply {
+            setClassName(PACKAGE_NAME_HUAWEI, CLASS_NAME_APP_LIST)
+        }
 
     @JvmStatic
-    public val huaweiPowerManagerIntent: Intent = Intent().apply {
-        setClassName(PACKAGE_NAME_HUAWEI, CLASS_NAME_POWER_MANAGER)
-    }
+    public val huaweiPowerManagerIntent: Intent
+        get() = Intent().apply {
+            setClassName(PACKAGE_NAME_HUAWEI, CLASS_NAME_POWER_MANAGER)
+        }
 
     /**
      * First tries [huaweiAppListIntent] and then falls back to [huaweiPowerManagerIntent].
@@ -65,8 +67,9 @@ public object HuaweiUtils {
     )
 
     @JvmStatic
-    public val huaweiProtectedAppsIntent: Intent = Intent().apply {
-        setClassName(PACKAGE_NAME_HUAWEI, CLASS_NAME_PROTECTED_APPS)
-    }
+    public val huaweiProtectedAppsIntent: Intent
+        get() = Intent().apply {
+            setClassName(PACKAGE_NAME_HUAWEI, CLASS_NAME_PROTECTED_APPS)
+        }
 
 }
diff --git a/lib/src/main/java/org/briarproject/android/dontkillmelib/XiaomiUtils.kt b/lib/src/main/java/org/briarproject/android/dontkillmelib/XiaomiUtils.kt
index 2b025930882f609cef68ba07c02d605ea85f2bef..5620a863a9093d1e2980fbb6e6ca3f5d25484ca3 100644
--- a/lib/src/main/java/org/briarproject/android/dontkillmelib/XiaomiUtils.kt
+++ b/lib/src/main/java/org/briarproject/android/dontkillmelib/XiaomiUtils.kt
@@ -26,27 +26,29 @@ public object XiaomiUtils {
     @JvmStatic
     public fun isMiuiVersionAtLeast(major: Int, minor: Int): Boolean {
         // E.g. "V12.5.3.0.QFGMIXM"
-        var version = INCREMENTAL
+        val version = INCREMENTAL
         Log.i(TAG, "MIUI version $version")
-        version = version.replace("[^\\d.]".toRegex(), "")
-        val parts = version.split("\\.")
-        if (parts.size >= 2) {
-            try {
-                val maj = parts[0].toInt()
-                val min = parts[1].toInt()
-                Log.i(TAG, "Parsed version $maj.$min")
-                return maj > major || (maj == major && min >= minor)
-            } catch (e: NumberFormatException) {
-                // Fall through
-            }
+        return try {
+            val pair = parseMiuiVersion(version)
+            val maj = pair.first
+            val min = pair.second
+            Log.i(TAG, "Parsed version $maj.$min")
+            maj > major || (maj == major && min >= minor)
+        } catch (e: Exception) {
+            Log.w(TAG, "Could not parse MIUI version")
+            false
         }
-        Log.w(TAG, "Could not parse MIUI version")
-        return false
+    }
+
+    public fun parseMiuiVersion(version: String): Pair<Int, Int> {
+        val parts = version.replace("[^\\d.]".toRegex(), "").split(".")
+        if (parts.size < 2) throw IllegalArgumentException()
+        return Pair(parts[0].toInt(), parts[1].toInt())
     }
 
     @JvmStatic
-    public val xiaomiRecentAppsNeedsToBeShown: Boolean
-        get() = isXiaomiOrRedmiDevice && !isMiuiVersionAtLeast(12, 5)
+    public fun xiaomiRecentAppsNeedsToBeShown(): Boolean =
+        isXiaomiOrRedmiDevice && !isMiuiVersionAtLeast(12, 5)
 
     @JvmStatic
     public fun xiaomiLockAppsNeedsToBeShown(context: Context): Boolean {
@@ -57,7 +59,8 @@ public object XiaomiUtils {
     }
 
     @JvmStatic
-    public val xiaomiLockAppsIntent: Intent = Intent().apply {
-        setClassName(PACKAGE_NAME, CLASS_NAME)
-    }
+    public val xiaomiLockAppsIntent: Intent
+        get() = Intent().apply {
+            setClassName(PACKAGE_NAME, CLASS_NAME)
+        }
 }
diff --git a/lib/src/test/java/org/briarproject/android/dontkillmelib/XiaomiUtilsTest.kt b/lib/src/test/java/org/briarproject/android/dontkillmelib/XiaomiUtilsTest.kt
new file mode 100644
index 0000000000000000000000000000000000000000..96777ff6d6624e345ddb114c3e95f3f8222d8ae3
--- /dev/null
+++ b/lib/src/test/java/org/briarproject/android/dontkillmelib/XiaomiUtilsTest.kt
@@ -0,0 +1,14 @@
+package org.briarproject.android.dontkillmelib
+
+import org.briarproject.android.dontkillmelib.XiaomiUtils.parseMiuiVersion
+import org.junit.jupiter.api.Assertions.assertEquals
+import org.junit.jupiter.api.Test
+
+public class XiaomiUtilsTest {
+
+    @Test
+    public fun testParsesMiuiVersion() {
+        val version = "V12.5.3.0.QFGMIXM"
+        assertEquals(Pair(12, 5), parseMiuiVersion(version))
+    }
+}