diff --git a/CHANGELOG.md b/CHANGELOG.md index f1e20d6bca..1a9b0da4fc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ Attention: don't forget to add the flag for F-Droid before release - [Refactor] Update to Kotlin 2.0 - [Refactor] Replace Ktorfit with Ktor requests in remote-controls - [Refactor] Migrate :core:preference to KMP +- [Refactor] Migrate :bridge:connection:* to KMP - [Refactor] Remove ktorfit - [FIX] Distinct fap items by id in paging sources - [FIX] Battery level charge diff --git a/build-logic/plugins/convention/src/main/kotlin/com/flipperdevices/buildlogic/model/FlavorType.kt b/build-logic/plugins/convention/src/main/kotlin/com/flipperdevices/buildlogic/model/FlavorType.kt index 9e7a53c163..fd612b50d9 100644 --- a/build-logic/plugins/convention/src/main/kotlin/com/flipperdevices/buildlogic/model/FlavorType.kt +++ b/build-logic/plugins/convention/src/main/kotlin/com/flipperdevices/buildlogic/model/FlavorType.kt @@ -10,8 +10,17 @@ package com.flipperdevices.buildlogic.model */ enum class FlavorType( val isLogEnabled: Boolean, - val crashAppOnFailedChecks: Boolean + val crashAppOnFailedChecks: Boolean, + val loggingPendingCommands: Boolean ) { - DEV(isLogEnabled = true, crashAppOnFailedChecks = true), - PROD(isLogEnabled = true, crashAppOnFailedChecks = false) + DEV( + isLogEnabled = true, + crashAppOnFailedChecks = true, + loggingPendingCommands = true + ), + PROD( + isLogEnabled = true, + crashAppOnFailedChecks = false, + loggingPendingCommands = true + ) } diff --git a/components/analytics/metric/api/build.gradle.kts b/components/analytics/metric/api/build.gradle.kts index 06665e7435..fdd6e21ddc 100644 --- a/components/analytics/metric/api/build.gradle.kts +++ b/components/analytics/metric/api/build.gradle.kts @@ -1,8 +1,5 @@ plugins { - id("flipper.android-lib") + id("flipper.multiplatform") } android.namespace = "com.flipperdevices.metric.api" - -dependencies { -} diff --git a/components/analytics/metric/api/src/androidMain/kotlin/com/flipperdevices/metric/api/MetricAndroidApi.kt b/components/analytics/metric/api/src/androidMain/kotlin/com/flipperdevices/metric/api/MetricAndroidApi.kt new file mode 100644 index 0000000000..dc8f8bf5d8 --- /dev/null +++ b/components/analytics/metric/api/src/androidMain/kotlin/com/flipperdevices/metric/api/MetricAndroidApi.kt @@ -0,0 +1,7 @@ +package com.flipperdevices.metric.api + +import com.flipperdevices.metric.api.events.SessionState + +interface MetricAndroidApi : MetricApi { + fun reportSessionState(state: SessionState) +} diff --git a/components/analytics/metric/api/src/main/java/com/flipperdevices/metric/api/events/SessionState.kt b/components/analytics/metric/api/src/androidMain/kotlin/com/flipperdevices/metric/api/events/SessionState.kt similarity index 100% rename from components/analytics/metric/api/src/main/java/com/flipperdevices/metric/api/events/SessionState.kt rename to components/analytics/metric/api/src/androidMain/kotlin/com/flipperdevices/metric/api/events/SessionState.kt diff --git a/components/analytics/metric/api/src/main/java/com/flipperdevices/metric/api/MetricApi.kt b/components/analytics/metric/api/src/commonMain/kotlin/com/flipperdevices/metric/api/MetricApi.kt similarity index 74% rename from components/analytics/metric/api/src/main/java/com/flipperdevices/metric/api/MetricApi.kt rename to components/analytics/metric/api/src/commonMain/kotlin/com/flipperdevices/metric/api/MetricApi.kt index 4fb0f2dc50..e92e5a7d35 100644 --- a/components/analytics/metric/api/src/main/java/com/flipperdevices/metric/api/MetricApi.kt +++ b/components/analytics/metric/api/src/commonMain/kotlin/com/flipperdevices/metric/api/MetricApi.kt @@ -1,11 +1,9 @@ package com.flipperdevices.metric.api import com.flipperdevices.metric.api.events.ComplexEvent -import com.flipperdevices.metric.api.events.SessionState import com.flipperdevices.metric.api.events.SimpleEvent interface MetricApi { fun reportSimpleEvent(simpleEvent: SimpleEvent, arg: String? = null) fun reportComplexEvent(complexEvent: ComplexEvent) - fun reportSessionState(state: SessionState) } diff --git a/components/analytics/metric/api/src/main/java/com/flipperdevices/metric/api/events/ComplexEvent.kt b/components/analytics/metric/api/src/commonMain/kotlin/com/flipperdevices/metric/api/events/ComplexEvent.kt similarity index 100% rename from components/analytics/metric/api/src/main/java/com/flipperdevices/metric/api/events/ComplexEvent.kt rename to components/analytics/metric/api/src/commonMain/kotlin/com/flipperdevices/metric/api/events/ComplexEvent.kt diff --git a/components/analytics/metric/api/src/main/java/com/flipperdevices/metric/api/events/SimpleEvent.kt b/components/analytics/metric/api/src/commonMain/kotlin/com/flipperdevices/metric/api/events/SimpleEvent.kt similarity index 100% rename from components/analytics/metric/api/src/main/java/com/flipperdevices/metric/api/events/SimpleEvent.kt rename to components/analytics/metric/api/src/commonMain/kotlin/com/flipperdevices/metric/api/events/SimpleEvent.kt diff --git a/components/analytics/metric/api/src/main/java/com/flipperdevices/metric/api/events/complex/DebugInfoEvent.kt b/components/analytics/metric/api/src/commonMain/kotlin/com/flipperdevices/metric/api/events/complex/DebugInfoEvent.kt similarity index 100% rename from components/analytics/metric/api/src/main/java/com/flipperdevices/metric/api/events/complex/DebugInfoEvent.kt rename to components/analytics/metric/api/src/commonMain/kotlin/com/flipperdevices/metric/api/events/complex/DebugInfoEvent.kt diff --git a/components/analytics/metric/api/src/main/java/com/flipperdevices/metric/api/events/complex/FlipperGattInfoEvent.kt b/components/analytics/metric/api/src/commonMain/kotlin/com/flipperdevices/metric/api/events/complex/FlipperGattInfoEvent.kt similarity index 100% rename from components/analytics/metric/api/src/main/java/com/flipperdevices/metric/api/events/complex/FlipperGattInfoEvent.kt rename to components/analytics/metric/api/src/commonMain/kotlin/com/flipperdevices/metric/api/events/complex/FlipperGattInfoEvent.kt diff --git a/components/analytics/metric/api/src/main/java/com/flipperdevices/metric/api/events/complex/FlipperRPCInfoEvent.kt b/components/analytics/metric/api/src/commonMain/kotlin/com/flipperdevices/metric/api/events/complex/FlipperRPCInfoEvent.kt similarity index 100% rename from components/analytics/metric/api/src/main/java/com/flipperdevices/metric/api/events/complex/FlipperRPCInfoEvent.kt rename to components/analytics/metric/api/src/commonMain/kotlin/com/flipperdevices/metric/api/events/complex/FlipperRPCInfoEvent.kt diff --git a/components/analytics/metric/api/src/main/java/com/flipperdevices/metric/api/events/complex/SubGhzProvisioningEvent.kt b/components/analytics/metric/api/src/commonMain/kotlin/com/flipperdevices/metric/api/events/complex/SubGhzProvisioningEvent.kt similarity index 100% rename from components/analytics/metric/api/src/main/java/com/flipperdevices/metric/api/events/complex/SubGhzProvisioningEvent.kt rename to components/analytics/metric/api/src/commonMain/kotlin/com/flipperdevices/metric/api/events/complex/SubGhzProvisioningEvent.kt diff --git a/components/analytics/metric/api/src/main/java/com/flipperdevices/metric/api/events/complex/SynchronizationEnd.kt b/components/analytics/metric/api/src/commonMain/kotlin/com/flipperdevices/metric/api/events/complex/SynchronizationEnd.kt similarity index 100% rename from components/analytics/metric/api/src/main/java/com/flipperdevices/metric/api/events/complex/SynchronizationEnd.kt rename to components/analytics/metric/api/src/commonMain/kotlin/com/flipperdevices/metric/api/events/complex/SynchronizationEnd.kt diff --git a/components/analytics/metric/api/src/main/java/com/flipperdevices/metric/api/events/complex/UpdateFlipperEnd.kt b/components/analytics/metric/api/src/commonMain/kotlin/com/flipperdevices/metric/api/events/complex/UpdateFlipperEnd.kt similarity index 100% rename from components/analytics/metric/api/src/main/java/com/flipperdevices/metric/api/events/complex/UpdateFlipperEnd.kt rename to components/analytics/metric/api/src/commonMain/kotlin/com/flipperdevices/metric/api/events/complex/UpdateFlipperEnd.kt diff --git a/components/analytics/metric/api/src/main/java/com/flipperdevices/metric/api/events/complex/UpdateFlipperStart.kt b/components/analytics/metric/api/src/commonMain/kotlin/com/flipperdevices/metric/api/events/complex/UpdateFlipperStart.kt similarity index 100% rename from components/analytics/metric/api/src/main/java/com/flipperdevices/metric/api/events/complex/UpdateFlipperStart.kt rename to components/analytics/metric/api/src/commonMain/kotlin/com/flipperdevices/metric/api/events/complex/UpdateFlipperStart.kt diff --git a/components/analytics/metric/impl/src/main/java/com/flipperdevices/metric/impl/api/MetricApiImpl.kt b/components/analytics/metric/impl/src/main/java/com/flipperdevices/metric/impl/api/MetricApiImpl.kt index 95aa36fc1e..2e37ce7bed 100644 --- a/components/analytics/metric/impl/src/main/java/com/flipperdevices/metric/impl/api/MetricApiImpl.kt +++ b/components/analytics/metric/impl/src/main/java/com/flipperdevices/metric/impl/api/MetricApiImpl.kt @@ -3,6 +3,7 @@ package com.flipperdevices.metric.impl.api import com.flipperdevices.core.di.AppGraph import com.flipperdevices.core.log.LogTagProvider import com.flipperdevices.core.log.error +import com.flipperdevices.metric.api.MetricAndroidApi import com.flipperdevices.metric.api.MetricApi import com.flipperdevices.metric.api.events.ComplexEvent import com.flipperdevices.metric.api.events.SessionState @@ -10,13 +11,16 @@ import com.flipperdevices.metric.api.events.SimpleEvent import com.flipperdevices.metric.impl.clickhouse.ClickhouseApi import com.flipperdevices.metric.impl.countly.CountlyApi import com.squareup.anvil.annotations.ContributesBinding +import dagger.Reusable import javax.inject.Inject +@Reusable @ContributesBinding(AppGraph::class, MetricApi::class) +@ContributesBinding(AppGraph::class, MetricAndroidApi::class) class MetricApiImpl @Inject constructor( private val countlyApi: CountlyApi, private val clickhouseApi: ClickhouseApi -) : MetricApi, LogTagProvider { +) : MetricApi, MetricAndroidApi, LogTagProvider { override val TAG = "MetricApi" override fun reportSimpleEvent(simpleEvent: SimpleEvent, arg: String?) { diff --git a/components/analytics/metric/noop/src/main/java/com/flipperdevices/metric/noop/NoopMetricApiImpl.kt b/components/analytics/metric/noop/src/main/java/com/flipperdevices/metric/noop/NoopMetricApiImpl.kt index 0b869d8333..8791d164ad 100644 --- a/components/analytics/metric/noop/src/main/java/com/flipperdevices/metric/noop/NoopMetricApiImpl.kt +++ b/components/analytics/metric/noop/src/main/java/com/flipperdevices/metric/noop/NoopMetricApiImpl.kt @@ -3,7 +3,6 @@ package com.flipperdevices.metric.noop import com.flipperdevices.core.di.AppGraph import com.flipperdevices.metric.api.MetricApi import com.flipperdevices.metric.api.events.ComplexEvent -import com.flipperdevices.metric.api.events.SessionState import com.flipperdevices.metric.api.events.SimpleEvent import com.squareup.anvil.annotations.ContributesBinding import javax.inject.Inject @@ -13,6 +12,4 @@ class NoopMetricApiImpl @Inject constructor() : MetricApi { override fun reportSimpleEvent(simpleEvent: SimpleEvent, arg: String?) = Unit override fun reportComplexEvent(complexEvent: ComplexEvent) = Unit - - override fun reportSessionState(state: SessionState) = Unit } diff --git a/components/analytics/shake2report/api/build.gradle.kts b/components/analytics/shake2report/api/build.gradle.kts index 2fe5ade7ab..b001611ac4 100644 --- a/components/analytics/shake2report/api/build.gradle.kts +++ b/components/analytics/shake2report/api/build.gradle.kts @@ -1,11 +1,11 @@ plugins { - id("flipper.android-lib") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") } android.namespace = "com.flipperdevices.shake2report.api" -dependencies { - implementation(projects.components.bridge.api) +commonDependencies { implementation(projects.components.core.ui.decompose) implementation(libs.kotlin.coroutines) diff --git a/components/analytics/shake2report/api/src/main/java/com/flipperdevices/shake2report/api/Shake2ReportApi.kt b/components/analytics/shake2report/api/src/commonMain/kotlin/com/flipperdevices/shake2report/api/Shake2ReportApi.kt similarity index 78% rename from components/analytics/shake2report/api/src/main/java/com/flipperdevices/shake2report/api/Shake2ReportApi.kt rename to components/analytics/shake2report/api/src/commonMain/kotlin/com/flipperdevices/shake2report/api/Shake2ReportApi.kt index 21f1cc884b..0b132c3cc1 100644 --- a/components/analytics/shake2report/api/src/main/java/com/flipperdevices/shake2report/api/Shake2ReportApi.kt +++ b/components/analytics/shake2report/api/src/commonMain/kotlin/com/flipperdevices/shake2report/api/Shake2ReportApi.kt @@ -1,6 +1,5 @@ package com.flipperdevices.shake2report.api -import com.flipperdevices.bridge.api.model.FlipperGATTInformation import kotlinx.coroutines.flow.StateFlow interface Shake2ReportApi { @@ -10,7 +9,6 @@ interface Shake2ReportApi { */ fun init() - fun updateGattInformation(gattInformation: FlipperGATTInformation) fun setExtra(tags: List>) fun reportException( diff --git a/components/analytics/shake2report/api/src/main/java/com/flipperdevices/shake2report/api/Shake2ReportDecomposeComponent.kt b/components/analytics/shake2report/api/src/commonMain/kotlin/com/flipperdevices/shake2report/api/Shake2ReportDecomposeComponent.kt similarity index 100% rename from components/analytics/shake2report/api/src/main/java/com/flipperdevices/shake2report/api/Shake2ReportDecomposeComponent.kt rename to components/analytics/shake2report/api/src/commonMain/kotlin/com/flipperdevices/shake2report/api/Shake2ReportDecomposeComponent.kt diff --git a/components/analytics/shake2report/impl/src/main/java/com/flipperdevices/analytics/shake2report/impl/api/Shake2ReportApiImpl.kt b/components/analytics/shake2report/impl/src/main/java/com/flipperdevices/analytics/shake2report/impl/api/Shake2ReportApiImpl.kt index 1b425f8696..6406369176 100644 --- a/components/analytics/shake2report/impl/src/main/java/com/flipperdevices/analytics/shake2report/impl/api/Shake2ReportApiImpl.kt +++ b/components/analytics/shake2report/impl/src/main/java/com/flipperdevices/analytics/shake2report/impl/api/Shake2ReportApiImpl.kt @@ -1,7 +1,6 @@ package com.flipperdevices.analytics.shake2report.impl.api import com.flipperdevices.analytics.shake2report.impl.InternalShake2Report -import com.flipperdevices.bridge.api.model.FlipperGATTInformation import com.flipperdevices.core.di.AppGraph import com.flipperdevices.shake2report.api.Shake2ReportApi import com.squareup.anvil.annotations.ContributesBinding @@ -17,10 +16,6 @@ class Shake2ReportApiImpl @Inject constructor( internalShake2Report.register() } - override fun updateGattInformation(gattInformation: FlipperGATTInformation) { - internalShake2Report.setExtra(convert(gattInformation)) - } - override fun setExtra(tags: List>) { internalShake2Report.setExtra(tags) } @@ -35,28 +30,3 @@ class Shake2ReportApiImpl @Inject constructor( override fun isInitialized() = internalShake2Report.getIsRegisteredFlow() } - -private const val FLIPPER_DEVICE_NAME = "flipper_device_name" -private const val FLIPPER_MANUFACTURER_NAME = "flipper_manufacturer_name" -private const val FLIPPER_HARDWARE_REVISION = "flipper_hardware_revision" -private const val FLIPPER_SOFTWARE_REVISION = "flipper_software_revision" -private const val FLIPPER_BATTERY_LEVEL = "flipper_battery_level" -private fun convert(gattInformation: FlipperGATTInformation): List> { - val tagsList = mutableListOf>() - gattInformation.deviceName?.let { - tagsList.add(FLIPPER_DEVICE_NAME to it) - } - gattInformation.manufacturerName?.let { - tagsList.add(FLIPPER_MANUFACTURER_NAME to it) - } - gattInformation.hardwareRevision?.let { - tagsList.add(FLIPPER_HARDWARE_REVISION to it) - } - gattInformation.softwareVersion?.let { - tagsList.add(FLIPPER_SOFTWARE_REVISION to it) - } - gattInformation.batteryLevel?.let { - tagsList.add(FLIPPER_BATTERY_LEVEL to it.toString()) - } - return tagsList -} diff --git a/components/analytics/shake2report/noop/src/main/java/com/flipperdevices/shake2report/noop/Shake2ReportStub.kt b/components/analytics/shake2report/noop/src/main/java/com/flipperdevices/shake2report/noop/Shake2ReportStub.kt index 5133f3b92c..6b42241065 100644 --- a/components/analytics/shake2report/noop/src/main/java/com/flipperdevices/shake2report/noop/Shake2ReportStub.kt +++ b/components/analytics/shake2report/noop/src/main/java/com/flipperdevices/shake2report/noop/Shake2ReportStub.kt @@ -1,6 +1,5 @@ package com.flipperdevices.shake2report.noop -import com.flipperdevices.bridge.api.model.FlipperGATTInformation import com.flipperdevices.core.di.AppGraph import com.flipperdevices.shake2report.api.Shake2ReportApi import com.squareup.anvil.annotations.ContributesBinding @@ -12,10 +11,6 @@ class Shake2ReportStub @Inject constructor() : Shake2ReportApi { override fun init() { // Do nothing } - override fun updateGattInformation(gattInformation: FlipperGATTInformation) { - // Do nothing - } - override fun setExtra(tags: List>) { // Do nothing } diff --git a/components/bridge/connection/config/api/build.gradle.kts b/components/bridge/connection/config/api/build.gradle.kts index 4e4e0cf0a6..26993b9f4c 100644 --- a/components/bridge/connection/config/api/build.gradle.kts +++ b/components/bridge/connection/config/api/build.gradle.kts @@ -1,11 +1,12 @@ plugins { - id("flipper.android-lib") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") id("kotlinx-serialization") } android.namespace = "com.flipperdevices.bridge.connection.config.api" -dependencies { +commonDependencies { implementation(libs.kotlin.coroutines) implementation(libs.kotlin.serialization.json) } diff --git a/components/bridge/connection/config/api/src/main/kotlin/com/flipperdevices/bridge/connection/config/api/FDevicePersistedStorage.kt b/components/bridge/connection/config/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/config/api/FDevicePersistedStorage.kt similarity index 100% rename from components/bridge/connection/config/api/src/main/kotlin/com/flipperdevices/bridge/connection/config/api/FDevicePersistedStorage.kt rename to components/bridge/connection/config/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/config/api/FDevicePersistedStorage.kt diff --git a/components/bridge/connection/config/api/src/main/kotlin/com/flipperdevices/bridge/connection/config/api/FDeviceType.kt b/components/bridge/connection/config/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/config/api/FDeviceType.kt similarity index 100% rename from components/bridge/connection/config/api/src/main/kotlin/com/flipperdevices/bridge/connection/config/api/FDeviceType.kt rename to components/bridge/connection/config/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/config/api/FDeviceType.kt diff --git a/components/bridge/connection/config/api/src/main/kotlin/com/flipperdevices/bridge/connection/config/api/model/FDeviceBaseModel.kt b/components/bridge/connection/config/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/config/api/model/FDeviceBaseModel.kt similarity index 100% rename from components/bridge/connection/config/api/src/main/kotlin/com/flipperdevices/bridge/connection/config/api/model/FDeviceBaseModel.kt rename to components/bridge/connection/config/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/config/api/model/FDeviceBaseModel.kt diff --git a/components/bridge/connection/config/api/src/main/kotlin/com/flipperdevices/bridge/connection/config/api/model/FDeviceFlipperZeroBleModel.kt b/components/bridge/connection/config/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/config/api/model/FDeviceFlipperZeroBleModel.kt similarity index 100% rename from components/bridge/connection/config/api/src/main/kotlin/com/flipperdevices/bridge/connection/config/api/model/FDeviceFlipperZeroBleModel.kt rename to components/bridge/connection/config/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/config/api/model/FDeviceFlipperZeroBleModel.kt diff --git a/components/bridge/connection/config/impl/build.gradle.kts b/components/bridge/connection/config/impl/build.gradle.kts index 0a97062420..a5a85ed679 100644 --- a/components/bridge/connection/config/impl/build.gradle.kts +++ b/components/bridge/connection/config/impl/build.gradle.kts @@ -1,11 +1,12 @@ plugins { - id("flipper.android-lib") - id("flipper.anvil") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") + id("flipper.anvil-multiplatform") } android.namespace = "com.flipperdevices.bridge.connection.config.impl" -dependencies { +commonDependencies { implementation(projects.components.bridge.connection.config.api) implementation(projects.components.core.log) @@ -13,4 +14,5 @@ dependencies { implementation(projects.components.core.preference) implementation(libs.kotlin.coroutines) + implementation(libs.dagger) } diff --git a/components/bridge/connection/config/impl/src/main/kotlin/com/flipperdevices/bridge/connection/config/impl/FDevicePersistedStorageImpl.kt b/components/bridge/connection/config/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/config/impl/FDevicePersistedStorageImpl.kt similarity index 100% rename from components/bridge/connection/config/impl/src/main/kotlin/com/flipperdevices/bridge/connection/config/impl/FDevicePersistedStorageImpl.kt rename to components/bridge/connection/config/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/config/impl/FDevicePersistedStorageImpl.kt diff --git a/components/bridge/connection/connectionbuilder/api/build.gradle.kts b/components/bridge/connection/connectionbuilder/api/build.gradle.kts index e80067d415..328fea40a3 100644 --- a/components/bridge/connection/connectionbuilder/api/build.gradle.kts +++ b/components/bridge/connection/connectionbuilder/api/build.gradle.kts @@ -1,10 +1,11 @@ plugins { - id("flipper.android-lib") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") } android.namespace = "com.flipperdevices.bridge.connection.connectionbuilder.api" -dependencies { +commonDependencies { implementation(projects.components.bridge.connection.transport.common.api) implementation(libs.kotlin.coroutines) } diff --git a/components/bridge/connection/connectionbuilder/api/src/main/kotlin/com/flipperdevices/bridge/connection/connectionbuilder/api/FDeviceConfigToConnection.kt b/components/bridge/connection/connectionbuilder/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/connectionbuilder/api/FDeviceConfigToConnection.kt similarity index 100% rename from components/bridge/connection/connectionbuilder/api/src/main/kotlin/com/flipperdevices/bridge/connection/connectionbuilder/api/FDeviceConfigToConnection.kt rename to components/bridge/connection/connectionbuilder/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/connectionbuilder/api/FDeviceConfigToConnection.kt diff --git a/components/bridge/connection/connectionbuilder/impl/build.gradle.kts b/components/bridge/connection/connectionbuilder/impl/build.gradle.kts index b28cabdfe2..45ad8e1758 100644 --- a/components/bridge/connection/connectionbuilder/impl/build.gradle.kts +++ b/components/bridge/connection/connectionbuilder/impl/build.gradle.kts @@ -1,11 +1,12 @@ plugins { - id("flipper.android-lib") - id("flipper.anvil") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") + id("flipper.anvil-multiplatform") } android.namespace = "com.flipperdevices.bridge.connection.connectionbuilder.impl" -dependencies { +commonDependencies { implementation(projects.components.bridge.connection.connectionbuilder.api) implementation(projects.components.core.di) diff --git a/components/bridge/connection/connectionbuilder/impl/src/main/kotlin/com/flipperdevices/bridge/connection/connectionbuilder/impl/FDeviceConfigToConnectionImpl.kt b/components/bridge/connection/connectionbuilder/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/connectionbuilder/impl/FDeviceConfigToConnectionImpl.kt similarity index 100% rename from components/bridge/connection/connectionbuilder/impl/src/main/kotlin/com/flipperdevices/bridge/connection/connectionbuilder/impl/FDeviceConfigToConnectionImpl.kt rename to components/bridge/connection/connectionbuilder/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/connectionbuilder/impl/FDeviceConfigToConnectionImpl.kt diff --git a/components/bridge/connection/device/common/api/build.gradle.kts b/components/bridge/connection/device/common/api/build.gradle.kts index d7b9b3fbd5..bebeb7ac43 100644 --- a/components/bridge/connection/device/common/api/build.gradle.kts +++ b/components/bridge/connection/device/common/api/build.gradle.kts @@ -1,9 +1,10 @@ plugins { - id("flipper.android-lib") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") } android.namespace = "com.flipperdevices.bridge.connection.device.common.api" -dependencies { +commonDependencies { implementation(projects.components.bridge.connection.feature.common.api) } diff --git a/components/bridge/connection/device/common/api/src/main/kotlin/com/flipperdevices/bridge/connection/device/common/api/FDeviceApi.kt b/components/bridge/connection/device/common/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/device/common/api/FDeviceApi.kt similarity index 100% rename from components/bridge/connection/device/common/api/src/main/kotlin/com/flipperdevices/bridge/connection/device/common/api/FDeviceApi.kt rename to components/bridge/connection/device/common/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/device/common/api/FDeviceApi.kt diff --git a/components/bridge/connection/device/fzero/api/build.gradle.kts b/components/bridge/connection/device/fzero/api/build.gradle.kts index b041eac251..e075c6497c 100644 --- a/components/bridge/connection/device/fzero/api/build.gradle.kts +++ b/components/bridge/connection/device/fzero/api/build.gradle.kts @@ -1,10 +1,11 @@ plugins { - id("flipper.android-lib") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") } android.namespace = "com.flipperdevices.bridge.connection.device.fzero.api" -dependencies { +commonDependencies { implementation(projects.components.bridge.connection.device.common.api) implementation(projects.components.bridge.connection.feature.common.api) implementation(projects.components.bridge.connection.transport.common.api) diff --git a/components/bridge/connection/device/fzero/api/src/main/kotlin/com/flipperdevices/bridge/connection/device/fzero/api/FZeroDeviceApi.kt b/components/bridge/connection/device/fzero/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/device/fzero/api/FZeroDeviceApi.kt similarity index 100% rename from components/bridge/connection/device/fzero/api/src/main/kotlin/com/flipperdevices/bridge/connection/device/fzero/api/FZeroDeviceApi.kt rename to components/bridge/connection/device/fzero/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/device/fzero/api/FZeroDeviceApi.kt diff --git a/components/bridge/connection/device/fzero/impl/build.gradle.kts b/components/bridge/connection/device/fzero/impl/build.gradle.kts index 328e67dc42..1df097d9f7 100644 --- a/components/bridge/connection/device/fzero/impl/build.gradle.kts +++ b/components/bridge/connection/device/fzero/impl/build.gradle.kts @@ -1,11 +1,12 @@ plugins { - id("flipper.android-lib") - id("flipper.anvil") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") + id("flipper.anvil-multiplatform") } android.namespace = "com.flipperdevices.bridge.connection.device.fzero.impl" -dependencies { +commonDependencies { implementation(projects.components.bridge.connection.device.fzero.api) implementation(projects.components.core.di) diff --git a/components/bridge/connection/device/fzero/impl/src/main/kotlin/com/flipperdevices/bridge/connection/device/fzero/impl/api/FZeroDeviceApiImpl.kt b/components/bridge/connection/device/fzero/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/device/fzero/impl/api/FZeroDeviceApiImpl.kt similarity index 100% rename from components/bridge/connection/device/fzero/impl/src/main/kotlin/com/flipperdevices/bridge/connection/device/fzero/impl/api/FZeroDeviceApiImpl.kt rename to components/bridge/connection/device/fzero/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/device/fzero/impl/api/FZeroDeviceApiImpl.kt diff --git a/components/bridge/connection/device/fzero/impl/src/main/kotlin/com/flipperdevices/bridge/connection/device/fzero/impl/utils/FZeroFeatureClassToEnumMapper.kt b/components/bridge/connection/device/fzero/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/device/fzero/impl/utils/FZeroFeatureClassToEnumMapper.kt similarity index 100% rename from components/bridge/connection/device/fzero/impl/src/main/kotlin/com/flipperdevices/bridge/connection/device/fzero/impl/utils/FZeroFeatureClassToEnumMapper.kt rename to components/bridge/connection/device/fzero/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/device/fzero/impl/utils/FZeroFeatureClassToEnumMapper.kt diff --git a/components/bridge/connection/feature/common/api/build.gradle.kts b/components/bridge/connection/feature/common/api/build.gradle.kts index 95fbbb74df..05227863fb 100644 --- a/components/bridge/connection/feature/common/api/build.gradle.kts +++ b/components/bridge/connection/feature/common/api/build.gradle.kts @@ -1,10 +1,11 @@ plugins { - id("flipper.android-lib") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") } android.namespace = "com.flipperdevices.bridge.connection.feature.common.api" -dependencies { +commonDependencies { implementation(projects.components.core.di) implementation(projects.components.bridge.connection.transport.common.api) diff --git a/components/bridge/connection/feature/common/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/common/api/FDeviceFeature.kt b/components/bridge/connection/feature/common/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/common/api/FDeviceFeature.kt similarity index 100% rename from components/bridge/connection/feature/common/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/common/api/FDeviceFeature.kt rename to components/bridge/connection/feature/common/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/common/api/FDeviceFeature.kt diff --git a/components/bridge/connection/feature/common/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/common/api/FDeviceFeatureApi.kt b/components/bridge/connection/feature/common/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/common/api/FDeviceFeatureApi.kt similarity index 100% rename from components/bridge/connection/feature/common/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/common/api/FDeviceFeatureApi.kt rename to components/bridge/connection/feature/common/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/common/api/FDeviceFeatureApi.kt diff --git a/components/bridge/connection/feature/common/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/common/api/FOnDeviceReadyFeatureApi.kt b/components/bridge/connection/feature/common/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/common/api/FOnDeviceReadyFeatureApi.kt similarity index 100% rename from components/bridge/connection/feature/common/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/common/api/FOnDeviceReadyFeatureApi.kt rename to components/bridge/connection/feature/common/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/common/api/FOnDeviceReadyFeatureApi.kt diff --git a/components/bridge/connection/feature/common/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/common/api/FUnsafeDeviceFeatureApi.kt b/components/bridge/connection/feature/common/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/common/api/FUnsafeDeviceFeatureApi.kt similarity index 100% rename from components/bridge/connection/feature/common/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/common/api/FUnsafeDeviceFeatureApi.kt rename to components/bridge/connection/feature/common/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/common/api/FUnsafeDeviceFeatureApi.kt diff --git a/components/bridge/connection/feature/getinfo/api/build.gradle.kts b/components/bridge/connection/feature/getinfo/api/build.gradle.kts index 63cceb990e..0efa90f00d 100644 --- a/components/bridge/connection/feature/getinfo/api/build.gradle.kts +++ b/components/bridge/connection/feature/getinfo/api/build.gradle.kts @@ -1,10 +1,11 @@ plugins { - id("flipper.android-lib") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") } android.namespace = "com.flipperdevices.bridge.connection.feature.getinfo.api" -dependencies { +commonDependencies { implementation(projects.components.bridge.connection.feature.common.api) implementation(libs.kotlin.coroutines) diff --git a/components/bridge/connection/feature/getinfo/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/getinfo/api/FGetInfoFeatureApi.kt b/components/bridge/connection/feature/getinfo/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/getinfo/api/FGetInfoFeatureApi.kt similarity index 100% rename from components/bridge/connection/feature/getinfo/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/getinfo/api/FGetInfoFeatureApi.kt rename to components/bridge/connection/feature/getinfo/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/getinfo/api/FGetInfoFeatureApi.kt diff --git a/components/bridge/connection/feature/getinfo/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/getinfo/model/FGetInfoApiGroup.kt b/components/bridge/connection/feature/getinfo/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/getinfo/model/FGetInfoApiGroup.kt similarity index 100% rename from components/bridge/connection/feature/getinfo/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/getinfo/model/FGetInfoApiGroup.kt rename to components/bridge/connection/feature/getinfo/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/getinfo/model/FGetInfoApiGroup.kt diff --git a/components/bridge/connection/feature/getinfo/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/getinfo/model/FGetInfoApiProperty.kt b/components/bridge/connection/feature/getinfo/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/getinfo/model/FGetInfoApiProperty.kt similarity index 100% rename from components/bridge/connection/feature/getinfo/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/getinfo/model/FGetInfoApiProperty.kt rename to components/bridge/connection/feature/getinfo/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/getinfo/model/FGetInfoApiProperty.kt diff --git a/components/bridge/connection/feature/getinfo/impl/build.gradle.kts b/components/bridge/connection/feature/getinfo/impl/build.gradle.kts index 80cb37a786..6d4757c784 100644 --- a/components/bridge/connection/feature/getinfo/impl/build.gradle.kts +++ b/components/bridge/connection/feature/getinfo/impl/build.gradle.kts @@ -1,11 +1,12 @@ plugins { - id("flipper.android-lib") - id("flipper.anvil") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") + id("flipper.anvil-multiplatform") } android.namespace = "com.flipperdevices.bridge.connection.feature.getinfo.impl" -dependencies { +commonDependencies { implementation(projects.components.bridge.connection.feature.getinfo.api) implementation(projects.components.core.di) @@ -18,7 +19,7 @@ dependencies { implementation(projects.components.bridge.connection.feature.rpc.model) implementation(projects.components.bridge.connection.feature.protocolversion.api) - implementation(projects.components.bridge.pbutils) + implementation(projects.components.bridge.connection.pbutils) implementation(libs.kotlin.coroutines) } diff --git a/components/bridge/connection/feature/getinfo/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/getinfo/impl/api/FGetInfoFeatureApiImpl.kt b/components/bridge/connection/feature/getinfo/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/getinfo/impl/api/FGetInfoFeatureApiImpl.kt similarity index 65% rename from components/bridge/connection/feature/getinfo/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/getinfo/impl/api/FGetInfoFeatureApiImpl.kt rename to components/bridge/connection/feature/getinfo/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/getinfo/impl/api/FGetInfoFeatureApiImpl.kt index 75a0b687c8..6e82f2fd0d 100644 --- a/components/bridge/connection/feature/getinfo/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/getinfo/impl/api/FGetInfoFeatureApiImpl.kt +++ b/components/bridge/connection/feature/getinfo/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/getinfo/impl/api/FGetInfoFeatureApiImpl.kt @@ -5,11 +5,10 @@ import com.flipperdevices.bridge.connection.feature.getinfo.impl.mapper.FGetInfo import com.flipperdevices.bridge.connection.feature.getinfo.model.FGetInfoApiGroup import com.flipperdevices.bridge.connection.feature.getinfo.model.FGetInfoApiProperty import com.flipperdevices.bridge.connection.feature.rpc.api.FRpcFeatureApi -import com.flipperdevices.bridge.connection.feature.rpc.model.FlipperRequestPriority import com.flipperdevices.bridge.connection.feature.rpc.model.wrapToRequest -import com.flipperdevices.protobuf.Flipper -import com.flipperdevices.protobuf.main -import com.flipperdevices.protobuf.property.getRequest +import com.flipperdevices.protobuf.CommandStatus +import com.flipperdevices.protobuf.Main +import com.flipperdevices.protobuf.property.GetRequest import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject @@ -26,15 +25,19 @@ class FGetInfoFeatureApiImpl @AssistedInject constructor( override suspend fun get(property: FGetInfoApiProperty) = runCatching { val forkResponse = rpcFeatureApi.request( flowOf( - main { - propertyGetRequest = getRequest { key = property.path } - }.wrapToRequest(FlipperRequestPriority.BACKGROUND) + Main( + property_get_request = GetRequest(key = property.path) + ).wrapToRequest() ) ) - val forkValue = if (forkResponse.commandStatus == Flipper.CommandStatus.OK) { - forkResponse.propertyGetResponse.value + val forkValue = if (forkResponse.command_status == CommandStatus.OK) { + forkResponse.property_get_response?.value_ } else { - error(forkResponse.commandStatus.toString()) + null + } + + if (forkValue == null) { + error(forkResponse.command_status.toString()) } return@runCatching forkValue @@ -42,11 +45,11 @@ class FGetInfoFeatureApiImpl @AssistedInject constructor( override fun get(group: FGetInfoApiGroup): Flow> { return rpcFeatureApi.request( - main { - propertyGetRequest = getRequest { key = group.key } - }.wrapToRequest() - ).mapNotNull { it.propertyGetResponse } - .map { mapper.map(group, it.key) to it.value } + Main( + property_get_request = GetRequest(key = group.key) + ).wrapToRequest() + ).mapNotNull { it.property_get_response } + .map { mapper.map(group, it.key) to it.value_ } } @AssistedFactory diff --git a/components/bridge/connection/feature/getinfo/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/getinfo/impl/api/FGetInfoFeatureFactoryImpl.kt b/components/bridge/connection/feature/getinfo/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/getinfo/impl/api/FGetInfoFeatureFactoryImpl.kt similarity index 100% rename from components/bridge/connection/feature/getinfo/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/getinfo/impl/api/FGetInfoFeatureFactoryImpl.kt rename to components/bridge/connection/feature/getinfo/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/getinfo/impl/api/FGetInfoFeatureFactoryImpl.kt diff --git a/components/bridge/connection/feature/getinfo/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/getinfo/impl/mapper/DeviceInfoKeyMapper.kt b/components/bridge/connection/feature/getinfo/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/getinfo/impl/mapper/DeviceInfoKeyMapper.kt similarity index 100% rename from components/bridge/connection/feature/getinfo/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/getinfo/impl/mapper/DeviceInfoKeyMapper.kt rename to components/bridge/connection/feature/getinfo/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/getinfo/impl/mapper/DeviceInfoKeyMapper.kt diff --git a/components/bridge/connection/feature/getinfo/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/getinfo/impl/mapper/FGetInfoApiKeyMapper.kt b/components/bridge/connection/feature/getinfo/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/getinfo/impl/mapper/FGetInfoApiKeyMapper.kt similarity index 100% rename from components/bridge/connection/feature/getinfo/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/getinfo/impl/mapper/FGetInfoApiKeyMapper.kt rename to components/bridge/connection/feature/getinfo/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/getinfo/impl/mapper/FGetInfoApiKeyMapper.kt diff --git a/components/bridge/connection/feature/lagsdetector/api/build.gradle.kts b/components/bridge/connection/feature/lagsdetector/api/build.gradle.kts index 4e2cd48628..d15940beb4 100644 --- a/components/bridge/connection/feature/lagsdetector/api/build.gradle.kts +++ b/components/bridge/connection/feature/lagsdetector/api/build.gradle.kts @@ -1,10 +1,11 @@ plugins { - id("flipper.android-lib") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") } android.namespace = "com.flipperdevices.bridge.connection.feature.seriallagsdetector.api" -dependencies { +commonDependencies { implementation(projects.components.bridge.connection.feature.common.api) implementation(projects.components.bridge.connection.feature.rpc.model) diff --git a/components/bridge/connection/feature/lagsdetector/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/seriallagsdetector/api/FLagsDetectorFeature.kt b/components/bridge/connection/feature/lagsdetector/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/seriallagsdetector/api/FLagsDetectorFeature.kt similarity index 100% rename from components/bridge/connection/feature/lagsdetector/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/seriallagsdetector/api/FLagsDetectorFeature.kt rename to components/bridge/connection/feature/lagsdetector/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/seriallagsdetector/api/FLagsDetectorFeature.kt diff --git a/components/bridge/connection/feature/lagsdetector/impl/build.gradle.kts b/components/bridge/connection/feature/lagsdetector/impl/build.gradle.kts index a856b72e4d..87ee4d6eb7 100644 --- a/components/bridge/connection/feature/lagsdetector/impl/build.gradle.kts +++ b/components/bridge/connection/feature/lagsdetector/impl/build.gradle.kts @@ -1,16 +1,18 @@ plugins { - id("flipper.android-lib") - id("flipper.anvil") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") + id("flipper.anvil-multiplatform") } android.namespace = "com.flipperdevices.bridge.connection.feature.seriallagsdetector.impl" -dependencies { +commonDependencies { implementation(projects.components.bridge.connection.feature.lagsdetector.api) implementation(projects.components.core.di) implementation(projects.components.core.log) implementation(projects.components.core.ktx) + implementation(projects.components.core.buildKonfig) implementation(projects.components.bridge.connection.feature.common.api) implementation(projects.components.bridge.connection.transport.common.api) @@ -18,9 +20,13 @@ dependencies { implementation(projects.components.bridge.connection.feature.rpc.api) implementation(projects.components.bridge.connection.feature.restartrpc.api) + implementation(projects.components.bridge.connection.pbutils) + implementation(libs.kotlin.coroutines) +} - testImplementation(libs.junit) - testImplementation(libs.mockk) - testImplementation(libs.kotlin.coroutines.test) +jvmSharedTestDependencies { + implementation(libs.junit) + implementation(libs.mockk) + implementation(libs.kotlin.coroutines.test) } diff --git a/components/bridge/connection/feature/lagsdetector/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/seriallagsdetector/impl/FLagsDetectorFeatureFactoryImpl.kt b/components/bridge/connection/feature/lagsdetector/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/seriallagsdetector/impl/FLagsDetectorFeatureFactoryImpl.kt similarity index 100% rename from components/bridge/connection/feature/lagsdetector/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/seriallagsdetector/impl/FLagsDetectorFeatureFactoryImpl.kt rename to components/bridge/connection/feature/lagsdetector/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/seriallagsdetector/impl/FLagsDetectorFeatureFactoryImpl.kt diff --git a/components/bridge/connection/feature/lagsdetector/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/seriallagsdetector/impl/FLagsDetectorFeatureImpl.kt b/components/bridge/connection/feature/lagsdetector/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/seriallagsdetector/impl/FLagsDetectorFeatureImpl.kt similarity index 97% rename from components/bridge/connection/feature/lagsdetector/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/seriallagsdetector/impl/FLagsDetectorFeatureImpl.kt rename to components/bridge/connection/feature/lagsdetector/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/seriallagsdetector/impl/FLagsDetectorFeatureImpl.kt index 1a82d0f427..1b7c00e443 100644 --- a/components/bridge/connection/feature/lagsdetector/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/seriallagsdetector/impl/FLagsDetectorFeatureImpl.kt +++ b/components/bridge/connection/feature/lagsdetector/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/seriallagsdetector/impl/FLagsDetectorFeatureImpl.kt @@ -40,6 +40,7 @@ class FLagsDetectorFeatureImpl @AssistedInject constructor( "We have pending commands, but flipper not respond " + "${PendingResponseCounter.LAGS_FLIPPER_DETECT_TIMEOUT_MS}ms" } + pendingResponseCounter.logPendingCommands() info { "Start restart RPC" } restartRpcFeatureApi.restartRpc() diff --git a/components/bridge/connection/feature/lagsdetector/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/seriallagsdetector/impl/FlipperActionNotifierImpl.kt b/components/bridge/connection/feature/lagsdetector/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/seriallagsdetector/impl/FlipperActionNotifierImpl.kt similarity index 100% rename from components/bridge/connection/feature/lagsdetector/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/seriallagsdetector/impl/FlipperActionNotifierImpl.kt rename to components/bridge/connection/feature/lagsdetector/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/seriallagsdetector/impl/FlipperActionNotifierImpl.kt diff --git a/components/bridge/connection/feature/lagsdetector/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/seriallagsdetector/impl/PendingResponseCounter.kt b/components/bridge/connection/feature/lagsdetector/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/seriallagsdetector/impl/PendingResponseCounter.kt similarity index 75% rename from components/bridge/connection/feature/lagsdetector/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/seriallagsdetector/impl/PendingResponseCounter.kt rename to components/bridge/connection/feature/lagsdetector/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/seriallagsdetector/impl/PendingResponseCounter.kt index d51959f59a..8ee60caafe 100644 --- a/components/bridge/connection/feature/lagsdetector/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/seriallagsdetector/impl/PendingResponseCounter.kt +++ b/components/bridge/connection/feature/lagsdetector/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/seriallagsdetector/impl/PendingResponseCounter.kt @@ -1,6 +1,8 @@ package com.flipperdevices.bridge.connection.feature.seriallagsdetector.impl import com.flipperdevices.bridge.connection.feature.rpc.model.FlipperRequest +import com.flipperdevices.core.buildkonfig.BuildKonfig +import com.flipperdevices.core.log.error import com.flipperdevices.core.log.verbose import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.atomic.AtomicInteger @@ -16,7 +18,7 @@ internal class PendingResponseCounter( true } else if (counter.get() < 0) { counter.set(0) - if (BuildConfig.INTERNAL) { + if (BuildKonfig.CRASH_APP_ON_FAILED_CHECKS) { error("Pending response counter less than zero") } false @@ -26,7 +28,7 @@ internal class PendingResponseCounter( } fun rememberAction(request: FlipperRequest?) { - if (BuildConfig.INTERNAL && request != null) { + if (BuildKonfig.LOGGING_PENDING_COMMANDS && request != null) { pendingCommands[request] = Unit } val tag = request?.javaClass?.simpleName.orEmpty() @@ -36,13 +38,19 @@ internal class PendingResponseCounter( } fun forgetAction(request: FlipperRequest?) { - if (BuildConfig.INTERNAL && request != null) { + if (BuildKonfig.LOGGING_PENDING_COMMANDS && request != null) { pendingCommands.remove(request) } val pendingCount = counter.decrementAndGet() verbose { "Decrease pending response command, current size is $pendingCount" } } + fun logPendingCommands() { + if (BuildKonfig.LOGGING_PENDING_COMMANDS) { + error { "Pending commands is: ${pendingCommands.keys.joinToString { it.data.toString() }}" } + } + } + companion object { internal const val LAGS_FLIPPER_DETECT_TIMEOUT_MS = 10 * 1000L // 10 seconds } diff --git a/components/bridge/connection/feature/lagsdetector/impl/src/test/kotlin/com/flipperdevices/bridge/connection/feature/seriallagsdetector/impl/FLagsDetectorFeatureTest.kt b/components/bridge/connection/feature/lagsdetector/impl/src/jvmSharedTest/kotlin/com/flipperdevices/bridge/connection/feature/seriallagsdetector/impl/FLagsDetectorFeatureTest.kt similarity index 95% rename from components/bridge/connection/feature/lagsdetector/impl/src/test/kotlin/com/flipperdevices/bridge/connection/feature/seriallagsdetector/impl/FLagsDetectorFeatureTest.kt rename to components/bridge/connection/feature/lagsdetector/impl/src/jvmSharedTest/kotlin/com/flipperdevices/bridge/connection/feature/seriallagsdetector/impl/FLagsDetectorFeatureTest.kt index 9d31a9db17..f21d858b86 100644 --- a/components/bridge/connection/feature/lagsdetector/impl/src/test/kotlin/com/flipperdevices/bridge/connection/feature/seriallagsdetector/impl/FLagsDetectorFeatureTest.kt +++ b/components/bridge/connection/feature/lagsdetector/impl/src/jvmSharedTest/kotlin/com/flipperdevices/bridge/connection/feature/seriallagsdetector/impl/FLagsDetectorFeatureTest.kt @@ -41,9 +41,9 @@ class FLagsDetectorFeatureTest { restartRpcFeatureApi = restartRpcFeatureApi ) val backgroundJob = backgroundScope.launch { - underTest.wrapPendingAction(mockk()) { + underTest.wrapPendingAction(mockk(relaxed = true)) { delay(Long.MAX_VALUE) - println("Hello world!") + println("Hello from pending action!") } } underTest.notifyAboutAction() diff --git a/components/bridge/connection/feature/protocolversion/api/build.gradle.kts b/components/bridge/connection/feature/protocolversion/api/build.gradle.kts index e8a622e59f..15e896c494 100644 --- a/components/bridge/connection/feature/protocolversion/api/build.gradle.kts +++ b/components/bridge/connection/feature/protocolversion/api/build.gradle.kts @@ -1,10 +1,11 @@ plugins { - id("flipper.android-lib") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") } android.namespace = "com.flipperdevices.bridge.connection.feature.protocolversion.api" -dependencies { +commonDependencies { implementation(projects.components.core.data) implementation(projects.components.core.ktx) diff --git a/components/bridge/connection/feature/protocolversion/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/protocolversion/api/FVersionFeatureApi.kt b/components/bridge/connection/feature/protocolversion/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/protocolversion/api/FVersionFeatureApi.kt similarity index 100% rename from components/bridge/connection/feature/protocolversion/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/protocolversion/api/FVersionFeatureApi.kt rename to components/bridge/connection/feature/protocolversion/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/protocolversion/api/FVersionFeatureApi.kt diff --git a/components/bridge/connection/feature/protocolversion/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/protocolversion/model/FlipperSupportedState.kt b/components/bridge/connection/feature/protocolversion/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/protocolversion/model/FlipperSupportedState.kt similarity index 100% rename from components/bridge/connection/feature/protocolversion/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/protocolversion/model/FlipperSupportedState.kt rename to components/bridge/connection/feature/protocolversion/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/protocolversion/model/FlipperSupportedState.kt diff --git a/components/bridge/connection/feature/protocolversion/impl/build.gradle.kts b/components/bridge/connection/feature/protocolversion/impl/build.gradle.kts index facef09595..445b61c1de 100644 --- a/components/bridge/connection/feature/protocolversion/impl/build.gradle.kts +++ b/components/bridge/connection/feature/protocolversion/impl/build.gradle.kts @@ -1,11 +1,12 @@ plugins { - id("flipper.android-lib") - id("flipper.anvil") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") + id("flipper.anvil-multiplatform") } android.namespace = "com.flipperdevices.bridge.connection.feature.protocolversion.impl" -dependencies { +commonDependencies { implementation(projects.components.bridge.connection.feature.protocolversion.api) implementation(projects.components.core.di) diff --git a/components/bridge/connection/feature/protocolversion/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/protocolversion/impl/api/FVersionFeatureApiImpl.kt b/components/bridge/connection/feature/protocolversion/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/protocolversion/impl/api/FVersionFeatureApiImpl.kt similarity index 100% rename from components/bridge/connection/feature/protocolversion/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/protocolversion/impl/api/FVersionFeatureApiImpl.kt rename to components/bridge/connection/feature/protocolversion/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/protocolversion/impl/api/FVersionFeatureApiImpl.kt diff --git a/components/bridge/connection/feature/protocolversion/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/protocolversion/impl/api/FVersionFeatureFactoryImpl.kt b/components/bridge/connection/feature/protocolversion/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/protocolversion/impl/api/FVersionFeatureFactoryImpl.kt similarity index 100% rename from components/bridge/connection/feature/protocolversion/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/protocolversion/impl/api/FVersionFeatureFactoryImpl.kt rename to components/bridge/connection/feature/protocolversion/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/protocolversion/impl/api/FVersionFeatureFactoryImpl.kt diff --git a/components/bridge/connection/feature/provider/api/build.gradle.kts b/components/bridge/connection/feature/provider/api/build.gradle.kts index 57294304c8..0317176740 100644 --- a/components/bridge/connection/feature/provider/api/build.gradle.kts +++ b/components/bridge/connection/feature/provider/api/build.gradle.kts @@ -1,10 +1,11 @@ plugins { - id("flipper.android-lib") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") } android.namespace = "com.flipperdevices.bridge.connection.feature.provider.api" -dependencies { +commonDependencies { implementation(projects.components.bridge.connection.feature.common.api) implementation(libs.kotlin.coroutines) diff --git a/components/bridge/connection/feature/provider/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/provider/api/FFeatureProvider.kt b/components/bridge/connection/feature/provider/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/provider/api/FFeatureProvider.kt similarity index 100% rename from components/bridge/connection/feature/provider/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/provider/api/FFeatureProvider.kt rename to components/bridge/connection/feature/provider/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/provider/api/FFeatureProvider.kt diff --git a/components/bridge/connection/feature/provider/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/provider/api/FFeatureStatus.kt b/components/bridge/connection/feature/provider/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/provider/api/FFeatureStatus.kt similarity index 100% rename from components/bridge/connection/feature/provider/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/provider/api/FFeatureStatus.kt rename to components/bridge/connection/feature/provider/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/provider/api/FFeatureStatus.kt diff --git a/components/bridge/connection/feature/provider/impl/build.gradle.kts b/components/bridge/connection/feature/provider/impl/build.gradle.kts index 3decc3ba15..1c298a123b 100644 --- a/components/bridge/connection/feature/provider/impl/build.gradle.kts +++ b/components/bridge/connection/feature/provider/impl/build.gradle.kts @@ -1,11 +1,12 @@ plugins { - id("flipper.android-lib") - id("flipper.anvil") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") + id("flipper.anvil-multiplatform") } android.namespace = "com.flipperdevices.bridge.connection.feature.provider.impl" -dependencies { +commonDependencies { implementation(projects.components.bridge.connection.feature.provider.api) implementation(projects.components.core.di) diff --git a/components/bridge/connection/feature/provider/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/provider/impl/api/FFeatureProviderImpl.kt b/components/bridge/connection/feature/provider/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/provider/impl/api/FFeatureProviderImpl.kt similarity index 100% rename from components/bridge/connection/feature/provider/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/provider/impl/api/FFeatureProviderImpl.kt rename to components/bridge/connection/feature/provider/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/provider/impl/api/FFeatureProviderImpl.kt diff --git a/components/bridge/connection/feature/provider/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/provider/impl/utils/FDeviceConnectStatusToDeviceApi.kt b/components/bridge/connection/feature/provider/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/provider/impl/utils/FDeviceConnectStatusToDeviceApi.kt similarity index 100% rename from components/bridge/connection/feature/provider/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/provider/impl/utils/FDeviceConnectStatusToDeviceApi.kt rename to components/bridge/connection/feature/provider/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/provider/impl/utils/FDeviceConnectStatusToDeviceApi.kt diff --git a/components/bridge/connection/feature/restartrpc/api/build.gradle.kts b/components/bridge/connection/feature/restartrpc/api/build.gradle.kts index 28a43cd177..56dfa578fd 100644 --- a/components/bridge/connection/feature/restartrpc/api/build.gradle.kts +++ b/components/bridge/connection/feature/restartrpc/api/build.gradle.kts @@ -1,10 +1,11 @@ plugins { - id("flipper.android-lib") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") } android.namespace = "com.flipperdevices.bridge.connection.feature.restartrpc.api" -dependencies { +commonDependencies { implementation(projects.components.bridge.connection.feature.common.api) implementation(projects.components.bridge.connection.transport.common.api) } diff --git a/components/bridge/connection/feature/restartrpc/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/restartrpc/api/FRestartRpcFeatureApi.kt b/components/bridge/connection/feature/restartrpc/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/restartrpc/api/FRestartRpcFeatureApi.kt similarity index 100% rename from components/bridge/connection/feature/restartrpc/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/restartrpc/api/FRestartRpcFeatureApi.kt rename to components/bridge/connection/feature/restartrpc/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/restartrpc/api/FRestartRpcFeatureApi.kt diff --git a/components/bridge/connection/feature/restartrpc/impl/build.gradle.kts b/components/bridge/connection/feature/restartrpc/impl/build.gradle.kts index ebc9edcbf5..0c1312a6b3 100644 --- a/components/bridge/connection/feature/restartrpc/impl/build.gradle.kts +++ b/components/bridge/connection/feature/restartrpc/impl/build.gradle.kts @@ -1,11 +1,12 @@ plugins { - id("flipper.android-lib") - id("flipper.anvil") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") + id("flipper.anvil-multiplatform") } android.namespace = "com.flipperdevices.bridge.connection.feature.restartrpc.impl" -dependencies { +commonDependencies { implementation(projects.components.bridge.connection.feature.restartrpc.api) implementation(projects.components.bridge.connection.feature.common.api) diff --git a/components/bridge/connection/feature/restartrpc/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/restartrpc/impl/FRestartRpcFeatureApiImpl.kt b/components/bridge/connection/feature/restartrpc/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/restartrpc/impl/FRestartRpcFeatureApiImpl.kt similarity index 100% rename from components/bridge/connection/feature/restartrpc/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/restartrpc/impl/FRestartRpcFeatureApiImpl.kt rename to components/bridge/connection/feature/restartrpc/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/restartrpc/impl/FRestartRpcFeatureApiImpl.kt diff --git a/components/bridge/connection/feature/restartrpc/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/restartrpc/impl/FRestartRpcFeatureFactoryImpl.kt b/components/bridge/connection/feature/restartrpc/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/restartrpc/impl/FRestartRpcFeatureFactoryImpl.kt similarity index 100% rename from components/bridge/connection/feature/restartrpc/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/restartrpc/impl/FRestartRpcFeatureFactoryImpl.kt rename to components/bridge/connection/feature/restartrpc/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/restartrpc/impl/FRestartRpcFeatureFactoryImpl.kt diff --git a/components/bridge/connection/feature/rpc/api/build.gradle.kts b/components/bridge/connection/feature/rpc/api/build.gradle.kts index f429f3ac38..cd6bfdb6ce 100644 --- a/components/bridge/connection/feature/rpc/api/build.gradle.kts +++ b/components/bridge/connection/feature/rpc/api/build.gradle.kts @@ -1,10 +1,11 @@ plugins { - id("flipper.android-lib") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") } android.namespace = "com.flipperdevices.bridge.connection.feature.rpc.api" -dependencies { +commonDependencies { api(projects.components.bridge.connection.feature.rpc.model) implementation(projects.components.core.ktx) @@ -13,7 +14,7 @@ dependencies { implementation(projects.components.bridge.connection.transport.common.api) implementation(projects.components.bridge.connection.feature.lagsdetector.api) - implementation(projects.components.bridge.pbutils) + implementation(projects.components.bridge.connection.pbutils) implementation(libs.kotlin.coroutines) } diff --git a/components/bridge/connection/feature/rpc/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpc/api/FRpcFeatureApi.kt b/components/bridge/connection/feature/rpc/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpc/api/FRpcFeatureApi.kt similarity index 82% rename from components/bridge/connection/feature/rpc/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpc/api/FRpcFeatureApi.kt rename to components/bridge/connection/feature/rpc/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpc/api/FRpcFeatureApi.kt index a1754d9ffe..70e97ef013 100644 --- a/components/bridge/connection/feature/rpc/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpc/api/FRpcFeatureApi.kt +++ b/components/bridge/connection/feature/rpc/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpc/api/FRpcFeatureApi.kt @@ -2,19 +2,19 @@ package com.flipperdevices.bridge.connection.feature.rpc.api import com.flipperdevices.bridge.connection.feature.common.api.FDeviceFeatureApi import com.flipperdevices.bridge.connection.feature.rpc.model.FlipperRequest -import com.flipperdevices.protobuf.Flipper +import com.flipperdevices.protobuf.Main import kotlinx.coroutines.flow.Flow interface FRpcFeatureApi : FDeviceFeatureApi { /** * You can subscribe on this flow if you want receive message without request */ - fun notificationFlow(): Flow + fun notificationFlow(): Flow
/** * Send request and wait answer from them */ - fun request(command: FlipperRequest): Flow + fun request(command: FlipperRequest): Flow
/** * Send batch of request in flipper and wait single answer @@ -22,7 +22,7 @@ interface FRpcFeatureApi : FDeviceFeatureApi { suspend fun request( commandFlow: Flow, onCancel: suspend (Int) -> Unit = {} - ): Flipper.Main + ): Main /** * Send batch request without waiting response diff --git a/components/bridge/connection/feature/rpc/impl/build.gradle.kts b/components/bridge/connection/feature/rpc/impl/build.gradle.kts index b6fd225ea8..17c0382e84 100644 --- a/components/bridge/connection/feature/rpc/impl/build.gradle.kts +++ b/components/bridge/connection/feature/rpc/impl/build.gradle.kts @@ -1,18 +1,19 @@ plugins { - id("flipper.android-lib") - id("flipper.anvil") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") + id("flipper.anvil-multiplatform") } android.namespace = "com.flipperdevices.bridge.connection.feature.rpc.impl" -dependencies { +commonDependencies { implementation(projects.components.bridge.connection.feature.rpc.api) implementation(projects.components.core.di) implementation(projects.components.core.ktx) implementation(projects.components.core.log) - implementation(projects.components.bridge.pbutils) + implementation(projects.components.bridge.connection.pbutils) implementation(projects.components.analytics.shake2report.api) @@ -23,7 +24,9 @@ dependencies { implementation(libs.kotlin.coroutines) implementation(libs.fastutil) +} - testImplementation(libs.junit) - testImplementation(libs.kotlin.coroutines.test) +jvmSharedTestDependencies { + implementation(libs.junit) + implementation(libs.kotlin.coroutines.test) } diff --git a/components/bridge/connection/feature/rpc/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpc/impl/FProtobufMessageCollector.kt b/components/bridge/connection/feature/rpc/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpc/impl/FProtobufMessageCollector.kt similarity index 86% rename from components/bridge/connection/feature/rpc/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpc/impl/FProtobufMessageCollector.kt rename to components/bridge/connection/feature/rpc/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpc/impl/FProtobufMessageCollector.kt index aa350becdb..c4da5db2c3 100644 --- a/components/bridge/connection/feature/rpc/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpc/impl/FProtobufMessageCollector.kt +++ b/components/bridge/connection/feature/rpc/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpc/impl/FProtobufMessageCollector.kt @@ -3,13 +3,13 @@ package com.flipperdevices.bridge.connection.feature.rpc.impl import com.flipperdevices.bridge.connection.feature.restartrpc.api.FRestartRpcFeatureApi import com.flipperdevices.bridge.connection.feature.rpc.reader.PeripheralResponseReader import com.flipperdevices.bridge.connection.feature.rpc.storage.FRequestStorage +import com.flipperdevices.bridge.connection.pbutils.encodeWithDelimitedSize import com.flipperdevices.bridge.connection.transport.common.api.serial.FSerialDeviceApi -import com.flipperdevices.bridge.protobuf.toDelimitedBytes import com.flipperdevices.core.ktx.jre.FlipperDispatchers import com.flipperdevices.core.log.info import com.flipperdevices.core.log.warn -import com.flipperdevices.protobuf.Flipper -import com.flipperdevices.protobuf.main +import com.flipperdevices.protobuf.CommandStatus +import com.flipperdevices.protobuf.Main import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject @@ -34,8 +34,8 @@ class FProtobufMessageCollector @AssistedInject constructor( scope = scope, restartRPCApi = restartApiFeature ) - private val notificationMutableFlow = MutableSharedFlow() - val notificationFlow: Flow = notificationMutableFlow + private val notificationMutableFlow = MutableSharedFlow
() + val notificationFlow: Flow
= notificationMutableFlow init { subscribeToAnswers(scope) @@ -49,7 +49,7 @@ class FProtobufMessageCollector @AssistedInject constructor( } scope.launch(FlipperDispatchers.workStealingDispatcher) { reader.getResponses().collect { - val listener = requestListeners[it.commandId] + val listener = requestListeners[it.command_id] if (listener == null) { warn { "Receive package without id $it" } notificationMutableFlow.emit(it) @@ -70,7 +70,7 @@ class FProtobufMessageCollector @AssistedInject constructor( while (isActive) { val request = requestStorage.getNextRequest() if (request != null) { - serialApi.sendBytes(request.data.toDelimitedBytes()) + serialApi.sendBytes(request.data.encodeWithDelimitedSize()) } } } @@ -87,10 +87,10 @@ class FProtobufMessageCollector @AssistedInject constructor( val listener = requestListeners.remove(id) info { "Invoke close for $listener" } listener?.invoke( - main { - commandStatus = Flipper.CommandStatus.ERROR - hasNext = false - } + Main( + command_status = CommandStatus.ERROR, + has_next = false + ) ) } } diff --git a/components/bridge/connection/feature/rpc/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpc/impl/FRpcFeatureApiImpl.kt b/components/bridge/connection/feature/rpc/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpc/impl/FRpcFeatureApiImpl.kt similarity index 91% rename from components/bridge/connection/feature/rpc/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpc/impl/FRpcFeatureApiImpl.kt rename to components/bridge/connection/feature/rpc/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpc/impl/FRpcFeatureApiImpl.kt index bae9a22bbd..529d2e344c 100644 --- a/components/bridge/connection/feature/rpc/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpc/impl/FRpcFeatureApiImpl.kt +++ b/components/bridge/connection/feature/rpc/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpc/impl/FRpcFeatureApiImpl.kt @@ -12,8 +12,7 @@ import com.flipperdevices.core.log.LogTagProvider import com.flipperdevices.core.log.error import com.flipperdevices.core.log.info import com.flipperdevices.core.log.verbose -import com.flipperdevices.protobuf.Flipper -import com.flipperdevices.protobuf.copy +import com.flipperdevices.protobuf.Main import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject @@ -34,7 +33,7 @@ import kotlinx.coroutines.withContext import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.atomic.AtomicInteger -internal typealias OnReceiveResponse = suspend (Flipper.Main) -> Unit +internal typealias OnReceiveResponse = suspend (Main) -> Unit class FRpcFeatureApiImpl @AssistedInject constructor( @Assisted private val scope: CoroutineScope, @@ -61,22 +60,22 @@ class FRpcFeatureApiImpl @AssistedInject constructor( override fun request( command: FlipperRequest - ): Flow = lagsDetector.wrapPendingAction( + ): Flow
= lagsDetector.wrapPendingAction( command, channelFlow { verbose { "Pending commands count: ${requestListeners.size}. Request $command" } // Generate unique ID for each command - val uniqueId = findEmptyId(currentId = command.data.commandId) + val uniqueId = findEmptyId(currentId = command.data.command_id) val requestWithId = command.copy( - data = command.data.copy { - commandId = uniqueId - } + data = command.data.copy( + command_id = uniqueId + ) ) // Add answer listener to listeners requestListeners[uniqueId] = { send(it) - if (!it.hasNext) { + if (!it.has_next) { requestListeners.remove(uniqueId) close() } @@ -94,7 +93,7 @@ class FRpcFeatureApiImpl @AssistedInject constructor( override suspend fun request( commandFlow: Flow, onCancel: suspend (Int) -> Unit - ): Flipper.Main = lagsDetector.wrapPendingAction(null) { + ): Main = lagsDetector.wrapPendingAction(null) { verbose { "Pending commands count: ${requestListeners.size}. Request command flow" } // Generate unique ID for each command @@ -110,9 +109,9 @@ class FRpcFeatureApiImpl @AssistedInject constructor( val flowCollectJob = commandFlow.onEach { request -> val requestWithId = request.copy( - data = request.data.copy { - commandId = uniqueId - } + data = request.data.copy( + command_id = uniqueId + ) ) requestStorage.sendRequest(requestWithId) }.onCompletion { @@ -160,7 +159,7 @@ class FRpcFeatureApiImpl @AssistedInject constructor( private suspend fun awaitCommandAnswer( uniqueId: Int - ): Flipper.Main = suspendCancellableCoroutine { cont -> + ): Main = suspendCancellableCoroutine { cont -> requestListeners[uniqueId] = { requestListeners.remove(uniqueId) @OptIn(ExperimentalCoroutinesApi::class) @@ -170,7 +169,7 @@ class FRpcFeatureApiImpl @AssistedInject constructor( } cont.invokeOnCancellation { - requestStorage.removeIf { request -> request.data.commandId == uniqueId } + requestStorage.removeIf { request -> request.data.command_id == uniqueId } requestListeners.remove(uniqueId) } } diff --git a/components/bridge/connection/feature/rpc/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpc/impl/FRpcFeatureFactoryImpl.kt b/components/bridge/connection/feature/rpc/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpc/impl/FRpcFeatureFactoryImpl.kt similarity index 100% rename from components/bridge/connection/feature/rpc/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpc/impl/FRpcFeatureFactoryImpl.kt rename to components/bridge/connection/feature/rpc/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpc/impl/FRpcFeatureFactoryImpl.kt diff --git a/components/bridge/connection/feature/rpc/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpc/reader/ByteEndlessInputStream.kt b/components/bridge/connection/feature/rpc/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpc/reader/ByteEndlessInputStream.kt similarity index 100% rename from components/bridge/connection/feature/rpc/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpc/reader/ByteEndlessInputStream.kt rename to components/bridge/connection/feature/rpc/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpc/reader/ByteEndlessInputStream.kt diff --git a/components/bridge/connection/feature/rpc/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpc/reader/PeripheralResponseReader.kt b/components/bridge/connection/feature/rpc/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpc/reader/PeripheralResponseReader.kt similarity index 84% rename from components/bridge/connection/feature/rpc/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpc/reader/PeripheralResponseReader.kt rename to components/bridge/connection/feature/rpc/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpc/reader/PeripheralResponseReader.kt index 5777bfc498..d156fad7b2 100644 --- a/components/bridge/connection/feature/rpc/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpc/reader/PeripheralResponseReader.kt +++ b/components/bridge/connection/feature/rpc/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpc/reader/PeripheralResponseReader.kt @@ -1,13 +1,13 @@ package com.flipperdevices.bridge.connection.feature.rpc.reader import com.flipperdevices.bridge.connection.feature.restartrpc.api.FRestartRpcFeatureApi +import com.flipperdevices.bridge.connection.pbutils.decodeDelimitedPackage import com.flipperdevices.core.ktx.jre.FlipperDispatchers import com.flipperdevices.core.ktx.jre.withLock import com.flipperdevices.core.log.LogTagProvider import com.flipperdevices.core.log.error -import com.flipperdevices.protobuf.Flipper +import com.flipperdevices.protobuf.Main import com.flipperdevices.shake2report.api.Shake2ReportApi -import com.google.protobuf.InvalidProtocolBufferException import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject @@ -29,7 +29,7 @@ class PeripheralResponseReader @AssistedInject constructor( override val TAG = "PeripheralResponseReader" private val mutex = Mutex() private var byteInputStream: ByteEndlessInputStream? = null - private val responses = MutableSharedFlow() + private val responses = MutableSharedFlow
() private var responseReaderJob: Job? = null init { @@ -51,20 +51,17 @@ class PeripheralResponseReader @AssistedInject constructor( byteInputStream?.write(byteArray) } - fun getResponses(): Flow = responses + fun getResponses(): Flow
= responses private suspend fun CoroutineScope.parseLoopJob(byteInputStream: ByteEndlessInputStream) { while (this.isActive) { try { - val main = Flipper.Main.parseDelimitedFrom(byteInputStream) + val main = Main.ADAPTER.decodeDelimitedPackage(byteInputStream) scope.launch(FlipperDispatchers.workStealingDispatcher) { responses.emit(main) } } catch (ignored: CancellationException) { // ignore - } catch (invalidProtocol: InvalidProtocolBufferException) { - error(invalidProtocol) { "Broke protocol" } - restartRPCApi.restartRpc() } catch (e: Exception) { error(e) { "Failed parse stream" } sentryApi.reportException(e, "protobuf_read") diff --git a/components/bridge/connection/feature/rpc/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpc/storage/FRequestComparator.kt b/components/bridge/connection/feature/rpc/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpc/storage/FRequestComparator.kt similarity index 100% rename from components/bridge/connection/feature/rpc/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpc/storage/FRequestComparator.kt rename to components/bridge/connection/feature/rpc/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpc/storage/FRequestComparator.kt diff --git a/components/bridge/connection/feature/rpc/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpc/storage/FRequestStorage.kt b/components/bridge/connection/feature/rpc/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpc/storage/FRequestStorage.kt similarity index 100% rename from components/bridge/connection/feature/rpc/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpc/storage/FRequestStorage.kt rename to components/bridge/connection/feature/rpc/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpc/storage/FRequestStorage.kt diff --git a/components/bridge/connection/feature/rpc/impl/src/test/kotlin/com/flipperdevices/bridge/connection/feature/rpc/reader/ByteEndlessInputStreamTest.kt b/components/bridge/connection/feature/rpc/impl/src/jvmSharedTest/kotlin/com/flipperdevices/bridge/connection/feature/rpc/reader/ByteEndlessInputStreamTest.kt similarity index 62% rename from components/bridge/connection/feature/rpc/impl/src/test/kotlin/com/flipperdevices/bridge/connection/feature/rpc/reader/ByteEndlessInputStreamTest.kt rename to components/bridge/connection/feature/rpc/impl/src/jvmSharedTest/kotlin/com/flipperdevices/bridge/connection/feature/rpc/reader/ByteEndlessInputStreamTest.kt index 572351f098..a438f4facb 100644 --- a/components/bridge/connection/feature/rpc/impl/src/test/kotlin/com/flipperdevices/bridge/connection/feature/rpc/reader/ByteEndlessInputStreamTest.kt +++ b/components/bridge/connection/feature/rpc/impl/src/jvmSharedTest/kotlin/com/flipperdevices/bridge/connection/feature/rpc/reader/ByteEndlessInputStreamTest.kt @@ -1,17 +1,18 @@ package com.flipperdevices.bridge.connection.feature.rpc.reader -import com.flipperdevices.protobuf.Flipper -import com.flipperdevices.protobuf.main -import com.flipperdevices.protobuf.storage.file -import com.flipperdevices.protobuf.storage.writeRequest -import com.flipperdevices.protobuf.system.pingRequest -import com.google.protobuf.ByteString +import com.flipperdevices.bridge.connection.pbutils.decodeDelimitedPackage +import com.flipperdevices.bridge.connection.pbutils.writeDelimitedTo +import com.flipperdevices.protobuf.Main +import com.flipperdevices.protobuf.storage.File +import com.flipperdevices.protobuf.storage.WriteRequest +import com.flipperdevices.protobuf.system.PingRequest import kotlinx.coroutines.CancellationException import kotlinx.coroutines.async import kotlinx.coroutines.cancel import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.advanceUntilIdle import kotlinx.coroutines.test.runTest +import okio.ByteString.Companion.toByteString import org.junit.Assert import org.junit.Before import org.junit.Test @@ -48,10 +49,26 @@ class ByteEndlessInputStreamTest { } @Test - fun `Write read protobuf message`() { - val message = main { - systemPingRequest = pingRequest {} + fun `check ping request protobuf serialization`() { + val message = Main( + system_ping_request = PingRequest() + ) + val messageBytes = ByteArrayOutputStream().use { os -> + message.writeDelimitedTo(os) + return@use os.toByteArray() } + + Assert.assertArrayEquals( + byteArrayOf(2, 42, 0), + messageBytes + ) + } + + @Test + fun `Write read protobuf message`() { + val message = Main( + system_ping_request = PingRequest() + ) val messageBytes = ByteArrayOutputStream().use { os -> message.writeDelimitedTo(os) return@use os.toByteArray() @@ -59,19 +76,19 @@ class ByteEndlessInputStreamTest { subject.write(messageBytes) - val actualMessage = Flipper.Main.parseDelimitedFrom(subject) + val actualMessage = Main.ADAPTER.decodeDelimitedPackage(subject) Assert.assertEquals(message, actualMessage) } @Test fun `Write read large protobuf message`() { - val message = main { - storageWriteRequest = writeRequest { - file = file { - data = ByteString.copyFrom(ByteArray(size = 10000) { it.toByte() }) - } - } - } + val message = Main( + storage_write_request = WriteRequest( + file_ = File( + data_ = ByteArray(size = 10000) { it.toByte() }.toByteString() + ) + ), + ) val messageBytes = ByteArrayOutputStream().use { os -> message.writeDelimitedTo(os) return@use os.toByteArray() @@ -79,7 +96,7 @@ class ByteEndlessInputStreamTest { subject.write(messageBytes) - val actualMessage = Flipper.Main.parseDelimitedFrom(subject) + val actualMessage = Main.ADAPTER.decodeDelimitedPackage(subject) Assert.assertEquals(message, actualMessage) } @@ -88,7 +105,7 @@ class ByteEndlessInputStreamTest { var cancelException: Throwable? = null val deffered = async { cancelException = runCatching { - Flipper.Main.parseDelimitedFrom(subject) + Main.ADAPTER.decodeDelimitedPackage(subject) }.exceptionOrNull() } scope.cancel() diff --git a/components/bridge/connection/feature/rpc/impl/src/test/kotlin/com/flipperdevices/bridge/connection/feature/rpc/storage/FRequestStorageTest.kt b/components/bridge/connection/feature/rpc/impl/src/jvmSharedTest/kotlin/com/flipperdevices/bridge/connection/feature/rpc/storage/FRequestStorageTest.kt similarity index 75% rename from components/bridge/connection/feature/rpc/impl/src/test/kotlin/com/flipperdevices/bridge/connection/feature/rpc/storage/FRequestStorageTest.kt rename to components/bridge/connection/feature/rpc/impl/src/jvmSharedTest/kotlin/com/flipperdevices/bridge/connection/feature/rpc/storage/FRequestStorageTest.kt index 05594717c7..39f2541053 100644 --- a/components/bridge/connection/feature/rpc/impl/src/test/kotlin/com/flipperdevices/bridge/connection/feature/rpc/storage/FRequestStorageTest.kt +++ b/components/bridge/connection/feature/rpc/impl/src/jvmSharedTest/kotlin/com/flipperdevices/bridge/connection/feature/rpc/storage/FRequestStorageTest.kt @@ -3,7 +3,7 @@ package com.flipperdevices.bridge.connection.feature.rpc.storage import com.flipperdevices.bridge.connection.feature.rpc.model.FlipperRequest import com.flipperdevices.bridge.connection.feature.rpc.model.FlipperRequestPriority import com.flipperdevices.bridge.connection.feature.rpc.model.wrapToRequest -import com.flipperdevices.protobuf.main +import com.flipperdevices.protobuf.Main import kotlinx.coroutines.runBlocking import org.junit.Assert.assertEquals import org.junit.Assert.assertNull @@ -20,9 +20,9 @@ class FRequestStorageTest { @Test fun `Check that object with highest priority returns first`() = runBlocking { - val lowPriority = main { }.wrapToRequest(FlipperRequestPriority.BACKGROUND) - val mediumPriority = main { }.wrapToRequest() - val highestPriority = main { }.wrapToRequest(FlipperRequestPriority.FOREGROUND) + val lowPriority = Main().wrapToRequest(FlipperRequestPriority.BACKGROUND) + val mediumPriority = Main().wrapToRequest() + val highestPriority = Main().wrapToRequest(FlipperRequestPriority.FOREGROUND) subject.sendRequest(mediumPriority, lowPriority, highestPriority) @@ -33,9 +33,9 @@ class FRequestStorageTest { @Test fun `Check that oldest object returns first`() = runBlocking { - val lowPriority = FlipperRequest(main { }, 300L) - val mediumPriority = FlipperRequest(main { }, 200L) - val highestPriority = FlipperRequest(main { }, 100L) + val lowPriority = FlipperRequest(Main(), 300L) + val mediumPriority = FlipperRequest(Main(), 200L) + val highestPriority = FlipperRequest(Main(), 100L) subject.sendRequest(mediumPriority, lowPriority, highestPriority) @@ -46,7 +46,7 @@ class FRequestStorageTest { @Test fun `Return null if not present request`() = runBlocking { - val request = main { }.wrapToRequest(FlipperRequestPriority.BACKGROUND) + val request = Main().wrapToRequest(FlipperRequestPriority.BACKGROUND) subject.sendRequest(request) diff --git a/components/bridge/connection/feature/rpc/model/build.gradle.kts b/components/bridge/connection/feature/rpc/model/build.gradle.kts index d708bfdcbf..0d49db953a 100644 --- a/components/bridge/connection/feature/rpc/model/build.gradle.kts +++ b/components/bridge/connection/feature/rpc/model/build.gradle.kts @@ -1,10 +1,11 @@ plugins { - id("flipper.android-lib") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") } android.namespace = "com.flipperdevices.bridge.connection.feature.rpc.model" -dependencies { +commonDependencies { implementation(projects.components.core.ktx) - implementation(projects.components.bridge.pbutils) + implementation(projects.components.bridge.connection.pbutils) } diff --git a/components/bridge/connection/feature/rpc/model/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpc/model/FlipperRequest.kt b/components/bridge/connection/feature/rpc/model/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpc/model/FlipperRequest.kt similarity index 79% rename from components/bridge/connection/feature/rpc/model/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpc/model/FlipperRequest.kt rename to components/bridge/connection/feature/rpc/model/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpc/model/FlipperRequest.kt index a4b2f99e76..b764a1e740 100644 --- a/components/bridge/connection/feature/rpc/model/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpc/model/FlipperRequest.kt +++ b/components/bridge/connection/feature/rpc/model/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpc/model/FlipperRequest.kt @@ -1,14 +1,14 @@ package com.flipperdevices.bridge.connection.feature.rpc.model import com.flipperdevices.core.ktx.jre.TimeHelper -import com.flipperdevices.protobuf.Flipper +import com.flipperdevices.protobuf.Main data class FlipperRequest( - val data: Flipper.Main, + val data: Main, val createTimestampNanos: Long = TimeHelper.getNanoTime(), val priority: FlipperRequestPriority = FlipperRequestPriority.DEFAULT ) -fun Flipper.Main.wrapToRequest( +fun Main.wrapToRequest( priority: FlipperRequestPriority = FlipperRequestPriority.DEFAULT ) = FlipperRequest(data = this, priority = priority) diff --git a/components/bridge/connection/feature/rpc/model/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpc/model/FlipperRequestPriority.kt b/components/bridge/connection/feature/rpc/model/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpc/model/FlipperRequestPriority.kt similarity index 100% rename from components/bridge/connection/feature/rpc/model/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpc/model/FlipperRequestPriority.kt rename to components/bridge/connection/feature/rpc/model/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpc/model/FlipperRequestPriority.kt diff --git a/components/bridge/connection/feature/rpcinfo/api/build.gradle.kts b/components/bridge/connection/feature/rpcinfo/api/build.gradle.kts index c456488b68..c72c1dd972 100644 --- a/components/bridge/connection/feature/rpcinfo/api/build.gradle.kts +++ b/components/bridge/connection/feature/rpcinfo/api/build.gradle.kts @@ -1,10 +1,11 @@ plugins { - id("flipper.android-lib") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") } android.namespace = "com.flipperdevices.bridge.connection.feature.rpcinfo.api" -dependencies { +commonDependencies { implementation(projects.components.core.data) implementation(projects.components.core.ktx) diff --git a/components/bridge/connection/feature/rpcinfo/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/api/FRpcInfoFeatureApi.kt b/components/bridge/connection/feature/rpcinfo/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/api/FRpcInfoFeatureApi.kt similarity index 100% rename from components/bridge/connection/feature/rpcinfo/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/api/FRpcInfoFeatureApi.kt rename to components/bridge/connection/feature/rpcinfo/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/api/FRpcInfoFeatureApi.kt diff --git a/components/bridge/connection/feature/rpcinfo/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/model/FlipperInformationStatus.kt b/components/bridge/connection/feature/rpcinfo/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/model/FlipperInformationStatus.kt similarity index 100% rename from components/bridge/connection/feature/rpcinfo/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/model/FlipperInformationStatus.kt rename to components/bridge/connection/feature/rpcinfo/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/model/FlipperInformationStatus.kt diff --git a/components/bridge/connection/feature/rpcinfo/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/model/FlipperRpcInformation.kt b/components/bridge/connection/feature/rpcinfo/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/model/FlipperRpcInformation.kt similarity index 100% rename from components/bridge/connection/feature/rpcinfo/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/model/FlipperRpcInformation.kt rename to components/bridge/connection/feature/rpcinfo/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/model/FlipperRpcInformation.kt diff --git a/components/bridge/connection/feature/rpcinfo/impl/build.gradle.kts b/components/bridge/connection/feature/rpcinfo/impl/build.gradle.kts index ada997be61..4fdd4eaa02 100644 --- a/components/bridge/connection/feature/rpcinfo/impl/build.gradle.kts +++ b/components/bridge/connection/feature/rpcinfo/impl/build.gradle.kts @@ -1,11 +1,12 @@ plugins { - id("flipper.android-lib") - id("flipper.anvil") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") + id("flipper.anvil-multiplatform") } android.namespace = "com.flipperdevices.bridge.connection.feature.rpcinfo.impl" -dependencies { +commonDependencies { implementation(projects.components.bridge.connection.feature.rpcinfo.api) implementation(projects.components.core.data) @@ -19,7 +20,7 @@ dependencies { implementation(projects.components.bridge.connection.feature.rpc.model) implementation(projects.components.bridge.connection.feature.getinfo.api) - implementation(projects.components.bridge.pbutils) + implementation(projects.components.bridge.connection.pbutils) implementation(projects.components.analytics.shake2report.api) implementation(libs.kotlin.immutable.collections) diff --git a/components/bridge/connection/feature/rpcinfo/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/api/FRpcInfoFeatureApiImpl.kt b/components/bridge/connection/feature/rpcinfo/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/api/FRpcInfoFeatureApiImpl.kt similarity index 100% rename from components/bridge/connection/feature/rpcinfo/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/api/FRpcInfoFeatureApiImpl.kt rename to components/bridge/connection/feature/rpcinfo/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/api/FRpcInfoFeatureApiImpl.kt diff --git a/components/bridge/connection/feature/rpcinfo/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/api/FRpcInfoFeatureFactoryImpl.kt b/components/bridge/connection/feature/rpcinfo/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/api/FRpcInfoFeatureFactoryImpl.kt similarity index 100% rename from components/bridge/connection/feature/rpcinfo/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/api/FRpcInfoFeatureFactoryImpl.kt rename to components/bridge/connection/feature/rpcinfo/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/api/FRpcInfoFeatureFactoryImpl.kt diff --git a/components/bridge/connection/feature/rpcinfo/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/fullinforpc/DeprecatedFlipperFullInfoRpcApi.kt b/components/bridge/connection/feature/rpcinfo/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/fullinforpc/DeprecatedFlipperFullInfoRpcApi.kt similarity index 50% rename from components/bridge/connection/feature/rpcinfo/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/fullinforpc/DeprecatedFlipperFullInfoRpcApi.kt rename to components/bridge/connection/feature/rpcinfo/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/fullinforpc/DeprecatedFlipperFullInfoRpcApi.kt index 0f4da62441..6182b6c2c5 100644 --- a/components/bridge/connection/feature/rpcinfo/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/fullinforpc/DeprecatedFlipperFullInfoRpcApi.kt +++ b/components/bridge/connection/feature/rpcinfo/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/fullinforpc/DeprecatedFlipperFullInfoRpcApi.kt @@ -3,9 +3,9 @@ package com.flipperdevices.bridge.connection.feature.rpcinfo.impl.fullinforpc import com.flipperdevices.bridge.connection.feature.rpc.api.FRpcFeatureApi import com.flipperdevices.bridge.connection.feature.rpc.model.wrapToRequest import com.flipperdevices.bridge.connection.feature.rpcinfo.impl.mapper.DeprecatedFlipperRpcInfoMapper -import com.flipperdevices.protobuf.main -import com.flipperdevices.protobuf.system.deviceInfoRequest -import com.flipperdevices.protobuf.system.powerInfoRequest +import com.flipperdevices.protobuf.Main +import com.flipperdevices.protobuf.system.DeviceInfoRequest +import com.flipperdevices.protobuf.system.PowerInfoRequest internal class DeprecatedFlipperFullInfoRpcApi : FlipperFullInfoRpcApi( DeprecatedFlipperRpcInfoMapper() @@ -15,29 +15,25 @@ internal class DeprecatedFlipperFullInfoRpcApi : FlipperFullInfoRpcApi( onNewPair: suspend (key: String, value: String) -> Unit ) { requestApi.request( - main { - systemDeviceInfoRequest = deviceInfoRequest { } - }.wrapToRequest() + Main( + system_device_info_request = DeviceInfoRequest() + ).wrapToRequest() ).collect { response -> - if (!response.hasSystemDeviceInfoResponse()) { - return@collect - } + val systemDeviceInfoResponse = response.system_device_info_response ?: return@collect onNewPair( - response.systemDeviceInfoResponse.key, - response.systemDeviceInfoResponse.value + systemDeviceInfoResponse.key, + systemDeviceInfoResponse.value_ ) } requestApi.request( - main { - systemPowerInfoRequest = powerInfoRequest { } - }.wrapToRequest() + Main( + system_power_info_request = PowerInfoRequest() + ).wrapToRequest() ).collect { response -> - if (!response.hasSystemPowerInfoResponse()) { - return@collect - } + val systemPowerInfoResponse = response.system_power_info_response ?: return@collect onNewPair( - response.systemPowerInfoResponse.key, - response.systemPowerInfoResponse.value + systemPowerInfoResponse.key, + systemPowerInfoResponse.value_ ) } } diff --git a/components/bridge/connection/feature/rpcinfo/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/fullinforpc/FlipperFullInfoRpcApi.kt b/components/bridge/connection/feature/rpcinfo/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/fullinforpc/FlipperFullInfoRpcApi.kt similarity index 100% rename from components/bridge/connection/feature/rpcinfo/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/fullinforpc/FlipperFullInfoRpcApi.kt rename to components/bridge/connection/feature/rpcinfo/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/fullinforpc/FlipperFullInfoRpcApi.kt diff --git a/components/bridge/connection/feature/rpcinfo/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/fullinforpc/NewFlipperFullInfoRpcApi.kt b/components/bridge/connection/feature/rpcinfo/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/fullinforpc/NewFlipperFullInfoRpcApi.kt similarity index 100% rename from components/bridge/connection/feature/rpcinfo/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/fullinforpc/NewFlipperFullInfoRpcApi.kt rename to components/bridge/connection/feature/rpcinfo/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/fullinforpc/NewFlipperFullInfoRpcApi.kt diff --git a/components/bridge/connection/feature/rpcinfo/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/mapper/DeprecatedFlipperRpcInfoMapper.kt b/components/bridge/connection/feature/rpcinfo/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/mapper/DeprecatedFlipperRpcInfoMapper.kt similarity index 100% rename from components/bridge/connection/feature/rpcinfo/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/mapper/DeprecatedFlipperRpcInfoMapper.kt rename to components/bridge/connection/feature/rpcinfo/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/mapper/DeprecatedFlipperRpcInfoMapper.kt diff --git a/components/bridge/connection/feature/rpcinfo/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/mapper/FlipperRpcInfoMapper.kt b/components/bridge/connection/feature/rpcinfo/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/mapper/FlipperRpcInfoMapper.kt similarity index 100% rename from components/bridge/connection/feature/rpcinfo/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/mapper/FlipperRpcInfoMapper.kt rename to components/bridge/connection/feature/rpcinfo/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/mapper/FlipperRpcInfoMapper.kt diff --git a/components/bridge/connection/feature/rpcinfo/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/mapper/InternalFlipperRpcInformationRaw.kt b/components/bridge/connection/feature/rpcinfo/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/mapper/InternalFlipperRpcInformationRaw.kt similarity index 100% rename from components/bridge/connection/feature/rpcinfo/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/mapper/InternalFlipperRpcInformationRaw.kt rename to components/bridge/connection/feature/rpcinfo/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/mapper/InternalFlipperRpcInformationRaw.kt diff --git a/components/bridge/connection/feature/rpcinfo/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/mapper/NewFlipperRpcInfoMapper.kt b/components/bridge/connection/feature/rpcinfo/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/mapper/NewFlipperRpcInfoMapper.kt similarity index 100% rename from components/bridge/connection/feature/rpcinfo/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/mapper/NewFlipperRpcInfoMapper.kt rename to components/bridge/connection/feature/rpcinfo/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/mapper/NewFlipperRpcInfoMapper.kt diff --git a/components/bridge/connection/feature/rpcinfo/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/mapper/RpcInformationInfoHelper.kt b/components/bridge/connection/feature/rpcinfo/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/mapper/RpcInformationInfoHelper.kt similarity index 100% rename from components/bridge/connection/feature/rpcinfo/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/mapper/RpcInformationInfoHelper.kt rename to components/bridge/connection/feature/rpcinfo/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/mapper/RpcInformationInfoHelper.kt diff --git a/components/bridge/connection/feature/rpcinfo/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/shaketoreport/FlipperInformationMapping.kt b/components/bridge/connection/feature/rpcinfo/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/shaketoreport/FlipperInformationMapping.kt similarity index 100% rename from components/bridge/connection/feature/rpcinfo/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/shaketoreport/FlipperInformationMapping.kt rename to components/bridge/connection/feature/rpcinfo/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpcinfo/impl/shaketoreport/FlipperInformationMapping.kt diff --git a/components/bridge/connection/feature/rpcstats/api/build.gradle.kts b/components/bridge/connection/feature/rpcstats/api/build.gradle.kts index 5e0d76d9f2..fb5c9a2115 100644 --- a/components/bridge/connection/feature/rpcstats/api/build.gradle.kts +++ b/components/bridge/connection/feature/rpcstats/api/build.gradle.kts @@ -1,9 +1,10 @@ plugins { - id("flipper.android-lib") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") } android.namespace = "com.flipperdevices.bridge.connection.feature.rpcstats.api" -dependencies { +commonDependencies { implementation(projects.components.bridge.connection.feature.common.api) } diff --git a/components/bridge/connection/feature/rpcstats/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpcstats/api/FRpcStatsOnDeviceReadyFeatureApi.kt b/components/bridge/connection/feature/rpcstats/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpcstats/api/FRpcStatsOnDeviceReadyFeatureApi.kt similarity index 100% rename from components/bridge/connection/feature/rpcstats/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpcstats/api/FRpcStatsOnDeviceReadyFeatureApi.kt rename to components/bridge/connection/feature/rpcstats/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpcstats/api/FRpcStatsOnDeviceReadyFeatureApi.kt diff --git a/components/bridge/connection/feature/rpcstats/impl/build.gradle.kts b/components/bridge/connection/feature/rpcstats/impl/build.gradle.kts index 2ca1c1219a..c1cb79a177 100644 --- a/components/bridge/connection/feature/rpcstats/impl/build.gradle.kts +++ b/components/bridge/connection/feature/rpcstats/impl/build.gradle.kts @@ -1,11 +1,12 @@ plugins { - id("flipper.android-lib") - id("flipper.anvil") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") + id("flipper.anvil-multiplatform") } android.namespace = "com.flipperdevices.bridge.connection.feature.rpcstats.impl" -dependencies { +commonDependencies { implementation(projects.components.bridge.connection.feature.rpcstats.api) implementation(projects.components.core.di) @@ -21,7 +22,8 @@ dependencies { implementation(projects.components.bridge.connection.feature.rpcinfo.api) implementation(projects.components.bridge.connection.feature.getinfo.api) - implementation(projects.components.bridge.pbutils) + implementation(projects.components.bridge.connection.pbutils) implementation(libs.kotlin.coroutines) + implementation(libs.dagger) } diff --git a/components/bridge/connection/feature/rpcstats/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpcstats/impl/api/FRpcStatsOnDeviceReadyFeatureApiImpl.kt b/components/bridge/connection/feature/rpcstats/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpcstats/impl/api/FRpcStatsOnDeviceReadyFeatureApiImpl.kt similarity index 100% rename from components/bridge/connection/feature/rpcstats/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpcstats/impl/api/FRpcStatsOnDeviceReadyFeatureApiImpl.kt rename to components/bridge/connection/feature/rpcstats/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpcstats/impl/api/FRpcStatsOnDeviceReadyFeatureApiImpl.kt diff --git a/components/bridge/connection/feature/rpcstats/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpcstats/impl/api/FRpcStatsOnDeviceReadyFeatureFactoryImpl.kt b/components/bridge/connection/feature/rpcstats/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpcstats/impl/api/FRpcStatsOnDeviceReadyFeatureFactoryImpl.kt similarity index 100% rename from components/bridge/connection/feature/rpcstats/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpcstats/impl/api/FRpcStatsOnDeviceReadyFeatureFactoryImpl.kt rename to components/bridge/connection/feature/rpcstats/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpcstats/impl/api/FRpcStatsOnDeviceReadyFeatureFactoryImpl.kt diff --git a/components/bridge/connection/feature/rpcstats/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpcstats/impl/shaketoreport/FlipperInformationMapping.kt b/components/bridge/connection/feature/rpcstats/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpcstats/impl/shaketoreport/FlipperInformationMapping.kt similarity index 100% rename from components/bridge/connection/feature/rpcstats/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/rpcstats/impl/shaketoreport/FlipperInformationMapping.kt rename to components/bridge/connection/feature/rpcstats/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/rpcstats/impl/shaketoreport/FlipperInformationMapping.kt diff --git a/components/bridge/connection/feature/serialspeed/api/build.gradle.kts b/components/bridge/connection/feature/serialspeed/api/build.gradle.kts index 51c881cb4f..313906849c 100644 --- a/components/bridge/connection/feature/serialspeed/api/build.gradle.kts +++ b/components/bridge/connection/feature/serialspeed/api/build.gradle.kts @@ -1,10 +1,11 @@ plugins { - id("flipper.android-lib") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") } android.namespace = "com.flipperdevices.bridge.connection.feature.serialspeed.api" -dependencies { +commonDependencies { implementation(projects.components.bridge.connection.feature.common.api) implementation(projects.components.bridge.connection.transport.common.api) diff --git a/components/bridge/connection/feature/serialspeed/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/serialspeed/api/FSpeedFeatureApi.kt b/components/bridge/connection/feature/serialspeed/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/serialspeed/api/FSpeedFeatureApi.kt similarity index 100% rename from components/bridge/connection/feature/serialspeed/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/serialspeed/api/FSpeedFeatureApi.kt rename to components/bridge/connection/feature/serialspeed/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/serialspeed/api/FSpeedFeatureApi.kt diff --git a/components/bridge/connection/feature/serialspeed/impl/build.gradle.kts b/components/bridge/connection/feature/serialspeed/impl/build.gradle.kts index 42c24f5ec7..3ad8b11ece 100644 --- a/components/bridge/connection/feature/serialspeed/impl/build.gradle.kts +++ b/components/bridge/connection/feature/serialspeed/impl/build.gradle.kts @@ -1,11 +1,12 @@ plugins { - id("flipper.android-lib") - id("flipper.anvil") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") + id("flipper.anvil-multiplatform") } android.namespace = "com.flipperdevices.bridge.connection.feature.serialspeed.impl" -dependencies { +commonDependencies { implementation(projects.components.bridge.connection.feature.serialspeed.api) implementation(projects.components.core.di) diff --git a/components/bridge/connection/feature/serialspeed/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/serialspeed/impl/FSpeedFeatureApiFactoryImpl.kt b/components/bridge/connection/feature/serialspeed/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/serialspeed/impl/FSpeedFeatureApiFactoryImpl.kt similarity index 100% rename from components/bridge/connection/feature/serialspeed/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/serialspeed/impl/FSpeedFeatureApiFactoryImpl.kt rename to components/bridge/connection/feature/serialspeed/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/serialspeed/impl/FSpeedFeatureApiFactoryImpl.kt diff --git a/components/bridge/connection/feature/serialspeed/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/serialspeed/impl/FSpeedFeatureApiImpl.kt b/components/bridge/connection/feature/serialspeed/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/serialspeed/impl/FSpeedFeatureApiImpl.kt similarity index 100% rename from components/bridge/connection/feature/serialspeed/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/serialspeed/impl/FSpeedFeatureApiImpl.kt rename to components/bridge/connection/feature/serialspeed/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/serialspeed/impl/FSpeedFeatureApiImpl.kt diff --git a/components/bridge/connection/feature/storageinfo/api/build.gradle.kts b/components/bridge/connection/feature/storageinfo/api/build.gradle.kts index 97ab5dfb0b..d94bd3b0ef 100644 --- a/components/bridge/connection/feature/storageinfo/api/build.gradle.kts +++ b/components/bridge/connection/feature/storageinfo/api/build.gradle.kts @@ -1,10 +1,11 @@ plugins { - id("flipper.android-lib") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") } android.namespace = "com.flipperdevices.bridge.connection.feature.storageinfo.api" -dependencies { +commonDependencies { implementation(projects.components.core.data) implementation(projects.components.core.ktx) diff --git a/components/bridge/connection/feature/storageinfo/api/src/androidMain/kotlin/com/flipperdevices/bridge/connection/feature/storageinfo/model/StorageStatsKtx.kt b/components/bridge/connection/feature/storageinfo/api/src/androidMain/kotlin/com/flipperdevices/bridge/connection/feature/storageinfo/model/StorageStatsKtx.kt new file mode 100644 index 0000000000..1c1acefabc --- /dev/null +++ b/components/bridge/connection/feature/storageinfo/api/src/androidMain/kotlin/com/flipperdevices/bridge/connection/feature/storageinfo/model/StorageStatsKtx.kt @@ -0,0 +1,18 @@ +package com.flipperdevices.bridge.connection.feature.storageinfo.model + +import android.content.Context +import com.flipperdevices.bridge.connection.feature.storageinfo.api.R +import com.flipperdevices.core.ktx.jre.toFormattedSize +import kotlin.math.max + +fun StorageStats.toString(context: Context): String { + return when (this) { + StorageStats.Error -> context.getString(R.string.info_device_info_flash_not_found) + is StorageStats.Loaded -> { + val usedHumanReadable = max(0L, total - free).toFormattedSize() + val totalHumanReadable = total.toFormattedSize() + + "$usedHumanReadable / $totalHumanReadable" + } + } +} diff --git a/components/bridge/connection/feature/storageinfo/api/src/main/res/values/strings.xml b/components/bridge/connection/feature/storageinfo/api/src/androidMain/res/values/strings.xml similarity index 100% rename from components/bridge/connection/feature/storageinfo/api/src/main/res/values/strings.xml rename to components/bridge/connection/feature/storageinfo/api/src/androidMain/res/values/strings.xml diff --git a/components/bridge/connection/feature/storageinfo/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/storageinfo/api/FStorageInfoFeatureApi.kt b/components/bridge/connection/feature/storageinfo/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/storageinfo/api/FStorageInfoFeatureApi.kt similarity index 100% rename from components/bridge/connection/feature/storageinfo/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/storageinfo/api/FStorageInfoFeatureApi.kt rename to components/bridge/connection/feature/storageinfo/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/storageinfo/api/FStorageInfoFeatureApi.kt diff --git a/components/bridge/connection/feature/storageinfo/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/storageinfo/model/FlipperStorageInformation.kt b/components/bridge/connection/feature/storageinfo/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/storageinfo/model/FlipperStorageInformation.kt similarity index 73% rename from components/bridge/connection/feature/storageinfo/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/storageinfo/model/FlipperStorageInformation.kt rename to components/bridge/connection/feature/storageinfo/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/storageinfo/model/FlipperStorageInformation.kt index 7536f96e3c..72d774ebb4 100644 --- a/components/bridge/connection/feature/storageinfo/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/storageinfo/model/FlipperStorageInformation.kt +++ b/components/bridge/connection/feature/storageinfo/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/storageinfo/model/FlipperStorageInformation.kt @@ -1,10 +1,6 @@ package com.flipperdevices.bridge.connection.feature.storageinfo.model -import android.content.Context import com.flipperdevices.bridge.connection.feature.rpcinfo.model.FlipperInformationStatus -import com.flipperdevices.bridge.connection.feature.storageinfo.api.R -import com.flipperdevices.core.ktx.jre.toFormattedSize -import kotlin.math.max data class FlipperStorageInformation( val internalStorageStatus: FlipperInformationStatus = @@ -40,15 +36,3 @@ private fun isStorageEnding(flash: StorageStats?): Boolean { null -> false } } - -fun StorageStats.toString(context: Context): String { - return when (this) { - StorageStats.Error -> context.getString(R.string.info_device_info_flash_not_found) - is StorageStats.Loaded -> { - val usedHumanReadable = max(0L, total - free).toFormattedSize() - val totalHumanReadable = total.toFormattedSize() - - "$usedHumanReadable / $totalHumanReadable" - } - } -} diff --git a/components/bridge/connection/feature/storageinfo/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/storageinfo/model/StorageStats.kt b/components/bridge/connection/feature/storageinfo/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/storageinfo/model/StorageStats.kt similarity index 100% rename from components/bridge/connection/feature/storageinfo/api/src/main/kotlin/com/flipperdevices/bridge/connection/feature/storageinfo/model/StorageStats.kt rename to components/bridge/connection/feature/storageinfo/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/storageinfo/model/StorageStats.kt diff --git a/components/bridge/connection/feature/storageinfo/impl/build.gradle.kts b/components/bridge/connection/feature/storageinfo/impl/build.gradle.kts index 7958323045..4aa04624b2 100644 --- a/components/bridge/connection/feature/storageinfo/impl/build.gradle.kts +++ b/components/bridge/connection/feature/storageinfo/impl/build.gradle.kts @@ -1,11 +1,12 @@ plugins { - id("flipper.android-lib") - id("flipper.anvil") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") + id("flipper.anvil-multiplatform") } android.namespace = "com.flipperdevices.bridge.connection.feature.storageinfo.impl" -dependencies { +commonDependencies { implementation(projects.components.bridge.connection.feature.storageinfo.api) implementation(projects.components.core.di) @@ -18,7 +19,7 @@ dependencies { implementation(projects.components.bridge.connection.feature.rpc.model) implementation(projects.components.bridge.connection.feature.rpcinfo.api) - implementation(projects.components.bridge.pbutils) + implementation(projects.components.bridge.connection.pbutils) implementation(libs.kotlin.coroutines) } diff --git a/components/bridge/connection/feature/storageinfo/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/storageinfo/impl/api/FStorageInfoFeatureApiImpl.kt b/components/bridge/connection/feature/storageinfo/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/storageinfo/impl/api/FStorageInfoFeatureApiImpl.kt similarity index 88% rename from components/bridge/connection/feature/storageinfo/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/storageinfo/impl/api/FStorageInfoFeatureApiImpl.kt rename to components/bridge/connection/feature/storageinfo/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/storageinfo/impl/api/FStorageInfoFeatureApiImpl.kt index 2b743c77a1..46ea597007 100644 --- a/components/bridge/connection/feature/storageinfo/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/storageinfo/impl/api/FStorageInfoFeatureApiImpl.kt +++ b/components/bridge/connection/feature/storageinfo/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/storageinfo/impl/api/FStorageInfoFeatureApiImpl.kt @@ -1,7 +1,6 @@ package com.flipperdevices.bridge.connection.feature.storageinfo.impl.api import com.flipperdevices.bridge.connection.feature.rpc.api.FRpcFeatureApi -import com.flipperdevices.bridge.connection.feature.rpc.model.FlipperRequestPriority import com.flipperdevices.bridge.connection.feature.rpc.model.wrapToRequest import com.flipperdevices.bridge.connection.feature.rpcinfo.model.FlipperInformationStatus import com.flipperdevices.bridge.connection.feature.storageinfo.api.FStorageInfoFeatureApi @@ -10,7 +9,9 @@ import com.flipperdevices.bridge.connection.feature.storageinfo.model.StorageSta import com.flipperdevices.core.ktx.jre.withLock import com.flipperdevices.core.log.LogTagProvider import com.flipperdevices.core.log.info -import com.flipperdevices.protobuf.main +import com.flipperdevices.protobuf.CommandStatus +import com.flipperdevices.protobuf.Main +import com.flipperdevices.protobuf.storage.InfoRequest import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject @@ -133,23 +134,21 @@ class FStorageInfoFeatureApiImpl @AssistedInject constructor( spaceInfoReceiver: suspend (StorageStats) -> Unit ) { rpcFeatureApi.request( - main { - storageInfoRequest = com.flipperdevices.protobuf.storage.infoRequest { + Main( + storage_info_request = InfoRequest( path = storagePath - } - }.wrapToRequest(FlipperRequestPriority.DEFAULT) + ) + ).wrapToRequest() ).collect { response -> - if (response.commandStatus != com.flipperdevices.protobuf.Flipper.CommandStatus.OK) { + if (response.command_status != CommandStatus.OK) { spaceInfoReceiver(StorageStats.Error) return@collect } - if (!response.hasStorageInfoResponse()) { - return@collect - } + val storageInfoResponse = response.storage_info_response ?: return@collect spaceInfoReceiver( StorageStats.Loaded( - total = response.storageInfoResponse.totalSpace, - free = response.storageInfoResponse.freeSpace + total = storageInfoResponse.total_space, + free = storageInfoResponse.free_space ) ) } diff --git a/components/bridge/connection/feature/storageinfo/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/storageinfo/impl/api/FStorageInfoFeatureFactoryImpl.kt b/components/bridge/connection/feature/storageinfo/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/storageinfo/impl/api/FStorageInfoFeatureFactoryImpl.kt similarity index 100% rename from components/bridge/connection/feature/storageinfo/impl/src/main/kotlin/com/flipperdevices/bridge/connection/feature/storageinfo/impl/api/FStorageInfoFeatureFactoryImpl.kt rename to components/bridge/connection/feature/storageinfo/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/feature/storageinfo/impl/api/FStorageInfoFeatureFactoryImpl.kt diff --git a/components/bridge/connection/orchestrator/api/build.gradle.kts b/components/bridge/connection/orchestrator/api/build.gradle.kts index 733b4309eb..5e8b3c7fe6 100644 --- a/components/bridge/connection/orchestrator/api/build.gradle.kts +++ b/components/bridge/connection/orchestrator/api/build.gradle.kts @@ -1,10 +1,11 @@ plugins { - id("flipper.android-lib") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") } android.namespace = "com.flipperdevices.bridge.connection.orchestrator.api" -dependencies { +commonDependencies { implementation(projects.components.bridge.connection.transport.common.api) implementation(projects.components.bridge.connection.config.api) diff --git a/components/bridge/connection/orchestrator/api/src/main/kotlin/com/flipperdevices/bridge/connection/orchestrator/api/FDeviceOrchestrator.kt b/components/bridge/connection/orchestrator/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/orchestrator/api/FDeviceOrchestrator.kt similarity index 100% rename from components/bridge/connection/orchestrator/api/src/main/kotlin/com/flipperdevices/bridge/connection/orchestrator/api/FDeviceOrchestrator.kt rename to components/bridge/connection/orchestrator/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/orchestrator/api/FDeviceOrchestrator.kt diff --git a/components/bridge/connection/orchestrator/api/src/main/kotlin/com/flipperdevices/bridge/connection/orchestrator/api/model/ConnectingStatus.kt b/components/bridge/connection/orchestrator/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/orchestrator/api/model/ConnectingStatus.kt similarity index 100% rename from components/bridge/connection/orchestrator/api/src/main/kotlin/com/flipperdevices/bridge/connection/orchestrator/api/model/ConnectingStatus.kt rename to components/bridge/connection/orchestrator/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/orchestrator/api/model/ConnectingStatus.kt diff --git a/components/bridge/connection/orchestrator/api/src/main/kotlin/com/flipperdevices/bridge/connection/orchestrator/api/model/DisconnectStatus.kt b/components/bridge/connection/orchestrator/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/orchestrator/api/model/DisconnectStatus.kt similarity index 100% rename from components/bridge/connection/orchestrator/api/src/main/kotlin/com/flipperdevices/bridge/connection/orchestrator/api/model/DisconnectStatus.kt rename to components/bridge/connection/orchestrator/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/orchestrator/api/model/DisconnectStatus.kt diff --git a/components/bridge/connection/orchestrator/api/src/main/kotlin/com/flipperdevices/bridge/connection/orchestrator/api/model/FDeviceConnectStatus.kt b/components/bridge/connection/orchestrator/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/orchestrator/api/model/FDeviceConnectStatus.kt similarity index 100% rename from components/bridge/connection/orchestrator/api/src/main/kotlin/com/flipperdevices/bridge/connection/orchestrator/api/model/FDeviceConnectStatus.kt rename to components/bridge/connection/orchestrator/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/orchestrator/api/model/FDeviceConnectStatus.kt diff --git a/components/bridge/connection/orchestrator/impl/build.gradle.kts b/components/bridge/connection/orchestrator/impl/build.gradle.kts index 3e532fef79..70ea579744 100644 --- a/components/bridge/connection/orchestrator/impl/build.gradle.kts +++ b/components/bridge/connection/orchestrator/impl/build.gradle.kts @@ -1,11 +1,12 @@ plugins { - id("flipper.android-lib") - id("flipper.anvil") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") + id("flipper.anvil-multiplatform") } android.namespace = "com.flipperdevices.bridge.connection.orchestrator.impl" -dependencies { +commonDependencies { implementation(projects.components.core.ktx) implementation(projects.components.core.log) implementation(projects.components.core.di) diff --git a/components/bridge/connection/orchestrator/impl/src/main/kotlin/com/flipperdevices/bridge/connection/ble/impl/FDeviceHolder.kt b/components/bridge/connection/orchestrator/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/ble/impl/FDeviceHolder.kt similarity index 100% rename from components/bridge/connection/orchestrator/impl/src/main/kotlin/com/flipperdevices/bridge/connection/ble/impl/FDeviceHolder.kt rename to components/bridge/connection/orchestrator/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/ble/impl/FDeviceHolder.kt diff --git a/components/bridge/connection/orchestrator/impl/src/main/kotlin/com/flipperdevices/bridge/connection/ble/impl/FDeviceOrchestratorImpl.kt b/components/bridge/connection/orchestrator/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/ble/impl/FDeviceOrchestratorImpl.kt similarity index 100% rename from components/bridge/connection/orchestrator/impl/src/main/kotlin/com/flipperdevices/bridge/connection/ble/impl/FDeviceOrchestratorImpl.kt rename to components/bridge/connection/orchestrator/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/ble/impl/FDeviceOrchestratorImpl.kt diff --git a/components/bridge/connection/orchestrator/impl/src/main/kotlin/com/flipperdevices/bridge/connection/ble/impl/FTransportListenerImpl.kt b/components/bridge/connection/orchestrator/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/ble/impl/FTransportListenerImpl.kt similarity index 100% rename from components/bridge/connection/orchestrator/impl/src/main/kotlin/com/flipperdevices/bridge/connection/ble/impl/FTransportListenerImpl.kt rename to components/bridge/connection/orchestrator/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/ble/impl/FTransportListenerImpl.kt diff --git a/components/bridge/connection/pbutils/.gitignore b/components/bridge/connection/pbutils/.gitignore new file mode 100644 index 0000000000..42afabfd2a --- /dev/null +++ b/components/bridge/connection/pbutils/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/components/bridge/connection/pbutils/build.gradle.kts b/components/bridge/connection/pbutils/build.gradle.kts new file mode 100644 index 0000000000..f4146edd10 --- /dev/null +++ b/components/bridge/connection/pbutils/build.gradle.kts @@ -0,0 +1,20 @@ +plugins { + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") + alias(libs.plugins.wire) +} + +android.namespace = "com.flipperdevices.bridge.connection.pbutils" + +wire { + sourcePath { + srcDir(file("$rootDir/components/bridge/pbutils/src/main/proto")) + } + kotlin { + enumMode = "sealed_class" + } +} + +commonDependencies { + implementation(libs.okio) +} diff --git a/components/bridge/connection/pbutils/src/commonMain/kotlin/com/flipperdevices/bridge/connection/pbutils/ProtobufConstants.kt b/components/bridge/connection/pbutils/src/commonMain/kotlin/com/flipperdevices/bridge/connection/pbutils/ProtobufConstants.kt new file mode 100644 index 0000000000..f96c233f2b --- /dev/null +++ b/components/bridge/connection/pbutils/src/commonMain/kotlin/com/flipperdevices/bridge/connection/pbutils/ProtobufConstants.kt @@ -0,0 +1,5 @@ +package com.flipperdevices.bridge.connection.pbutils + +object ProtobufConstants { + const val MAX_FILE_DATA = 512 +} diff --git a/components/bridge/connection/pbutils/src/commonMain/kotlin/com/flipperdevices/bridge/connection/pbutils/ProtobufKtx.kt b/components/bridge/connection/pbutils/src/commonMain/kotlin/com/flipperdevices/bridge/connection/pbutils/ProtobufKtx.kt new file mode 100644 index 0000000000..f9f65c9735 --- /dev/null +++ b/components/bridge/connection/pbutils/src/commonMain/kotlin/com/flipperdevices/bridge/connection/pbutils/ProtobufKtx.kt @@ -0,0 +1,59 @@ +package com.flipperdevices.bridge.connection.pbutils + +import com.flipperdevices.bridge.connection.pbutils.utils.FixedLengthSource +import com.flipperdevices.protobuf.Main +import com.squareup.wire.ProtoAdapter +import com.squareup.wire.ProtoReader +import com.squareup.wire.ProtoWriter +import okio.Buffer +import okio.EOFException +import okio.buffer +import okio.sink +import okio.source +import java.io.InputStream +import java.io.OutputStream + +fun Main.writeDelimitedTo(stream: OutputStream) { + val size = Main.ADAPTER.encodedSize(this) + + val bufferedSink = stream.sink().buffer() + val writer = ProtoWriter(bufferedSink) + writer.writeVarint32(size) + encode(bufferedSink) + bufferedSink.emit() +} + +fun Main.encodeWithDelimitedSize(): ByteArray { + val size = Main.ADAPTER.encodedSize(this) + val buffer = Buffer() + val writer = ProtoWriter(buffer) + writer.writeVarint32(size) + encode(buffer) + return buffer.readByteArray() +} + +fun ProtoAdapter.decodeDelimitedPackage(stream: InputStream): T { + val length = stream.readDelimitedLength() + val limitedSource = FixedLengthSource(stream.source(), length, truncate = true).buffer() + val limitedReader = ProtoReader(limitedSource) + return decode(limitedReader) +} + +private fun InputStream.readDelimitedLength(): Long { + val buffer = Buffer() + val readBytes = mutableListOf() + var size = -1 + while (size == -1) { + readBytes.add(read().toByte()) + buffer.clear() + buffer.write(readBytes.toByteArray()) + val reader = ProtoReader(buffer) + try { + size = reader.readVarint32() + } catch (eofException: EOFException) { + continue + } + } + + return size.toLong() +} diff --git a/components/bridge/connection/pbutils/src/commonMain/kotlin/com/flipperdevices/bridge/connection/pbutils/utils/FixedLengthSource.kt b/components/bridge/connection/pbutils/src/commonMain/kotlin/com/flipperdevices/bridge/connection/pbutils/utils/FixedLengthSource.kt new file mode 100644 index 0000000000..bafa7f36b6 --- /dev/null +++ b/components/bridge/connection/pbutils/src/commonMain/kotlin/com/flipperdevices/bridge/connection/pbutils/utils/FixedLengthSource.kt @@ -0,0 +1,55 @@ +package com.flipperdevices.bridge.connection.pbutils.utils + +import okio.Buffer +import okio.ForwardingSource +import okio.IOException +import okio.Source + +// Copy from okio.internal.FixedLenghtSource +internal class FixedLengthSource( + delegate: Source, + private val size: Long, + private val truncate: Boolean, +) : ForwardingSource(delegate) { + private var bytesReceived = 0L + + override fun read(sink: Buffer, byteCount: Long): Long { + // Figure out how many bytes to attempt to read. + // + // If we're truncating, we never attempt to read more than what's remaining. + // + // Otherwise we expect the underlying source to be exactly the promised size. Read as much as + // possible and throw an exception if too many bytes are returned. + val toRead = when { + bytesReceived > size -> 0L // Already read more than the promised size. + truncate -> { + val remaining = size - bytesReceived + if (remaining == 0L) return -1L // Already read exactly the promised size. + minOf(byteCount, remaining) + } + else -> byteCount + } + + val result = super.read(sink, toRead) + + if (result != -1L) bytesReceived += result + + // Throw an exception if we received too few bytes or too many. + if ((bytesReceived < size && result == -1L) || bytesReceived > size) { + if (result > 0L && bytesReceived > size) { + // If we received bytes beyond the limit, don't return them to the caller. + sink.truncateToSize(sink.size - (bytesReceived - size)) + } + throw IOException("expected $size bytes but got $bytesReceived") + } + + return result + } + + private fun Buffer.truncateToSize(newSize: Long) { + val scratch = Buffer() + scratch.writeAll(this) + write(scratch, newSize) + scratch.clear() + } +} diff --git a/components/bridge/connection/sample/build.gradle.kts b/components/bridge/connection/sample/build.gradle.kts index 891c441a2e..7a8cb080f5 100644 --- a/components/bridge/connection/sample/build.gradle.kts +++ b/components/bridge/connection/sample/build.gradle.kts @@ -71,7 +71,7 @@ dependencies { implementation(projects.components.analytics.metric.noop) implementation(projects.components.bridge.api) - implementation(projects.components.bridge.pbutils) + implementation(projects.components.bridge.connection.pbutils) implementation(libs.appcompat) diff --git a/components/bridge/connection/sample/src/main/kotlin/com/flipperdevices/bridge/connection/screens/device/viewmodel/PingViewModel.kt b/components/bridge/connection/sample/src/main/kotlin/com/flipperdevices/bridge/connection/screens/device/viewmodel/PingViewModel.kt index 40fee6bb91..62f503959a 100644 --- a/components/bridge/connection/sample/src/main/kotlin/com/flipperdevices/bridge/connection/screens/device/viewmodel/PingViewModel.kt +++ b/components/bridge/connection/sample/src/main/kotlin/com/flipperdevices/bridge/connection/screens/device/viewmodel/PingViewModel.kt @@ -14,8 +14,8 @@ import com.flipperdevices.bridge.connection.feature.storageinfo.model.dataOrNull import com.flipperdevices.bridge.connection.orchestrator.api.FDeviceOrchestrator import com.flipperdevices.core.log.info import com.flipperdevices.core.ui.lifecycle.DecomposeViewModel -import com.flipperdevices.protobuf.main -import com.flipperdevices.protobuf.system.pingRequest +import com.flipperdevices.protobuf.Main +import com.flipperdevices.protobuf.system.PingRequest import kotlinx.collections.immutable.persistentListOf import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.MutableStateFlow @@ -88,9 +88,9 @@ class PingViewModel @Inject constructor( val requestApi = featureProvider.getSync() info { "Receive requestApi: $requestApi" } requestApi?.requestWithoutAnswer( - main { - systemPingRequest = pingRequest { } - }.wrapToRequest() + Main( + system_ping_request = PingRequest() + ).wrapToRequest() ) info { "Send ping request successful" } } diff --git a/components/bridge/connection/transport/ble/api/build.gradle.kts b/components/bridge/connection/transport/ble/api/build.gradle.kts index 5a639836cd..64b40ac557 100644 --- a/components/bridge/connection/transport/ble/api/build.gradle.kts +++ b/components/bridge/connection/transport/ble/api/build.gradle.kts @@ -1,10 +1,11 @@ plugins { - id("flipper.android-lib") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") } android.namespace = "com.flipperdevices.bridge.connection.transport.ble.api" -dependencies { +commonDependencies { implementation(projects.components.bridge.connection.transport.common.api) implementation(libs.kotlin.coroutines) implementation(libs.kotlin.immutable.collections) diff --git a/components/bridge/connection/transport/ble/api/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/api/BleDeviceConnectionApi.kt b/components/bridge/connection/transport/ble/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/api/BleDeviceConnectionApi.kt similarity index 100% rename from components/bridge/connection/transport/ble/api/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/api/BleDeviceConnectionApi.kt rename to components/bridge/connection/transport/ble/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/api/BleDeviceConnectionApi.kt diff --git a/components/bridge/connection/transport/ble/api/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/api/FBleApi.kt b/components/bridge/connection/transport/ble/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/api/FBleApi.kt similarity index 100% rename from components/bridge/connection/transport/ble/api/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/api/FBleApi.kt rename to components/bridge/connection/transport/ble/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/api/FBleApi.kt diff --git a/components/bridge/connection/transport/ble/api/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/api/FBleDeviceConnectionConfig.kt b/components/bridge/connection/transport/ble/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/api/FBleDeviceConnectionConfig.kt similarity index 100% rename from components/bridge/connection/transport/ble/api/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/api/FBleDeviceConnectionConfig.kt rename to components/bridge/connection/transport/ble/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/api/FBleDeviceConnectionConfig.kt diff --git a/components/bridge/connection/transport/ble/api/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/api/GATTCharacteristicAddress.kt b/components/bridge/connection/transport/ble/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/api/GATTCharacteristicAddress.kt similarity index 100% rename from components/bridge/connection/transport/ble/api/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/api/GATTCharacteristicAddress.kt rename to components/bridge/connection/transport/ble/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/api/GATTCharacteristicAddress.kt diff --git a/components/bridge/connection/transport/ble/impl/build.gradle.kts b/components/bridge/connection/transport/ble/impl/build.gradle.kts index ace6ce0bae..6eded413cb 100644 --- a/components/bridge/connection/transport/ble/impl/build.gradle.kts +++ b/components/bridge/connection/transport/ble/impl/build.gradle.kts @@ -1,11 +1,12 @@ plugins { - id("flipper.android-lib") - id("flipper.anvil") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") + id("flipper.anvil-multiplatform") } android.namespace = "com.flipperdevices.bridge.connection.transport.ble.impl" -dependencies { +androidDependencies { implementation(projects.components.bridge.connection.transport.ble.api) implementation(projects.components.core.log) @@ -23,9 +24,11 @@ dependencies { implementation(libs.slf4j.timber) implementation(libs.kotlin.immutable.collections) +} - testImplementation(projects.components.core.test) - testImplementation(libs.kotlin.coroutines.test) - testImplementation(libs.junit) - testImplementation(libs.mockk) +androidUnitTestDependencies { + implementation(projects.components.core.test) + implementation(libs.kotlin.coroutines.test) + implementation(libs.junit) + implementation(libs.mockk) } diff --git a/components/bridge/connection/transport/ble/impl/src/main/AndroidManifest.xml b/components/bridge/connection/transport/ble/impl/src/androidMain/AndroidManifest.xml similarity index 100% rename from components/bridge/connection/transport/ble/impl/src/main/AndroidManifest.xml rename to components/bridge/connection/transport/ble/impl/src/androidMain/AndroidManifest.xml diff --git a/components/bridge/connection/transport/ble/impl/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/BleDeviceConnectionApiImpl.kt b/components/bridge/connection/transport/ble/impl/src/androidMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/BleDeviceConnectionApiImpl.kt similarity index 100% rename from components/bridge/connection/transport/ble/impl/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/BleDeviceConnectionApiImpl.kt rename to components/bridge/connection/transport/ble/impl/src/androidMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/BleDeviceConnectionApiImpl.kt diff --git a/components/bridge/connection/transport/ble/impl/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/api/FBleApiImpl.kt b/components/bridge/connection/transport/ble/impl/src/androidMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/api/FBleApiImpl.kt similarity index 100% rename from components/bridge/connection/transport/ble/impl/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/api/FBleApiImpl.kt rename to components/bridge/connection/transport/ble/impl/src/androidMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/api/FBleApiImpl.kt diff --git a/components/bridge/connection/transport/ble/impl/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/api/FBleApiWithSerial.kt b/components/bridge/connection/transport/ble/impl/src/androidMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/api/FBleApiWithSerial.kt similarity index 100% rename from components/bridge/connection/transport/ble/impl/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/api/FBleApiWithSerial.kt rename to components/bridge/connection/transport/ble/impl/src/androidMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/api/FBleApiWithSerial.kt diff --git a/components/bridge/connection/transport/ble/impl/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/api/FBleApiWithSerialFactory.kt b/components/bridge/connection/transport/ble/impl/src/androidMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/api/FBleApiWithSerialFactory.kt similarity index 100% rename from components/bridge/connection/transport/ble/impl/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/api/FBleApiWithSerialFactory.kt rename to components/bridge/connection/transport/ble/impl/src/androidMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/api/FBleApiWithSerialFactory.kt diff --git a/components/bridge/connection/transport/ble/impl/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/di/BleDeviceConnectionModule.kt b/components/bridge/connection/transport/ble/impl/src/androidMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/di/BleDeviceConnectionModule.kt similarity index 100% rename from components/bridge/connection/transport/ble/impl/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/di/BleDeviceConnectionModule.kt rename to components/bridge/connection/transport/ble/impl/src/androidMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/di/BleDeviceConnectionModule.kt diff --git a/components/bridge/connection/transport/ble/impl/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/meta/FTransportMetaInfoApiImpl.kt b/components/bridge/connection/transport/ble/impl/src/androidMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/meta/FTransportMetaInfoApiImpl.kt similarity index 100% rename from components/bridge/connection/transport/ble/impl/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/meta/FTransportMetaInfoApiImpl.kt rename to components/bridge/connection/transport/ble/impl/src/androidMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/meta/FTransportMetaInfoApiImpl.kt diff --git a/components/bridge/connection/transport/ble/impl/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/meta/FTransportMetaInfoMapper.kt b/components/bridge/connection/transport/ble/impl/src/androidMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/meta/FTransportMetaInfoMapper.kt similarity index 100% rename from components/bridge/connection/transport/ble/impl/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/meta/FTransportMetaInfoMapper.kt rename to components/bridge/connection/transport/ble/impl/src/androidMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/meta/FTransportMetaInfoMapper.kt diff --git a/components/bridge/connection/transport/ble/impl/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/model/BLEConnectionPermissionException.kt b/components/bridge/connection/transport/ble/impl/src/androidMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/model/BLEConnectionPermissionException.kt similarity index 100% rename from components/bridge/connection/transport/ble/impl/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/model/BLEConnectionPermissionException.kt rename to components/bridge/connection/transport/ble/impl/src/androidMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/model/BLEConnectionPermissionException.kt diff --git a/components/bridge/connection/transport/ble/impl/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/model/FailedConnectToDeviceException.kt b/components/bridge/connection/transport/ble/impl/src/androidMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/model/FailedConnectToDeviceException.kt similarity index 100% rename from components/bridge/connection/transport/ble/impl/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/model/FailedConnectToDeviceException.kt rename to components/bridge/connection/transport/ble/impl/src/androidMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/model/FailedConnectToDeviceException.kt diff --git a/components/bridge/connection/transport/ble/impl/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/serial/FSerialDeviceApiWrapper.kt b/components/bridge/connection/transport/ble/impl/src/androidMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/serial/FSerialDeviceApiWrapper.kt similarity index 100% rename from components/bridge/connection/transport/ble/impl/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/serial/FSerialDeviceApiWrapper.kt rename to components/bridge/connection/transport/ble/impl/src/androidMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/serial/FSerialDeviceApiWrapper.kt diff --git a/components/bridge/connection/transport/ble/impl/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/serial/FSerialOverflowThrottler.kt b/components/bridge/connection/transport/ble/impl/src/androidMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/serial/FSerialOverflowThrottler.kt similarity index 100% rename from components/bridge/connection/transport/ble/impl/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/serial/FSerialOverflowThrottler.kt rename to components/bridge/connection/transport/ble/impl/src/androidMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/serial/FSerialOverflowThrottler.kt diff --git a/components/bridge/connection/transport/ble/impl/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/serial/FSerialRestartApiImpl.kt b/components/bridge/connection/transport/ble/impl/src/androidMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/serial/FSerialRestartApiImpl.kt similarity index 100% rename from components/bridge/connection/transport/ble/impl/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/serial/FSerialRestartApiImpl.kt rename to components/bridge/connection/transport/ble/impl/src/androidMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/serial/FSerialRestartApiImpl.kt diff --git a/components/bridge/connection/transport/ble/impl/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/serial/FSerialUnsafeApiImpl.kt b/components/bridge/connection/transport/ble/impl/src/androidMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/serial/FSerialUnsafeApiImpl.kt similarity index 100% rename from components/bridge/connection/transport/ble/impl/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/serial/FSerialUnsafeApiImpl.kt rename to components/bridge/connection/transport/ble/impl/src/androidMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/serial/FSerialUnsafeApiImpl.kt diff --git a/components/bridge/connection/transport/ble/impl/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/serial/SerialApiFactory.kt b/components/bridge/connection/transport/ble/impl/src/androidMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/serial/SerialApiFactory.kt similarity index 100% rename from components/bridge/connection/transport/ble/impl/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/serial/SerialApiFactory.kt rename to components/bridge/connection/transport/ble/impl/src/androidMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/serial/SerialApiFactory.kt diff --git a/components/bridge/connection/transport/ble/impl/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/serial/SpeedMeter.kt b/components/bridge/connection/transport/ble/impl/src/androidMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/serial/SpeedMeter.kt similarity index 100% rename from components/bridge/connection/transport/ble/impl/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/serial/SpeedMeter.kt rename to components/bridge/connection/transport/ble/impl/src/androidMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/serial/SpeedMeter.kt diff --git a/components/bridge/connection/transport/ble/impl/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/utils/BleConstants.kt b/components/bridge/connection/transport/ble/impl/src/androidMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/utils/BleConstants.kt similarity index 100% rename from components/bridge/connection/transport/ble/impl/src/main/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/utils/BleConstants.kt rename to components/bridge/connection/transport/ble/impl/src/androidMain/kotlin/com/flipperdevices/bridge/connection/transport/ble/impl/utils/BleConstants.kt diff --git a/components/bridge/connection/transport/ble/impl/src/test/kotlin/com/flipperdevices/bridge/connection/ble/impl/serial/FSerialDeviceApiWrapperTest.kt b/components/bridge/connection/transport/ble/impl/src/androidUnitTest/kotlin/com/flipperdevices/bridge/connection/ble/impl/serial/FSerialDeviceApiWrapperTest.kt similarity index 100% rename from components/bridge/connection/transport/ble/impl/src/test/kotlin/com/flipperdevices/bridge/connection/ble/impl/serial/FSerialDeviceApiWrapperTest.kt rename to components/bridge/connection/transport/ble/impl/src/androidUnitTest/kotlin/com/flipperdevices/bridge/connection/ble/impl/serial/FSerialDeviceApiWrapperTest.kt diff --git a/components/bridge/connection/transport/ble/impl/src/test/kotlin/com/flipperdevices/bridge/connection/ble/impl/serial/FSerialOverflowThrottlerTest.kt b/components/bridge/connection/transport/ble/impl/src/androidUnitTest/kotlin/com/flipperdevices/bridge/connection/ble/impl/serial/FSerialOverflowThrottlerTest.kt similarity index 100% rename from components/bridge/connection/transport/ble/impl/src/test/kotlin/com/flipperdevices/bridge/connection/ble/impl/serial/FSerialOverflowThrottlerTest.kt rename to components/bridge/connection/transport/ble/impl/src/androidUnitTest/kotlin/com/flipperdevices/bridge/connection/ble/impl/serial/FSerialOverflowThrottlerTest.kt diff --git a/components/bridge/connection/transport/ble/impl/src/test/kotlin/com/flipperdevices/bridge/connection/ble/impl/serial/SerialApiFactoryTest.kt b/components/bridge/connection/transport/ble/impl/src/androidUnitTest/kotlin/com/flipperdevices/bridge/connection/ble/impl/serial/SerialApiFactoryTest.kt similarity index 100% rename from components/bridge/connection/transport/ble/impl/src/test/kotlin/com/flipperdevices/bridge/connection/ble/impl/serial/SerialApiFactoryTest.kt rename to components/bridge/connection/transport/ble/impl/src/androidUnitTest/kotlin/com/flipperdevices/bridge/connection/ble/impl/serial/SerialApiFactoryTest.kt diff --git a/components/bridge/connection/transport/common/api/build.gradle.kts b/components/bridge/connection/transport/common/api/build.gradle.kts index 3ef6a39456..17f228315d 100644 --- a/components/bridge/connection/transport/common/api/build.gradle.kts +++ b/components/bridge/connection/transport/common/api/build.gradle.kts @@ -1,9 +1,10 @@ plugins { - id("flipper.android-lib") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") } android.namespace = "com.flipperdevices.bridge.connection.transport.common.api" -dependencies { +commonDependencies { implementation(libs.kotlin.coroutines) } diff --git a/components/bridge/connection/transport/common/api/src/main/kotlin/com/flipperdevices/bridge/connection/transport/common/api/DeviceConnectionApi.kt b/components/bridge/connection/transport/common/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/transport/common/api/DeviceConnectionApi.kt similarity index 100% rename from components/bridge/connection/transport/common/api/src/main/kotlin/com/flipperdevices/bridge/connection/transport/common/api/DeviceConnectionApi.kt rename to components/bridge/connection/transport/common/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/transport/common/api/DeviceConnectionApi.kt diff --git a/components/bridge/connection/transport/common/api/src/main/kotlin/com/flipperdevices/bridge/connection/transport/common/api/FConnectedDeviceApi.kt b/components/bridge/connection/transport/common/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/transport/common/api/FConnectedDeviceApi.kt similarity index 100% rename from components/bridge/connection/transport/common/api/src/main/kotlin/com/flipperdevices/bridge/connection/transport/common/api/FConnectedDeviceApi.kt rename to components/bridge/connection/transport/common/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/transport/common/api/FConnectedDeviceApi.kt diff --git a/components/bridge/connection/transport/common/api/src/main/kotlin/com/flipperdevices/bridge/connection/transport/common/api/FDeviceConnectionConfig.kt b/components/bridge/connection/transport/common/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/transport/common/api/FDeviceConnectionConfig.kt similarity index 100% rename from components/bridge/connection/transport/common/api/src/main/kotlin/com/flipperdevices/bridge/connection/transport/common/api/FDeviceConnectionConfig.kt rename to components/bridge/connection/transport/common/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/transport/common/api/FDeviceConnectionConfig.kt diff --git a/components/bridge/connection/transport/common/api/src/main/kotlin/com/flipperdevices/bridge/connection/transport/common/api/FInternalTransportConnectionStatus.kt b/components/bridge/connection/transport/common/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/transport/common/api/FInternalTransportConnectionStatus.kt similarity index 100% rename from components/bridge/connection/transport/common/api/src/main/kotlin/com/flipperdevices/bridge/connection/transport/common/api/FInternalTransportConnectionStatus.kt rename to components/bridge/connection/transport/common/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/transport/common/api/FInternalTransportConnectionStatus.kt diff --git a/components/bridge/connection/transport/common/api/src/main/kotlin/com/flipperdevices/bridge/connection/transport/common/api/FTransportConnectionStatusListener.kt b/components/bridge/connection/transport/common/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/transport/common/api/FTransportConnectionStatusListener.kt similarity index 100% rename from components/bridge/connection/transport/common/api/src/main/kotlin/com/flipperdevices/bridge/connection/transport/common/api/FTransportConnectionStatusListener.kt rename to components/bridge/connection/transport/common/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/transport/common/api/FTransportConnectionStatusListener.kt diff --git a/components/bridge/connection/transport/common/api/src/main/kotlin/com/flipperdevices/bridge/connection/transport/common/api/di/DeviceConnectionApiHolder.kt b/components/bridge/connection/transport/common/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/transport/common/api/di/DeviceConnectionApiHolder.kt similarity index 100% rename from components/bridge/connection/transport/common/api/src/main/kotlin/com/flipperdevices/bridge/connection/transport/common/api/di/DeviceConnectionApiHolder.kt rename to components/bridge/connection/transport/common/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/transport/common/api/di/DeviceConnectionApiHolder.kt diff --git a/components/bridge/connection/transport/common/api/src/main/kotlin/com/flipperdevices/bridge/connection/transport/common/api/meta/FTransportMetaInfoApi.kt b/components/bridge/connection/transport/common/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/transport/common/api/meta/FTransportMetaInfoApi.kt similarity index 100% rename from components/bridge/connection/transport/common/api/src/main/kotlin/com/flipperdevices/bridge/connection/transport/common/api/meta/FTransportMetaInfoApi.kt rename to components/bridge/connection/transport/common/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/transport/common/api/meta/FTransportMetaInfoApi.kt diff --git a/components/bridge/connection/transport/common/api/src/main/kotlin/com/flipperdevices/bridge/connection/transport/common/api/meta/TransportMetaInfoKey.kt b/components/bridge/connection/transport/common/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/transport/common/api/meta/TransportMetaInfoKey.kt similarity index 100% rename from components/bridge/connection/transport/common/api/src/main/kotlin/com/flipperdevices/bridge/connection/transport/common/api/meta/TransportMetaInfoKey.kt rename to components/bridge/connection/transport/common/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/transport/common/api/meta/TransportMetaInfoKey.kt diff --git a/components/bridge/connection/transport/common/api/src/main/kotlin/com/flipperdevices/bridge/connection/transport/common/api/serial/FSerialDeviceApi.kt b/components/bridge/connection/transport/common/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/transport/common/api/serial/FSerialDeviceApi.kt similarity index 100% rename from components/bridge/connection/transport/common/api/src/main/kotlin/com/flipperdevices/bridge/connection/transport/common/api/serial/FSerialDeviceApi.kt rename to components/bridge/connection/transport/common/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/transport/common/api/serial/FSerialDeviceApi.kt diff --git a/components/bridge/connection/transport/common/api/src/main/kotlin/com/flipperdevices/bridge/connection/transport/common/api/serial/FSerialRestartApi.kt b/components/bridge/connection/transport/common/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/transport/common/api/serial/FSerialRestartApi.kt similarity index 100% rename from components/bridge/connection/transport/common/api/src/main/kotlin/com/flipperdevices/bridge/connection/transport/common/api/serial/FSerialRestartApi.kt rename to components/bridge/connection/transport/common/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/transport/common/api/serial/FSerialRestartApi.kt diff --git a/components/bridge/connection/transport/common/api/src/main/kotlin/com/flipperdevices/bridge/connection/transport/common/api/serial/FlipperSerialSpeed.kt b/components/bridge/connection/transport/common/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/transport/common/api/serial/FlipperSerialSpeed.kt similarity index 100% rename from components/bridge/connection/transport/common/api/src/main/kotlin/com/flipperdevices/bridge/connection/transport/common/api/serial/FlipperSerialSpeed.kt rename to components/bridge/connection/transport/common/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/transport/common/api/serial/FlipperSerialSpeed.kt diff --git a/components/bridge/connection/transport/common/impl/build.gradle.kts b/components/bridge/connection/transport/common/impl/build.gradle.kts index be37f32d80..3e107faff3 100644 --- a/components/bridge/connection/transport/common/impl/build.gradle.kts +++ b/components/bridge/connection/transport/common/impl/build.gradle.kts @@ -1,8 +1,9 @@ plugins { - id("flipper.android-lib") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") } android.namespace = "com.flipperdevices.bridge.connection.transport.common.impl" -dependencies { +commonDependencies { } diff --git a/components/bridge/connection/transportconfigbuilder/api/build.gradle.kts b/components/bridge/connection/transportconfigbuilder/api/build.gradle.kts index 56139a3a48..b6256dde7f 100644 --- a/components/bridge/connection/transportconfigbuilder/api/build.gradle.kts +++ b/components/bridge/connection/transportconfigbuilder/api/build.gradle.kts @@ -1,10 +1,11 @@ plugins { - id("flipper.android-lib") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") } android.namespace = "com.flipperdevices.bridge.connection.transportconfigbuilder.api" -dependencies { +commonDependencies { implementation(projects.components.bridge.connection.transport.common.api) implementation(projects.components.bridge.connection.config.api) } diff --git a/components/bridge/connection/transportconfigbuilder/api/src/main/kotlin/com/flipperdevices/bridge/connection/configbuilder/api/FDeviceConnectionConfigMapper.kt b/components/bridge/connection/transportconfigbuilder/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/configbuilder/api/FDeviceConnectionConfigMapper.kt similarity index 100% rename from components/bridge/connection/transportconfigbuilder/api/src/main/kotlin/com/flipperdevices/bridge/connection/configbuilder/api/FDeviceConnectionConfigMapper.kt rename to components/bridge/connection/transportconfigbuilder/api/src/commonMain/kotlin/com/flipperdevices/bridge/connection/configbuilder/api/FDeviceConnectionConfigMapper.kt diff --git a/components/bridge/connection/transportconfigbuilder/impl/build.gradle.kts b/components/bridge/connection/transportconfigbuilder/impl/build.gradle.kts index 4aec471584..823e58f2bf 100644 --- a/components/bridge/connection/transportconfigbuilder/impl/build.gradle.kts +++ b/components/bridge/connection/transportconfigbuilder/impl/build.gradle.kts @@ -1,11 +1,12 @@ plugins { - id("flipper.android-lib") - id("flipper.anvil") + id("flipper.multiplatform") + id("flipper.multiplatform-dependencies") + id("flipper.anvil-multiplatform") } android.namespace = "com.flipperdevices.bridge.connection.transportconfigbuilder.impl" -dependencies { +commonDependencies { implementation(projects.components.bridge.connection.transportconfigbuilder.api) implementation(projects.components.core.di) diff --git a/components/bridge/connection/transportconfigbuilder/impl/src/main/kotlin/com/flipperdevices/bridge/connection/configbuilder/impl/FDeviceConnectionConfigMapperImpl.kt b/components/bridge/connection/transportconfigbuilder/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/configbuilder/impl/FDeviceConnectionConfigMapperImpl.kt similarity index 100% rename from components/bridge/connection/transportconfigbuilder/impl/src/main/kotlin/com/flipperdevices/bridge/connection/configbuilder/impl/FDeviceConnectionConfigMapperImpl.kt rename to components/bridge/connection/transportconfigbuilder/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/configbuilder/impl/FDeviceConnectionConfigMapperImpl.kt diff --git a/components/bridge/connection/transportconfigbuilder/impl/src/main/kotlin/com/flipperdevices/bridge/connection/configbuilder/impl/builders/FlipperZeroBleBuilderConfig.kt b/components/bridge/connection/transportconfigbuilder/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/configbuilder/impl/builders/FlipperZeroBleBuilderConfig.kt similarity index 100% rename from components/bridge/connection/transportconfigbuilder/impl/src/main/kotlin/com/flipperdevices/bridge/connection/configbuilder/impl/builders/FlipperZeroBleBuilderConfig.kt rename to components/bridge/connection/transportconfigbuilder/impl/src/commonMain/kotlin/com/flipperdevices/bridge/connection/configbuilder/impl/builders/FlipperZeroBleBuilderConfig.kt diff --git a/components/bridge/impl/src/main/java/com/flipperdevices/bridge/impl/manager/service/FlipperInformationApiImpl.kt b/components/bridge/impl/src/main/java/com/flipperdevices/bridge/impl/manager/service/FlipperInformationApiImpl.kt index d1f87da195..40a4d04191 100644 --- a/components/bridge/impl/src/main/java/com/flipperdevices/bridge/impl/manager/service/FlipperInformationApiImpl.kt +++ b/components/bridge/impl/src/main/java/com/flipperdevices/bridge/impl/manager/service/FlipperInformationApiImpl.kt @@ -7,6 +7,7 @@ import com.flipperdevices.bridge.api.manager.service.FlipperInformationApi import com.flipperdevices.bridge.api.model.FlipperGATTInformation import com.flipperdevices.bridge.api.utils.Constants import com.flipperdevices.bridge.impl.manager.UnsafeBleManager +import com.flipperdevices.bridge.impl.utils.Shake2ReportHelper import com.flipperdevices.core.di.provideDelegate import com.flipperdevices.core.ktx.jre.FlipperDispatchers import com.flipperdevices.core.log.LogTagProvider @@ -48,7 +49,7 @@ class FlipperInformationApiImpl @Inject constructor( init { informationState.onEach { - shake2ReportApi.updateGattInformation(it) + Shake2ReportHelper.updateGattInformation(shake2ReportApi, it) }.launchIn(scope + FlipperDispatchers.workStealingDispatcher) } diff --git a/components/bridge/impl/src/main/java/com/flipperdevices/bridge/impl/utils/Shake2ReportHelper.kt b/components/bridge/impl/src/main/java/com/flipperdevices/bridge/impl/utils/Shake2ReportHelper.kt new file mode 100644 index 0000000000..8520160088 --- /dev/null +++ b/components/bridge/impl/src/main/java/com/flipperdevices/bridge/impl/utils/Shake2ReportHelper.kt @@ -0,0 +1,38 @@ +package com.flipperdevices.bridge.impl.utils + +import com.flipperdevices.bridge.api.model.FlipperGATTInformation +import com.flipperdevices.shake2report.api.Shake2ReportApi + +object Shake2ReportHelper { + fun updateGattInformation( + shake2ReportApi: Shake2ReportApi, + gattInformation: FlipperGATTInformation + ) { + shake2ReportApi.setExtra(convert(gattInformation)) + } + + private const val FLIPPER_DEVICE_NAME = "flipper_device_name" + private const val FLIPPER_MANUFACTURER_NAME = "flipper_manufacturer_name" + private const val FLIPPER_HARDWARE_REVISION = "flipper_hardware_revision" + private const val FLIPPER_SOFTWARE_REVISION = "flipper_software_revision" + private const val FLIPPER_BATTERY_LEVEL = "flipper_battery_level" + private fun convert(gattInformation: FlipperGATTInformation): List> { + val tagsList = mutableListOf>() + gattInformation.deviceName?.let { + tagsList.add(FLIPPER_DEVICE_NAME to it) + } + gattInformation.manufacturerName?.let { + tagsList.add(FLIPPER_MANUFACTURER_NAME to it) + } + gattInformation.hardwareRevision?.let { + tagsList.add(FLIPPER_HARDWARE_REVISION to it) + } + gattInformation.softwareVersion?.let { + tagsList.add(FLIPPER_SOFTWARE_REVISION to it) + } + gattInformation.batteryLevel?.let { + tagsList.add(FLIPPER_BATTERY_LEVEL to it.toString()) + } + return tagsList + } +} diff --git a/components/core/build-konfig/build.gradle.kts b/components/core/build-konfig/build.gradle.kts index fe0d7120e4..8d093fe04a 100644 --- a/components/core/build-konfig/build.gradle.kts +++ b/components/core/build-konfig/build.gradle.kts @@ -21,4 +21,9 @@ buildConfig { "CRASH_APP_ON_FAILED_CHECKS", CURRENT_FLAVOR_TYPE.crashAppOnFailedChecks ) + buildConfigField( + Boolean::class.java, + "LOGGING_PENDING_COMMANDS", + CURRENT_FLAVOR_TYPE.loggingPendingCommands + ) } diff --git a/components/singleactivity/impl/src/main/java/com/flipperdevices/singleactivity/impl/SingleActivity.kt b/components/singleactivity/impl/src/main/java/com/flipperdevices/singleactivity/impl/SingleActivity.kt index 5bfe087eb6..aba175c485 100644 --- a/components/singleactivity/impl/src/main/java/com/flipperdevices/singleactivity/impl/SingleActivity.kt +++ b/components/singleactivity/impl/src/main/java/com/flipperdevices/singleactivity/impl/SingleActivity.kt @@ -27,7 +27,7 @@ import com.flipperdevices.core.ui.theme.LocalPallet import com.flipperdevices.core.ui.theme.viewmodel.ThemeViewModel import com.flipperdevices.deeplink.api.DeepLinkParser import com.flipperdevices.deeplink.model.Deeplink -import com.flipperdevices.metric.api.MetricApi +import com.flipperdevices.metric.api.MetricAndroidApi import com.flipperdevices.metric.api.events.SessionState import com.flipperdevices.rootscreen.api.LocalDeeplinkHandler import com.flipperdevices.rootscreen.api.LocalRootNavigation @@ -47,7 +47,7 @@ class SingleActivity : AppCompatActivity(), LogTagProvider { lateinit var rootComponentFactory: RootDecomposeComponent.Factory @Inject - lateinit var metricApi: MetricApi + lateinit var metricApi: MetricAndroidApi @Inject lateinit var onCreateHandlerDispatcher: OnCreateHandlerDispatcher diff --git a/config/detekt/detekt.yml b/config/detekt/detekt.yml index 8529803679..478f9f64e4 100755 --- a/config/detekt/detekt.yml +++ b/config/detekt/detekt.yml @@ -66,7 +66,7 @@ comments: endOfSentenceFormat: '([.?!][ \t\n\r\f<])|([.?!:]$)' KDocReferencesNonPublicProperty: active: false - excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + excludes: [ '**/test/**','**/jvmSharedTest/**', '**/androidUnitTest/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] OutdatedDocumentation: active: false matchTypeParameters: true @@ -74,7 +74,7 @@ comments: allowParamOnConstructorProperties: false UndocumentedPublicClass: active: false - excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + excludes: [ '**/test/**','**/jvmSharedTest/**', '**/androidUnitTest/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] searchInNestedClass: true searchInInnerClass: true searchInInnerObject: true @@ -82,11 +82,11 @@ comments: searchInProtectedClass: false UndocumentedPublicFunction: active: false - excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + excludes: [ '**/test/**','**/jvmSharedTest/**', '**/androidUnitTest/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] searchProtectedFunction: false UndocumentedPublicProperty: active: false - excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + excludes: [ '**/test/**','**/jvmSharedTest/**', '**/androidUnitTest/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] searchProtectedProperty: false complexity: @@ -159,14 +159,14 @@ complexity: active: false StringLiteralDuplication: active: false - excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + excludes: [ '**/test/**','**/jvmSharedTest/**', '**/androidUnitTest/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] threshold: 3 ignoreAnnotation: true excludeStringsWithLessThan5Characters: true ignoreStringsRegex: '$^' TooManyFunctions: active: true - excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + excludes: [ '**/test/**','**/jvmSharedTest/**', '**/androidUnitTest/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] thresholdInFiles: 11 thresholdInClasses: 11 thresholdInInterfaces: 11 @@ -241,7 +241,7 @@ exceptions: - 'toString' InstanceOfCheckForException: active: true - excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + excludes: [ '**/test/**','**/jvmSharedTest/**', '**/androidUnitTest/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] NotImplementedDeclaration: active: false ObjectExtendsThrowable: @@ -267,7 +267,7 @@ exceptions: active: false ThrowingExceptionsWithoutMessageOrCause: active: true - excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + excludes: [ '**/test/**','**/jvmSharedTest/**', '**/androidUnitTest/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] exceptions: - 'ArrayIndexOutOfBoundsException' - 'Exception' @@ -282,7 +282,7 @@ exceptions: active: true TooGenericExceptionCaught: active: false - excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + excludes: [ '**/test/**','**/jvmSharedTest/**', '**/androidUnitTest/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] exceptionNames: - 'ArrayIndexOutOfBoundsException' - 'Error' @@ -328,7 +328,7 @@ naming: minimumFunctionNameLength: 3 FunctionNaming: active: true - excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + excludes: [ '**/test/**','**/jvmSharedTest/**', '**/androidUnitTest/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] functionPattern: '[a-z][a-zA-Z0-9]*' excludeClassPattern: '$^' ignoreAnnotated: [ 'Composable' ] @@ -387,10 +387,10 @@ performance: threshold: 3 ForEachOnRange: active: true - excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + excludes: [ '**/test/**','**/jvmSharedTest/**', '**/androidUnitTest/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] SpreadOperator: active: true - excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + excludes: [ '**/test/**','**/jvmSharedTest/**', '**/androidUnitTest/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] UnnecessaryPartOfBinaryExpression: active: false UnnecessaryTemporaryInstantiation: @@ -457,7 +457,7 @@ potential-bugs: active: true LateinitUsage: active: false - excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + excludes: [ '**/test/**','**/jvmSharedTest/**', '**/androidUnitTest/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] ignoreOnClassesPattern: '' MapGetWithNotNullAssertionOperator: active: true @@ -482,7 +482,7 @@ potential-bugs: active: true UnsafeCallOnNullableType: active: true - excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] + excludes: [ '**/test/**','**/jvmSharedTest/**', '**/androidUnitTest/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**' ] UnsafeCast: active: true UnusedUnaryOperator: @@ -571,7 +571,7 @@ style: maxJumpCount: 1 MagicNumber: active: true - excludes: [ '**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**', '**/*.kts' ] + excludes: [ '**/test/**', '**/jvmSharedTest/**', '**/androidUnitTest/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**', '**/*.kts' ] ignoreNumbers: - '-1' - '0' diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0d1ad5c8d6..ffcc4c57b0 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,10 +1,11 @@ [versions] -# You also need to bump the version of ksp, anvil, compose -kotlin-general = "2.0.20-Beta2" # https://kotlinlang.org/docs/releases.html#release-details +# You also need to bump the version of ksp, anvil +# Not bump to 2.0.20-Beta2+ until https://youtrack.jetbrains.com/issue/KT-70415/ fixed +kotlin-general = "2.0.0" # https://kotlinlang.org/docs/releases.html#release-details kotlin-immutable-collections = "0.3.7" # https://github.com/Kotlin/kotlinx.collections.immutable/releases kotlin-datetime = "0.6.0" # https://github.com/Kotlin/kotlinx-datetime/releases kotlinx = "1.8.1" # https://github.com/Kotlin/kotlinx.coroutines/releases -ksp = "2.0.20-Beta2-1.0.23" # https://github.com/google/ksp/releases +ksp = "2.0.0-1.0.23" # https://github.com/google/ksp/releases anvil = "2.5.0-beta09" # https://github.com/square/anvil/releases anvil-utils = "0.2.1-beta01" # https://github.com/IlyaGulya/anvil-utils/releases android-gradle = "8.5.1" # https://developer.android.com/studio/releases/gradle-plugin @@ -15,7 +16,6 @@ compose-foundation = "1.6.8" # https://developer.android.com/jetpack/androidx/re compose-ui = "1.6.8" # https://developer.android.com/jetpack/androidx/releases/compose#versions compose-wear = "1.3.1" # https://developer.android.com/jetpack/androidx/releases/wear-compose compose-wear-preview = "1.0.0" # https://mvnrepository.com/artifact/androidx.wear/wear-tooling-preview -compose-compiler = "1.5.14" # https://developer.android.com/jetpack/androidx/releases/compose#versions compose-accompanist = "0.34.0" # https://github.com/google/accompanist/releases compose-placeholder = "2.0.0" # https://github.com/fornewid/placeholder/releases compose-constraint = "1.0.1" # https://developer.android.com/jetpack/compose/layouts/constraintlayout @@ -94,6 +94,7 @@ google-gms-firebase = "24.0.0" # https://firebase.google.com/docs/android/setup# buildkonfig = "5.4.0" wire = "5.0.0" +okio = "3.9.0" [libraries] # Gradle - Core @@ -276,6 +277,7 @@ essenty-lifecycle-coroutines = { module = "com.arkivanov.essenty:lifecycle-corou zoomable = { module = "net.engawapg.lib:zoomable", version.ref = "zoomable" } +okio = { module = "com.squareup.okio:okio", version.ref = "okio" } [bundles] decompose = ["decompose", "decompose-jetpack"] diff --git a/settings.gradle.kts b/settings.gradle.kts index 8b3b1ee592..8dd1ae1fde 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -43,6 +43,7 @@ include( ":components:bridge:dao:api", ":components:bridge:dao:impl", + ":components:bridge:connection:pbutils", ":components:bridge:connection:transport:ble:api", ":components:bridge:connection:transport:ble:impl", ":components:bridge:connection:transport:common:api",