Skip to content

Commit

Permalink
Fix missing MET value if MET string has leading spaces
Browse files Browse the repository at this point in the history
  • Loading branch information
bailuk committed May 12, 2024
1 parent 6766969 commit ddaa83b
Show file tree
Hide file tree
Showing 6 changed files with 96 additions and 54 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ import java.util.Collections
class SolidMET(storage: StorageInterface, private val preset: Int) : SolidString(
storage, SolidMET::class.java.simpleName + "_" + preset
) {

override fun getLabel(): String {
return Res.str().p_met()
}


override fun getValueAsString(): String {
var result = super.getValueAsString()
if (getStorage().isDefaultString(result)) {
Expand All @@ -36,13 +36,13 @@ class SolidMET(storage: StorageInterface, private val preset: Int) : SolidString

val metValue: Float
get() {
val `val` = getValueAsString()
val stringValue = getValueAsString().trim()
val from = 0
val to = `val`.indexOf(' ')
val to = stringValue.indexOf(' ')
var r = 0f
if (to > from) {
r = try {
val met = `val`.substring(from, to)
val met = stringValue.substring(from, to)
met.toFloat()
} catch (e: NumberFormatException) {
0f
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package ch.bailu.aat_lib.preferences.mock

import ch.bailu.aat_lib.preferences.OnPreferencesChanged
import ch.bailu.aat_lib.preferences.StorageInterface

class MockStorage : StorageInterface {
var mockIntValue: Int = 0
var mockStringValue = ""


override fun readString(key: String): String {
return mockStringValue
}

override fun writeString(key: String, value: String) {
mockStringValue = value
}

override fun readInteger(key: String): Int {
return mockIntValue
}

override fun writeInteger(key: String, value: Int) {
mockIntValue = value
}

override fun writeIntegerForce(key: String, value: Int) {
TODO("Not yet implemented")
}

override fun readLong(key: String): Long {
TODO("Not yet implemented")
}

override fun writeLong(key: String, value: Long) {
TODO("Not yet implemented")
}

override fun register(onPreferencesChanged: OnPreferencesChanged) {
TODO("Not yet implemented")
}

override fun unregister(onPreferencesChanged: OnPreferencesChanged) {
TODO("Not yet implemented")
}

override fun isDefaultString(s: String): Boolean {
return s.isEmpty()
}

override fun getDefaultString(): String {
return ""
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package ch.bailu.aat_lib.preferences.presets

import ch.bailu.aat_lib.preferences.mock.MockStorage
import org.junit.jupiter.api.Assertions.*

import org.junit.jupiter.api.Test

class SolidMETTest {

@Test
fun getMetValue() {
val mockStorage = MockStorage()
val solidMET = SolidMET(mockStorage, 0)

mockStorage.mockStringValue = " 6.0 hiking, cross country"
assertEquals(6.0f, solidMET.metValue)

mockStorage.mockStringValue = "6.8 Radfahren, mittlere Leistung"
assertEquals(6.8f, solidMET.metValue)

mockStorage.mockStringValue = "2.0 Test"
assertEquals(2.0f, solidMET.metValue)

mockStorage.mockStringValue = "6 Radfahren, mittlere Leistung"
assertEquals(6f, solidMET.metValue)

mockStorage.mockStringValue = "6Radfahren, mittlere Leistung"
assertEquals(0f, solidMET.metValue)

mockStorage.mockStringValue = "Radfahren, mittlere Leistung"
assertEquals(0f, solidMET.metValue)

}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package ch.bailu.aat_lib.preferences.system

import ch.bailu.aat_lib.preferences.mock.MockStorage
import org.junit.jupiter.api.Assertions.*
import org.junit.jupiter.api.Test

Expand All @@ -8,7 +9,7 @@ class TestSolidCacheSize {
@Test
fun testValues() {
val max = Math.min(Runtime.getRuntime().maxMemory(), SolidCacheSize.MAX_CACHE_SIZE)
val storage = TestStorage()
val storage = MockStorage()
val solid = SolidCacheSize(storage)

assertEquals(11, solid.length())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,51 +2,3 @@ package ch.bailu.aat_lib.preferences.system

import ch.bailu.aat_lib.preferences.OnPreferencesChanged
import ch.bailu.aat_lib.preferences.StorageInterface

class TestStorage : StorageInterface {
var intVal: Int = 0

override fun readString(key: String): String {
TODO("Not yet implemented")
}

override fun writeString(key: String, value: String) {
TODO("Not yet implemented")
}

override fun readInteger(key: String): Int {
return intVal
}

override fun writeInteger(key: String, value: Int) {
intVal = value
}

override fun writeIntegerForce(key: String, value: Int) {
TODO("Not yet implemented")
}

override fun readLong(key: String): Long {
TODO("Not yet implemented")
}

override fun writeLong(key: String, value: Long) {
TODO("Not yet implemented")
}

override fun register(onPreferencesChanged: OnPreferencesChanged) {
TODO("Not yet implemented")
}

override fun unregister(onPreferencesChanged: OnPreferencesChanged) {
TODO("Not yet implemented")
}

override fun isDefaultString(s: String): Boolean {
TODO("Not yet implemented")
}

override fun getDefaultString(): String {
TODO("Not yet implemented")
}
}
1 change: 1 addition & 0 deletions metadata/en-US/changelogs/39.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@ v1.25.2 (39)
- Fix crash on Kotlin null check: Allow parameter `Intent` to be null in `AbsService::onStartCommand()`
- Fix crash on Kotlin null check: Allow parameter `Intent` to be null in `PreferencesActivity::onActivityResult()`
- Fix crash on Kotlin null check: Return value of `MapMetrics.fromPixel(...)``
- Fix missing MET value if MET string has leading spaces

0 comments on commit ddaa83b

Please sign in to comment.