refactor: leverage new dependency features from recent updates (#5057)

This commit is contained in:
James Rich 2026-04-10 17:51:08 -05:00 committed by GitHub
parent 929e273978
commit 9c8532f80d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
18 changed files with 47 additions and 57 deletions

View file

@ -16,7 +16,7 @@
*/
package org.meshtastic.core.barcode
import androidx.compose.ui.test.junit4.createComposeRule
import androidx.compose.ui.test.junit4.v2.createComposeRule
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith

View file

@ -41,8 +41,6 @@ kotlin {
}
androidMain.dependencies { api(libs.androidx.core.ktx) }
val androidHostTest by getting { dependencies { implementation(libs.robolectric) } }
commonTest.dependencies { implementation(libs.kotlinx.coroutines.test) }
}
}

View file

@ -18,6 +18,7 @@ package org.meshtastic.core.database
import androidx.room3.TypeConverter
import co.touchlab.kermit.Logger
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.json.Json
import okio.ByteString
import okio.ByteString.Companion.toByteString
@ -33,10 +34,12 @@ import org.meshtastic.proto.User
@Suppress("TooManyFunctions")
class Converters {
@OptIn(ExperimentalSerializationApi::class)
private val json = Json {
isLenient = true
ignoreUnknownKeys = true
encodeDefaults = true
exceptionsWithDebugInfo = false
}
@TypeConverter fun dataFromString(value: String): DataPacket = json.decodeFromString(DataPacket.serializer(), value)

View file

@ -63,9 +63,6 @@ kotlin {
commonTest.dependencies {
implementation(projects.core.testing)
implementation(libs.kotlinx.coroutines.test)
implementation(libs.turbine)
implementation(libs.kotest.assertions)
implementation(libs.kotest.property)
}
}
}

View file

@ -16,6 +16,7 @@
*/
package org.meshtastic.core.network.di
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.json.Json
import org.koin.core.annotation.ComponentScan
import org.koin.core.annotation.Module
@ -24,10 +25,12 @@ import org.koin.core.annotation.Single
@Module
@ComponentScan("org.meshtastic.core.network")
class CoreNetworkModule {
@OptIn(ExperimentalSerializationApi::class)
@Single
fun provideJson(): Json = Json {
isLenient = true
ignoreUnknownKeys = true
coerceInputValues = true
exceptionsWithDebugInfo = false
}
}

View file

@ -35,6 +35,7 @@ import kotlinx.coroutines.flow.first
import kotlinx.coroutines.launch
import kotlinx.coroutines.sync.Semaphore
import kotlinx.coroutines.sync.withPermit
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.json.Json
import okio.ByteString.Companion.toByteString
import org.koin.core.annotation.Single
@ -62,7 +63,12 @@ class MQTTRepositoryImpl(
}
private var client: MQTTClient? = null
private val json = Json { ignoreUnknownKeys = true }
@OptIn(ExperimentalSerializationApi::class)
private val json = Json {
ignoreUnknownKeys = true
exceptionsWithDebugInfo = false
}
private val scope = CoroutineScope(dispatchers.default + SupervisorJob())
private var clientJob: Job? = null
private val publishSemaphore = Semaphore(20)
@ -115,6 +121,9 @@ class MQTTRepositoryImpl(
Logger.d { "MQTT parsed JSON payload successfully" }
trySend(MqttClientProxyMessage(topic = topic, text = jsonStr, retained = packet.retain))
} catch (e: kotlinx.serialization.json.JsonDecodingException) {
@OptIn(ExperimentalSerializationApi::class)
Logger.e(e) { "Failed to parse MQTT JSON: ${e.shortMessage} (path: ${e.path})" }
} catch (e: kotlinx.serialization.SerializationException) {
Logger.e(e) { "Failed to parse MQTT JSON: ${e.message}" }
} catch (e: IllegalArgumentException) {

View file

@ -56,9 +56,6 @@ kotlin {
commonTest.dependencies {
implementation(projects.core.testing)
implementation(libs.kotlinx.coroutines.test)
implementation(libs.turbine)
implementation(libs.kotest.assertions)
implementation(libs.kotest.property)
}
}
}

View file

@ -70,9 +70,6 @@ kotlin {
implementation(projects.core.testing)
implementation(libs.junit)
implementation(libs.kotlinx.coroutines.test)
implementation(libs.turbine)
implementation(libs.kotest.assertions)
implementation(libs.kotest.property)
}
val androidHostTest by getting { dependencies { implementation(libs.androidx.test.runner) } }

View file

@ -17,7 +17,7 @@
package org.meshtastic.core.ui.component
import androidx.compose.ui.test.assertIsDisplayed
import androidx.compose.ui.test.junit4.createComposeRule
import androidx.compose.ui.test.junit4.v2.createComposeRule
import androidx.compose.ui.test.onNodeWithText
import org.junit.Rule
import org.junit.Test

View file

@ -20,7 +20,7 @@ import androidx.compose.material3.Text
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.test.assertDoesNotExist
import androidx.compose.ui.test.assertIsDisplayed
import androidx.compose.ui.test.junit4.createComposeRule
import androidx.compose.ui.test.junit4.v2.createComposeRule
import androidx.compose.ui.test.onNodeWithTag
import androidx.compose.ui.test.onNodeWithText
import androidx.compose.ui.test.performClick

View file

@ -19,7 +19,7 @@ package org.meshtastic.core.ui.util
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
import androidx.compose.ui.test.assertIsDisplayed
import androidx.compose.ui.test.junit4.createComposeRule
import androidx.compose.ui.test.junit4.v2.createComposeRule
import androidx.compose.ui.test.onNodeWithText
import androidx.compose.ui.test.performClick
import org.junit.Rule