diff --git a/components/archive/impl/build.gradle.kts b/components/archive/impl/build.gradle.kts index 486214f875..c191367d79 100644 --- a/components/archive/impl/build.gradle.kts +++ b/components/archive/impl/build.gradle.kts @@ -31,8 +31,10 @@ dependencies { implementation(projects.components.bridge.dao.api) implementation(projects.components.bridge.synchronization.api) - implementation(projects.components.bridge.service.api) - implementation(projects.components.bridge.api) + implementation(projects.components.bridge.connection.feature.provider.api) + implementation(projects.components.bridge.connection.feature.common.api) + implementation(projects.components.bridge.connection.feature.serialspeed.api) + implementation(projects.components.bridge.connection.transport.common.api) implementation(libs.annotations) implementation(libs.appcompat) diff --git a/components/archive/impl/src/main/java/com/flipperdevices/archive/impl/composable/ComposableArchive.kt b/components/archive/impl/src/main/java/com/flipperdevices/archive/impl/composable/ComposableArchive.kt index b2ce69cbd7..81ae29afca 100644 --- a/components/archive/impl/src/main/java/com/flipperdevices/archive/impl/composable/ComposableArchive.kt +++ b/components/archive/impl/src/main/java/com/flipperdevices/archive/impl/composable/ComposableArchive.kt @@ -32,7 +32,7 @@ import com.flipperdevices.archive.impl.composable.page.ComposableFavoriteKeysTit import com.flipperdevices.archive.impl.composable.page.ComposableKeysGrid import com.flipperdevices.archive.impl.model.CategoryItem import com.flipperdevices.archive.model.CategoryType -import com.flipperdevices.bridge.api.model.FlipperSerialSpeed +import com.flipperdevices.bridge.connection.transport.common.api.serial.FlipperSerialSpeed import com.flipperdevices.bridge.dao.api.model.FlipperKey import com.flipperdevices.bridge.dao.api.model.FlipperKeyPath import com.flipperdevices.bridge.synchronization.api.SynchronizationState diff --git a/components/archive/impl/src/main/java/com/flipperdevices/archive/impl/composable/page/ArchiveProgressScreen.kt b/components/archive/impl/src/main/java/com/flipperdevices/archive/impl/composable/page/ArchiveProgressScreen.kt index 1694ae5cf8..fdec7475c9 100644 --- a/components/archive/impl/src/main/java/com/flipperdevices/archive/impl/composable/page/ArchiveProgressScreen.kt +++ b/components/archive/impl/src/main/java/com/flipperdevices/archive/impl/composable/page/ArchiveProgressScreen.kt @@ -27,7 +27,7 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.flipperdevices.archive.impl.R -import com.flipperdevices.bridge.api.model.FlipperSerialSpeed +import com.flipperdevices.bridge.connection.transport.common.api.serial.FlipperSerialSpeed import com.flipperdevices.bridge.synchronization.api.SynchronizationState import com.flipperdevices.core.ktx.jre.roundPercentToString import com.flipperdevices.core.ktx.jre.toFormattedSize diff --git a/components/archive/impl/src/main/java/com/flipperdevices/archive/impl/viewmodel/SpeedViewModel.kt b/components/archive/impl/src/main/java/com/flipperdevices/archive/impl/viewmodel/SpeedViewModel.kt index ad58bf3287..ca597cf88d 100644 --- a/components/archive/impl/src/main/java/com/flipperdevices/archive/impl/viewmodel/SpeedViewModel.kt +++ b/components/archive/impl/src/main/java/com/flipperdevices/archive/impl/viewmodel/SpeedViewModel.kt @@ -1,22 +1,23 @@ package com.flipperdevices.archive.impl.viewmodel -import com.flipperdevices.bridge.service.api.provider.FlipperServiceProvider +import com.flipperdevices.bridge.connection.feature.provider.api.FFeatureProvider +import com.flipperdevices.bridge.connection.feature.provider.api.FFeatureStatus +import com.flipperdevices.bridge.connection.feature.provider.api.get +import com.flipperdevices.bridge.connection.feature.serialspeed.api.FSpeedFeatureApi import com.flipperdevices.core.ui.lifecycle.DecomposeViewModel import kotlinx.coroutines.flow.SharingStarted -import kotlinx.coroutines.flow.collect -import kotlinx.coroutines.flow.flow -import kotlinx.coroutines.flow.onEach -import kotlinx.coroutines.flow.shareIn +import kotlinx.coroutines.flow.flatMapLatest +import kotlinx.coroutines.flow.flowOf +import kotlinx.coroutines.flow.map +import kotlinx.coroutines.flow.stateIn import javax.inject.Inject class SpeedViewModel @Inject constructor( - private val serviceProvider: FlipperServiceProvider, + fFeatureProvider: FFeatureProvider, ) : DecomposeViewModel() { - val speedFlow = flow { - serviceProvider.getServiceApi() - .requestApi - .getSpeed() - .onEach { emit(it) } - .collect() - }.shareIn(viewModelScope, SharingStarted.Eagerly, 1) + val speedFlow = fFeatureProvider + .get() + .map { status -> status as? FFeatureStatus.Supported } + .flatMapLatest { status -> status?.featureApi?.getSpeed() ?: flowOf(null) } + .stateIn(viewModelScope, SharingStarted.Eagerly, null) }