myanmarking
10/02/2025, 2:12 PMmyanmarking
10/02/2025, 2:12 PMsealed class PrepareDevices {
val canEditConfig: Boolean = this !is Connecting
val canEditConfig2: Boolean = this != Connecting
object Initial: PrepareDevices()
object Connecting: PrepareDevices()
object Connected: PrepareDevices()
}
class TestSingleton{
@Test
fun test(){
val value = PrepareDevices.Initial
Assert.assertTrue(value.canEditConfig)
}
@Test
fun test2(){
val value = PrepareDevices.Connecting
Assert.assertTrue(value.canEditConfig.not())
}
@Test
fun test3(){
val value = PrepareDevices.Initial
Assert.assertTrue(value.canEditConfig2)
}
@Test
fun test4(){
val value = PrepareDevices.Connecting
Assert.assertTrue(value.canEditConfig2.not())
}
}
Why does test4 fail. It doesnt make sense to meVilgot Fredenberg
10/02/2025, 2:20 PMdata objectephemient
10/02/2025, 2:45 PMConnecting instance before it has been initializedephemient
10/02/2025, 2:55 PMephemient
10/02/2025, 2:56 PMdata issue, nor Compose relatedZach Klippenstein (he/him) [MOD]
10/02/2025, 5:46 PMephemient
10/02/2025, 5:58 PMsealed class PrepareDevices(
val canEditConfig: Boolean,
) {
object Initial: PrepareDevices(
canEditConfig = true,
)
object Connecting: PrepareDevices(
canEditConfig = false,
)
object Connected: PrepareDevices(
canEditConfig = true,
)
}
or as overrides
sealed class PrepareDevices {
abstract val canEditConfig: Boolean
object Initial: PrepareDevices {
override val canEditConfig: Boolean
get() = true
}
object Connecting: PrepareDevices {
override val canEditConfig: Boolean
get() = false
}
object Connected: PrepareDevices {
override val canEditConfig: Boolean
get() = true
}
}