mirror of
https://github.com/openflocon/Flocon.git
synced 2026-05-19 10:35:37 +00:00
feature: Create domain (#84)
* feature: Create domain * feature: Move * feature: change package --------- Co-authored-by: TEYSSANDIER Raphael <rteyssandier@sephora.fr>
This commit is contained in:
parent
da55c9463d
commit
fff697c41a
196 changed files with 408 additions and 383 deletions
|
|
@ -24,6 +24,7 @@ kotlin {
|
|||
freeCompilerArgs.add("-opt-in=kotlin.time.ExperimentalTime")
|
||||
freeCompilerArgs.add("-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi")
|
||||
freeCompilerArgs.add("-Xcontext-parameters")
|
||||
freeCompilerArgs.add("-Xcontext-sensitive-resolution")
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalKotlinGradlePluginApi::class)
|
||||
|
|
@ -71,6 +72,8 @@ kotlin {
|
|||
// TODO Remove
|
||||
implementation(projects.data.remote)
|
||||
|
||||
implementation(projects.domain)
|
||||
|
||||
implementation(projects.library.designsystem)
|
||||
}
|
||||
commonTest.dependencies {
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@ package io.github.openflocon.flocondesktop.core.data.device
|
|||
import io.github.openflocon.flocondesktop.common.Fakes
|
||||
import io.github.openflocon.flocondesktop.common.coroutines.dispatcherprovider.DispatcherProvider
|
||||
import io.github.openflocon.flocondesktop.core.domain.device.repository.DevicesRepository
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceAppDomainModel
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceAppDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceDomainModel
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.asStateFlow
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package io.github.openflocon.flocondesktop.core.domain.device
|
||||
|
||||
import io.github.openflocon.flocondesktop.core.domain.device.repository.DevicesRepository
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceAppDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceAppDomainModel
|
||||
|
||||
class GetCurrentDeviceAppUseCase(
|
||||
private val devicesRepository: DevicesRepository,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
package io.github.openflocon.flocondesktop.core.domain.device
|
||||
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceIdAndPackageNameDomainModel
|
||||
|
||||
class GetCurrentDeviceIdAndPackageNameUseCase(
|
||||
private val getCurrentDeviceUseCase: GetCurrentDeviceUseCase,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
package io.github.openflocon.flocondesktop.core.domain.device
|
||||
|
||||
import com.flocon.data.remote.models.DeviceId
|
||||
import io.github.openflocon.domain.models.DeviceId
|
||||
|
||||
class GetCurrentDeviceIdUseCase(
|
||||
private val getCurrentDeviceUseCase: GetCurrentDeviceUseCase,
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package io.github.openflocon.flocondesktop.core.domain.device
|
||||
|
||||
import io.github.openflocon.flocondesktop.core.domain.device.repository.DevicesRepository
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceDomainModel
|
||||
|
||||
class GetCurrentDeviceUseCase(
|
||||
private val devicesRepository: DevicesRepository,
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package io.github.openflocon.flocondesktop.core.domain.device
|
||||
|
||||
import io.github.openflocon.flocondesktop.core.domain.device.repository.DevicesRepository
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceDomainModel
|
||||
|
||||
class HandleDeviceUseCase(
|
||||
private val devicesRepository: DevicesRepository,
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package io.github.openflocon.flocondesktop.core.domain.device
|
||||
|
||||
import io.github.openflocon.flocondesktop.core.domain.device.repository.DevicesRepository
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceAppDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceAppDomainModel
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
class ObserveCurrentDeviceAppUseCase(
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package io.github.openflocon.flocondesktop.core.domain.device
|
||||
|
||||
import io.github.openflocon.flocondesktop.core.domain.device.repository.DevicesRepository
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceIdAndPackageNameDomainModel
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.combine
|
||||
import kotlinx.coroutines.flow.distinctUntilChanged
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
package io.github.openflocon.flocondesktop.core.domain.device
|
||||
|
||||
import com.flocon.data.remote.models.DeviceId
|
||||
import io.github.openflocon.domain.models.DeviceId
|
||||
import io.github.openflocon.flocondesktop.core.domain.device.repository.DevicesRepository
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.distinctUntilChanged
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package io.github.openflocon.flocondesktop.core.domain.device
|
||||
|
||||
import io.github.openflocon.flocondesktop.core.domain.device.repository.DevicesRepository
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceDomainModel
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
class ObserveCurrentDeviceUseCase(
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package io.github.openflocon.flocondesktop.core.domain.device.repository
|
||||
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceAppDomainModel
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceAppDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceDomainModel
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
interface DevicesRepository {
|
||||
|
|
|
|||
|
|
@ -9,11 +9,11 @@ import io.github.openflocon.flocondesktop.features.analytics.data.datasource.dev
|
|||
import io.github.openflocon.flocondesktop.features.analytics.data.datasource.local.AnalyticsLocalDataSource
|
||||
import io.github.openflocon.flocondesktop.features.analytics.data.mapper.toDomain
|
||||
import io.github.openflocon.flocondesktop.features.analytics.data.model.AnalyticsItemDataModel
|
||||
import io.github.openflocon.flocondesktop.features.analytics.domain.model.AnalyticsIdentifierDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.analytics.domain.model.AnalyticsItemDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.analytics.domain.model.AnalyticsTableId
|
||||
import io.github.openflocon.domain.models.AnalyticsIdentifierDomainModel
|
||||
import io.github.openflocon.domain.models.AnalyticsItemDomainModel
|
||||
import io.github.openflocon.domain.models.AnalyticsTableId
|
||||
import io.github.openflocon.flocondesktop.features.analytics.domain.repository.AnalyticsRepository
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.flocondesktop.messages.domain.repository.sub.MessagesReceiverRepository
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.flowOn
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
package io.github.openflocon.flocondesktop.features.analytics.data.datasource.device
|
||||
|
||||
import io.github.openflocon.flocondesktop.features.analytics.domain.model.AnalyticsIdentifierDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.analytics.domain.model.AnalyticsTableId
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.domain.models.AnalyticsIdentifierDomainModel
|
||||
import io.github.openflocon.domain.models.AnalyticsTableId
|
||||
import io.github.openflocon.domain.models.DeviceIdAndPackageNameDomainModel
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
interface DeviceAnalyticsDataSource {
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
package io.github.openflocon.flocondesktop.features.analytics.data.datasource.device
|
||||
|
||||
import io.github.openflocon.flocondesktop.features.analytics.domain.model.AnalyticsIdentifierDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.analytics.domain.model.AnalyticsTableId
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.domain.models.AnalyticsIdentifierDomainModel
|
||||
import io.github.openflocon.domain.models.AnalyticsTableId
|
||||
import io.github.openflocon.domain.models.DeviceIdAndPackageNameDomainModel
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.distinctUntilChanged
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
package io.github.openflocon.flocondesktop.features.analytics.data.datasource.local
|
||||
|
||||
import io.github.openflocon.flocondesktop.features.analytics.domain.model.AnalyticsIdentifierDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.analytics.domain.model.AnalyticsItemDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.analytics.domain.model.AnalyticsTableId
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.domain.models.AnalyticsIdentifierDomainModel
|
||||
import io.github.openflocon.domain.models.AnalyticsItemDomainModel
|
||||
import io.github.openflocon.domain.models.AnalyticsTableId
|
||||
import io.github.openflocon.domain.models.DeviceIdAndPackageNameDomainModel
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
interface AnalyticsLocalDataSource {
|
||||
|
|
|
|||
|
|
@ -3,10 +3,10 @@ package io.github.openflocon.flocondesktop.features.analytics.data.datasource.lo
|
|||
import io.github.openflocon.flocondesktop.common.coroutines.dispatcherprovider.DispatcherProvider
|
||||
import io.github.openflocon.flocondesktop.features.analytics.data.datasource.local.mapper.toAnalyticsDomain
|
||||
import io.github.openflocon.flocondesktop.features.analytics.data.datasource.local.mapper.toEntity
|
||||
import io.github.openflocon.flocondesktop.features.analytics.domain.model.AnalyticsIdentifierDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.analytics.domain.model.AnalyticsItemDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.analytics.domain.model.AnalyticsTableId
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.domain.models.AnalyticsIdentifierDomainModel
|
||||
import io.github.openflocon.domain.models.AnalyticsItemDomainModel
|
||||
import io.github.openflocon.domain.models.AnalyticsTableId
|
||||
import io.github.openflocon.domain.models.DeviceIdAndPackageNameDomainModel
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.flowOn
|
||||
import kotlinx.coroutines.flow.map
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import androidx.room.Insert
|
|||
import androidx.room.OnConflictStrategy
|
||||
import androidx.room.Query
|
||||
import androidx.room.Transaction
|
||||
import com.flocon.data.remote.models.DeviceId
|
||||
import io.github.openflocon.domain.models.DeviceId
|
||||
import io.github.openflocon.flocondesktop.features.analytics.data.datasource.local.model.AnalyticsItemEntity
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
package io.github.openflocon.flocondesktop.features.analytics.data.datasource.local.mapper
|
||||
|
||||
import io.github.openflocon.flocondesktop.features.analytics.data.datasource.local.model.AnalyticsItemEntity
|
||||
import io.github.openflocon.flocondesktop.features.analytics.domain.model.AnalyticsItemDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.analytics.domain.model.AnalyticsPropertyDomainModel
|
||||
import io.github.openflocon.domain.models.AnalyticsItemDomainModel
|
||||
import io.github.openflocon.domain.models.AnalyticsPropertyDomainModel
|
||||
|
||||
fun toAnalyticsDomain(entity: AnalyticsItemEntity): AnalyticsItemDomainModel = AnalyticsItemDomainModel(
|
||||
analyticsTableId = entity.analyticsTableId,
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
package io.github.openflocon.flocondesktop.features.analytics.data.datasource.local.mapper
|
||||
|
||||
import io.github.openflocon.flocondesktop.features.analytics.data.datasource.local.model.AnalyticsItemEntity
|
||||
import io.github.openflocon.flocondesktop.features.analytics.domain.model.AnalyticsItemDomainModel
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.domain.models.AnalyticsItemDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceIdAndPackageNameDomainModel
|
||||
|
||||
internal fun AnalyticsItemDomainModel.toEntity(
|
||||
deviceIdAndPackageName: DeviceIdAndPackageNameDomainModel,
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
package io.github.openflocon.flocondesktop.features.analytics.data.mapper
|
||||
|
||||
import io.github.openflocon.flocondesktop.features.analytics.data.model.AnalyticsItemDataModel
|
||||
import io.github.openflocon.flocondesktop.features.analytics.domain.model.AnalyticsItemDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.analytics.domain.model.AnalyticsPropertyDomainModel
|
||||
import io.github.openflocon.domain.models.AnalyticsItemDomainModel
|
||||
import io.github.openflocon.domain.models.AnalyticsPropertyDomainModel
|
||||
|
||||
internal fun toDomain(dataModel: AnalyticsItemDataModel) = AnalyticsItemDomainModel(
|
||||
analyticsTableId = dataModel.analyticsTableId,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
package io.github.openflocon.flocondesktop.features.analytics.domain
|
||||
|
||||
import io.github.openflocon.flocondesktop.features.analytics.domain.model.AnalyticsIdentifierDomainModel
|
||||
import io.github.openflocon.domain.models.AnalyticsIdentifierDomainModel
|
||||
import kotlinx.coroutines.flow.firstOrNull
|
||||
|
||||
class GetCurrentDeviceSelectedAnalyticsUseCase(
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package io.github.openflocon.flocondesktop.features.analytics.domain
|
||||
|
||||
import io.github.openflocon.flocondesktop.core.domain.device.ObserveCurrentDeviceIdAndPackageNameUseCase
|
||||
import io.github.openflocon.flocondesktop.features.analytics.domain.model.AnalyticsItemDomainModel
|
||||
import io.github.openflocon.domain.models.AnalyticsItemDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.analytics.domain.repository.AnalyticsRepository
|
||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package io.github.openflocon.flocondesktop.features.analytics.domain
|
||||
|
||||
import io.github.openflocon.flocondesktop.core.domain.device.ObserveCurrentDeviceIdAndPackageNameUseCase
|
||||
import io.github.openflocon.flocondesktop.features.analytics.domain.model.AnalyticsIdentifierDomainModel
|
||||
import io.github.openflocon.domain.models.AnalyticsIdentifierDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.analytics.domain.repository.AnalyticsRepository
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.flatMapLatest
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package io.github.openflocon.flocondesktop.features.analytics.domain
|
||||
|
||||
import io.github.openflocon.flocondesktop.core.domain.device.ObserveCurrentDeviceIdAndPackageNameUseCase
|
||||
import io.github.openflocon.flocondesktop.features.analytics.domain.model.AnalyticsIdentifierDomainModel
|
||||
import io.github.openflocon.domain.models.AnalyticsIdentifierDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.analytics.domain.repository.AnalyticsRepository
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.flatMapLatest
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package io.github.openflocon.flocondesktop.features.analytics.domain
|
|||
import io.github.openflocon.flocondesktop.core.domain.device.GetCurrentDeviceAppUseCase
|
||||
import io.github.openflocon.flocondesktop.core.domain.device.GetCurrentDeviceIdUseCase
|
||||
import io.github.openflocon.flocondesktop.features.analytics.domain.repository.AnalyticsRepository
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceIdAndPackageNameDomainModel
|
||||
|
||||
class ResetCurrentDeviceSelectedAnalyticsUseCase(
|
||||
private val analyticsRepository: AnalyticsRepository,
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package io.github.openflocon.flocondesktop.features.analytics.domain
|
||||
|
||||
import io.github.openflocon.flocondesktop.core.domain.device.GetCurrentDeviceIdAndPackageNameUseCase
|
||||
import io.github.openflocon.flocondesktop.features.analytics.domain.model.AnalyticsTableId
|
||||
import io.github.openflocon.domain.models.AnalyticsTableId
|
||||
import io.github.openflocon.flocondesktop.features.analytics.domain.repository.AnalyticsRepository
|
||||
|
||||
class SelectCurrentDeviceAnalyticsUseCase(
|
||||
|
|
|
|||
|
|
@ -1,3 +0,0 @@
|
|||
package io.github.openflocon.flocondesktop.features.analytics.domain.model
|
||||
|
||||
typealias AnalyticsTableId = String
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
package io.github.openflocon.flocondesktop.features.analytics.domain.repository
|
||||
|
||||
import io.github.openflocon.flocondesktop.features.analytics.domain.model.AnalyticsIdentifierDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.analytics.domain.model.AnalyticsItemDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.analytics.domain.model.AnalyticsTableId
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.domain.models.AnalyticsIdentifierDomainModel
|
||||
import io.github.openflocon.domain.models.AnalyticsItemDomainModel
|
||||
import io.github.openflocon.domain.models.AnalyticsTableId
|
||||
import io.github.openflocon.domain.models.DeviceIdAndPackageNameDomainModel
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
interface AnalyticsRepository {
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import io.github.openflocon.flocondesktop.common.coroutines.dispatcherprovider.D
|
|||
import io.github.openflocon.flocondesktop.features.analytics.domain.ObserveCurrentDeviceSelectedAnalyticsUseCase
|
||||
import io.github.openflocon.flocondesktop.features.analytics.domain.ObserveDeviceAnalyticsUseCase
|
||||
import io.github.openflocon.flocondesktop.features.analytics.domain.SelectCurrentDeviceAnalyticsUseCase
|
||||
import io.github.openflocon.flocondesktop.features.analytics.domain.model.AnalyticsIdentifierDomainModel
|
||||
import io.github.openflocon.domain.models.AnalyticsIdentifierDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.analytics.ui.model.AnalyticsStateUiModel
|
||||
import io.github.openflocon.flocondesktop.features.analytics.ui.model.DeviceAnalyticsUiModel
|
||||
import kotlinx.coroutines.flow.SharingStarted
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package io.github.openflocon.flocondesktop.features.analytics.ui.model
|
||||
|
||||
import androidx.compose.runtime.Immutable
|
||||
import io.github.openflocon.flocondesktop.features.analytics.domain.model.AnalyticsTableId
|
||||
import io.github.openflocon.domain.models.AnalyticsTableId
|
||||
|
||||
@Immutable
|
||||
data class DeviceAnalyticsUiModel(
|
||||
|
|
|
|||
|
|
@ -8,10 +8,10 @@ import io.github.openflocon.flocondesktop.features.dashboard.data.datasources.To
|
|||
import io.github.openflocon.flocondesktop.features.dashboard.data.datasources.device.DeviceDashboardsDataSource
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.data.mapper.toDomain
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.data.model.DashboardConfigDataModel
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.domain.model.DashboardDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.domain.model.DashboardId
|
||||
import io.github.openflocon.domain.models.DashboardDomainModel
|
||||
import io.github.openflocon.domain.models.DashboardId
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.domain.repository.DashboardRepository
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.flocondesktop.messages.domain.repository.sub.MessagesReceiverRepository
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.flowOn
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
package io.github.openflocon.flocondesktop.features.dashboard.data.datasources
|
||||
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.domain.model.DashboardDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.domain.model.DashboardId
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.domain.models.DashboardDomainModel
|
||||
import io.github.openflocon.domain.models.DashboardId
|
||||
import io.github.openflocon.domain.models.DeviceIdAndPackageNameDomainModel
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
interface DashboardLocalDataSource {
|
||||
|
|
|
|||
|
|
@ -2,11 +2,11 @@ package io.github.openflocon.flocondesktop.features.dashboard.data.datasources
|
|||
|
||||
import com.flocon.data.remote.Protocol
|
||||
import com.flocon.data.remote.models.FloconOutgoingMessageDataModel
|
||||
import com.flocon.data.remote.models.toRemote
|
||||
import com.flocon.data.remote.server.Server
|
||||
import io.github.openflocon.domain.models.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.data.datasources.remote.model.ToDeviceCheckBoxValueChangedMessage
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.data.datasources.remote.model.ToDeviceSubmittedTextFieldMessage
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.toRemote
|
||||
import kotlinx.serialization.json.Json
|
||||
import kotlin.uuid.ExperimentalUuidApi
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package io.github.openflocon.flocondesktop.features.dashboard.data.datasources.device
|
||||
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.domain.model.DashboardId
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.domain.models.DashboardId
|
||||
import io.github.openflocon.domain.models.DeviceIdAndPackageNameDomainModel
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
interface DeviceDashboardsDataSource {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package io.github.openflocon.flocondesktop.features.dashboard.data.datasources.device
|
||||
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.domain.model.DashboardId
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.domain.models.DashboardId
|
||||
import io.github.openflocon.domain.models.DeviceIdAndPackageNameDomainModel
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.distinctUntilChanged
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@ package io.github.openflocon.flocondesktop.features.dashboard.data.datasources.r
|
|||
import io.github.openflocon.flocondesktop.common.coroutines.dispatcherprovider.DispatcherProvider
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.data.datasources.DashboardLocalDataSource
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.data.datasources.room.mapper.toDomain
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.domain.model.DashboardDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.domain.model.DashboardId
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.domain.models.DashboardDomainModel
|
||||
import io.github.openflocon.domain.models.DashboardId
|
||||
import io.github.openflocon.domain.models.DeviceIdAndPackageNameDomainModel
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.distinctUntilChanged
|
||||
import kotlinx.coroutines.flow.flowOn
|
||||
|
|
|
|||
|
|
@ -5,12 +5,12 @@ import androidx.room.Insert
|
|||
import androidx.room.OnConflictStrategy
|
||||
import androidx.room.Query
|
||||
import androidx.room.Transaction
|
||||
import com.flocon.data.remote.models.DeviceId
|
||||
import io.github.openflocon.domain.models.DashboardDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceId
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.data.datasources.room.mapper.toEntity
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.data.datasources.room.model.DashboardElementEntity
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.data.datasources.room.model.DashboardEntity
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.data.datasources.room.model.DashboardSectionEntity
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.domain.model.DashboardDomainModel
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
@Dao
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
package io.github.openflocon.flocondesktop.features.dashboard.data.datasources.room.mapper
|
||||
|
||||
import com.flocon.data.remote.models.DeviceId
|
||||
import io.github.openflocon.domain.models.DeviceId
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.data.datasources.room.model.DashboardElementButton
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.data.datasources.room.model.DashboardElementCheckBox
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.data.datasources.room.model.DashboardElementEntity
|
||||
|
|
@ -9,10 +9,10 @@ import io.github.openflocon.flocondesktop.features.dashboard.data.datasources.ro
|
|||
import io.github.openflocon.flocondesktop.features.dashboard.data.datasources.room.model.DashboardElementTextField
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.data.datasources.room.model.DashboardEntity
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.data.datasources.room.model.DashboardSectionEntity
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.domain.model.DashboardDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.domain.model.DashboardElementDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.domain.model.DashboardId
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.domain.model.DashboardSectionDomainModel
|
||||
import io.github.openflocon.domain.models.DashboardDomainModel
|
||||
import io.github.openflocon.domain.models.DashboardElementDomainModel
|
||||
import io.github.openflocon.domain.models.DashboardId
|
||||
import io.github.openflocon.domain.models.DashboardSectionDomainModel
|
||||
|
||||
internal fun DashboardDomainModel.toEntity(deviceId: DeviceId, packageName: String): DashboardEntity = DashboardEntity(
|
||||
deviceId = deviceId,
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@ package io.github.openflocon.flocondesktop.features.dashboard.data.datasources.r
|
|||
import io.github.openflocon.flocondesktop.features.dashboard.data.datasources.room.DashboardWithSectionsAndElements
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.data.datasources.room.SectionWithElements
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.data.datasources.room.model.DashboardElementEntity
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.domain.model.DashboardDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.domain.model.DashboardElementDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.domain.model.DashboardSectionDomainModel
|
||||
import io.github.openflocon.domain.models.DashboardDomainModel
|
||||
import io.github.openflocon.domain.models.DashboardElementDomainModel
|
||||
import io.github.openflocon.domain.models.DashboardSectionDomainModel
|
||||
|
||||
internal fun DashboardWithSectionsAndElements.toDomain(): DashboardDomainModel = DashboardDomainModel(
|
||||
dashboardId = dashboard.dashboardId,
|
||||
|
|
|
|||
|
|
@ -7,9 +7,9 @@ import io.github.openflocon.flocondesktop.features.dashboard.data.model.Dashboar
|
|||
import io.github.openflocon.flocondesktop.features.dashboard.data.model.SectionConfigDataModel
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.data.model.TextConfigDataModel
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.data.model.TextFieldConfigDataModel
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.domain.model.DashboardDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.domain.model.DashboardElementDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.domain.model.DashboardSectionDomainModel
|
||||
import io.github.openflocon.domain.models.DashboardDomainModel
|
||||
import io.github.openflocon.domain.models.DashboardElementDomainModel
|
||||
import io.github.openflocon.domain.models.DashboardSectionDomainModel
|
||||
|
||||
fun toDomain(model: DashboardConfigDataModel): DashboardDomainModel = DashboardDomainModel(
|
||||
dashboardId = model.dashboardId,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
package io.github.openflocon.flocondesktop.features.dashboard.domain
|
||||
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.domain.model.DashboardId
|
||||
import io.github.openflocon.domain.models.DashboardId
|
||||
import kotlinx.coroutines.flow.firstOrNull
|
||||
|
||||
class GetCurrentDeviceSelectedDashboardUseCase(
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package io.github.openflocon.flocondesktop.features.dashboard.domain
|
||||
|
||||
import io.github.openflocon.flocondesktop.core.domain.device.ObserveCurrentDeviceIdAndPackageNameUseCase
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.domain.model.DashboardDomainModel
|
||||
import io.github.openflocon.domain.models.DashboardDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.domain.repository.DashboardRepository
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.flatMapLatest
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package io.github.openflocon.flocondesktop.features.dashboard.domain
|
||||
|
||||
import io.github.openflocon.flocondesktop.core.domain.device.ObserveCurrentDeviceIdAndPackageNameUseCase
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.domain.model.DashboardId
|
||||
import io.github.openflocon.domain.models.DashboardId
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.domain.repository.DashboardRepository
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.flatMapLatest
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package io.github.openflocon.flocondesktop.features.dashboard.domain
|
||||
|
||||
import io.github.openflocon.flocondesktop.core.domain.device.ObserveCurrentDeviceIdAndPackageNameUseCase
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.domain.model.DashboardId
|
||||
import io.github.openflocon.domain.models.DashboardId
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.domain.repository.DashboardRepository
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.flatMapLatest
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package io.github.openflocon.flocondesktop.features.dashboard.domain
|
||||
|
||||
import io.github.openflocon.flocondesktop.core.domain.device.GetCurrentDeviceIdAndPackageNameUseCase
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.domain.model.DashboardId
|
||||
import io.github.openflocon.domain.models.DashboardId
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.domain.repository.DashboardRepository
|
||||
|
||||
class SelectCurrentDeviceDashboardUseCase(
|
||||
|
|
|
|||
|
|
@ -1,3 +0,0 @@
|
|||
package io.github.openflocon.flocondesktop.features.dashboard.domain.model
|
||||
|
||||
typealias DashboardId = String
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
package io.github.openflocon.flocondesktop.features.dashboard.domain.repository
|
||||
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.domain.model.DashboardDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.domain.model.DashboardId
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.domain.models.DashboardDomainModel
|
||||
import io.github.openflocon.domain.models.DashboardId
|
||||
import io.github.openflocon.domain.models.DeviceIdAndPackageNameDomainModel
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
interface DashboardRepository {
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import io.github.openflocon.flocondesktop.common.coroutines.dispatcherprovider.D
|
|||
import io.github.openflocon.flocondesktop.features.dashboard.domain.ObserveCurrentDeviceSelectedDashboardUseCase
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.domain.ObserveDeviceDashboardsUseCase
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.domain.SelectCurrentDeviceDashboardUseCase
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.domain.model.DashboardId
|
||||
import io.github.openflocon.domain.models.DashboardId
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.ui.model.DashboardsStateUiModel
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.ui.model.DeviceDashboardUiModel
|
||||
import kotlinx.coroutines.flow.SharingStarted
|
||||
|
|
|
|||
|
|
@ -2,11 +2,10 @@ package io.github.openflocon.flocondesktop.features.dashboard.ui.mapper
|
|||
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import io.github.openflocon.flocondesktop.common.ui.JsonPrettyPrinter
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.domain.model.DashboardDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.domain.model.DashboardElementDomainModel
|
||||
import io.github.openflocon.domain.models.DashboardDomainModel
|
||||
import io.github.openflocon.domain.models.DashboardElementDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.ui.model.DashboardItemViewState
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.ui.model.DashboardViewState
|
||||
import kotlinx.serialization.json.Json
|
||||
|
||||
internal fun DashboardDomainModel.toUi(): DashboardViewState = DashboardViewState(
|
||||
items = sections.map {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package io.github.openflocon.flocondesktop.features.dashboard.ui.model
|
||||
|
||||
import androidx.compose.runtime.Immutable
|
||||
import io.github.openflocon.flocondesktop.features.dashboard.domain.model.DashboardId
|
||||
import io.github.openflocon.domain.models.DashboardId
|
||||
|
||||
@Immutable
|
||||
data class DeviceDashboardUiModel(
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package io.github.openflocon.flocondesktop.features.database.data
|
||||
|
||||
import com.flocon.data.remote.Protocol
|
||||
import com.flocon.data.remote.models.DeviceId
|
||||
import io.github.openflocon.domain.models.DeviceId
|
||||
import com.flocon.data.remote.models.FloconIncomingMessageDataModel
|
||||
import io.github.openflocon.flocondesktop.common.Either
|
||||
import io.github.openflocon.flocondesktop.common.coroutines.dispatcherprovider.DispatcherProvider
|
||||
|
|
@ -9,11 +9,11 @@ import io.github.openflocon.flocondesktop.features.database.data.datasource.devi
|
|||
import io.github.openflocon.flocondesktop.features.database.data.datasource.devicedatabases.QueryDatabaseDataSource
|
||||
import io.github.openflocon.flocondesktop.features.database.data.datasource.local.LocalDatabaseDataSource
|
||||
import io.github.openflocon.flocondesktop.features.database.data.model.incoming.toDeviceDatabasesDomain
|
||||
import io.github.openflocon.flocondesktop.features.database.domain.model.DatabaseExecuteSqlResponseDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.database.domain.model.DeviceDataBaseDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.database.domain.model.DeviceDataBaseId
|
||||
import io.github.openflocon.domain.models.DatabaseExecuteSqlResponseDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceDataBaseDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceDataBaseId
|
||||
import io.github.openflocon.flocondesktop.features.database.domain.repository.DatabaseRepository
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.flocondesktop.messages.domain.repository.sub.MessagesReceiverRepository
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.flowOn
|
||||
|
|
|
|||
|
|
@ -2,11 +2,11 @@ package io.github.openflocon.flocondesktop.features.database.data.datasource.dev
|
|||
|
||||
import com.flocon.data.remote.Protocol
|
||||
import com.flocon.data.remote.models.FloconOutgoingMessageDataModel
|
||||
import com.flocon.data.remote.models.toRemote
|
||||
import com.flocon.data.remote.server.Server
|
||||
import io.github.openflocon.flocondesktop.features.database.domain.model.DeviceDataBaseDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.database.domain.model.DeviceDataBaseId
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.toRemote
|
||||
import io.github.openflocon.domain.models.DeviceDataBaseDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceDataBaseId
|
||||
import io.github.openflocon.domain.models.DeviceIdAndPackageNameDomainModel
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.distinctUntilChanged
|
||||
|
|
|
|||
|
|
@ -2,18 +2,18 @@ package io.github.openflocon.flocondesktop.features.database.data.datasource.dev
|
|||
|
||||
import com.flocon.data.remote.Protocol
|
||||
import com.flocon.data.remote.models.FloconOutgoingMessageDataModel
|
||||
import com.flocon.data.remote.models.toRemote
|
||||
import com.flocon.data.remote.server.Server
|
||||
import com.flocon.data.remote.server.newRequestId
|
||||
import io.github.openflocon.domain.models.DatabaseExecuteSqlResponseDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceDataBaseId
|
||||
import io.github.openflocon.domain.models.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.flocondesktop.common.Either
|
||||
import io.github.openflocon.flocondesktop.common.Failure
|
||||
import io.github.openflocon.flocondesktop.common.Success
|
||||
import io.github.openflocon.flocondesktop.features.database.data.model.incoming.DatabaseExecuteSqlResponse
|
||||
import io.github.openflocon.flocondesktop.features.database.data.model.incoming.ResponseAndRequestId
|
||||
import io.github.openflocon.flocondesktop.features.database.data.model.outgoing.DatabaseOutgoingQueryMessage
|
||||
import io.github.openflocon.flocondesktop.features.database.domain.model.DatabaseExecuteSqlResponseDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.database.domain.model.DeviceDataBaseId
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.toRemote
|
||||
import kotlinx.coroutines.TimeoutCancellationException
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.first
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package io.github.openflocon.flocondesktop.features.database.data.datasource.local
|
||||
|
||||
import io.github.openflocon.flocondesktop.features.database.domain.model.DeviceDataBaseId
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceDataBaseId
|
||||
import io.github.openflocon.domain.models.DeviceIdAndPackageNameDomainModel
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
interface LocalDatabaseDataSource {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package io.github.openflocon.flocondesktop.features.database.data.datasource.local
|
||||
|
||||
import io.github.openflocon.flocondesktop.features.database.domain.model.DeviceDataBaseId
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceDataBaseId
|
||||
import io.github.openflocon.domain.models.DeviceIdAndPackageNameDomainModel
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
class LocalDatabaseDataSourceRoom(private val successQueryDao: QueryDao) : LocalDatabaseDataSource {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
package io.github.openflocon.flocondesktop.features.database.data.model.incoming
|
||||
|
||||
import io.github.openflocon.flocondesktop.features.database.domain.model.DeviceDataBaseDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceDataBaseDomainModel
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package io.github.openflocon.flocondesktop.features.database.domain
|
|||
import io.github.openflocon.flocondesktop.common.Either
|
||||
import io.github.openflocon.flocondesktop.common.Failure
|
||||
import io.github.openflocon.flocondesktop.core.domain.device.GetCurrentDeviceIdAndPackageNameUseCase
|
||||
import io.github.openflocon.flocondesktop.features.database.domain.model.DatabaseExecuteSqlResponseDomainModel
|
||||
import io.github.openflocon.domain.models.DatabaseExecuteSqlResponseDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.database.domain.repository.DatabaseRepository
|
||||
|
||||
class ExecuteDatabaseQueryUseCase(
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
package io.github.openflocon.flocondesktop.features.database.domain
|
||||
|
||||
import io.github.openflocon.flocondesktop.features.database.domain.model.DeviceDataBaseDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceDataBaseDomainModel
|
||||
import kotlinx.coroutines.flow.firstOrNull
|
||||
|
||||
class GetCurrentDeviceSelectedDatabaseUseCase(
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package io.github.openflocon.flocondesktop.features.database.domain
|
||||
|
||||
import io.github.openflocon.flocondesktop.core.domain.device.ObserveCurrentDeviceIdAndPackageNameUseCase
|
||||
import io.github.openflocon.flocondesktop.features.database.domain.model.DeviceDataBaseDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceDataBaseDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.database.domain.repository.DatabaseRepository
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.flatMapLatest
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package io.github.openflocon.flocondesktop.features.database.domain
|
||||
|
||||
import io.github.openflocon.flocondesktop.core.domain.device.ObserveCurrentDeviceIdAndPackageNameUseCase
|
||||
import io.github.openflocon.flocondesktop.features.database.domain.model.DeviceDataBaseDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceDataBaseDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.database.domain.repository.DatabaseRepository
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.flatMapLatest
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package io.github.openflocon.flocondesktop.features.database.domain
|
||||
|
||||
import io.github.openflocon.flocondesktop.core.domain.device.GetCurrentDeviceIdAndPackageNameUseCase
|
||||
import io.github.openflocon.flocondesktop.features.database.domain.model.DeviceDataBaseId
|
||||
import io.github.openflocon.domain.models.DeviceDataBaseId
|
||||
import io.github.openflocon.flocondesktop.features.database.domain.repository.DatabaseRepository
|
||||
|
||||
class SelectCurrentDeviceDatabaseUseCase(
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
package io.github.openflocon.flocondesktop.features.database.domain.repository
|
||||
|
||||
import io.github.openflocon.flocondesktop.common.Either
|
||||
import io.github.openflocon.flocondesktop.features.database.domain.model.DatabaseExecuteSqlResponseDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.database.domain.model.DeviceDataBaseDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.database.domain.model.DeviceDataBaseId
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.domain.models.DatabaseExecuteSqlResponseDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceDataBaseDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceDataBaseId
|
||||
import io.github.openflocon.domain.models.DeviceIdAndPackageNameDomainModel
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
interface DatabaseRepository {
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import io.github.openflocon.flocondesktop.common.coroutines.dispatcherprovider.D
|
|||
import io.github.openflocon.flocondesktop.common.ui.feedback.FeedbackDisplayer
|
||||
import io.github.openflocon.flocondesktop.features.database.domain.ExecuteDatabaseQueryUseCase
|
||||
import io.github.openflocon.flocondesktop.features.database.domain.ObserveLastSuccessQueriesUseCase
|
||||
import io.github.openflocon.flocondesktop.features.database.domain.model.DatabaseExecuteSqlResponseDomainModel
|
||||
import io.github.openflocon.domain.models.DatabaseExecuteSqlResponseDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.database.ui.delegate.DatabaseSelectorDelegate
|
||||
import io.github.openflocon.flocondesktop.features.database.ui.model.DatabaseRowUiModel
|
||||
import io.github.openflocon.flocondesktop.features.database.ui.model.DatabaseScreenState
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import io.github.openflocon.flocondesktop.features.database.domain.AskForDeviceD
|
|||
import io.github.openflocon.flocondesktop.features.database.domain.ObserveCurrentDeviceSelectedDatabaseUseCase
|
||||
import io.github.openflocon.flocondesktop.features.database.domain.ObserveDeviceDatabaseUseCase
|
||||
import io.github.openflocon.flocondesktop.features.database.domain.SelectCurrentDeviceDatabaseUseCase
|
||||
import io.github.openflocon.flocondesktop.features.database.domain.model.DeviceDataBaseDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceDataBaseDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.database.ui.model.DatabasesStateUiModel
|
||||
import io.github.openflocon.flocondesktop.features.database.ui.model.DeviceDataBaseUiModel
|
||||
import kotlinx.coroutines.Job
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
package io.github.openflocon.flocondesktop.features.database.ui.model
|
||||
|
||||
import io.github.openflocon.flocondesktop.features.database.domain.model.DeviceDataBaseId
|
||||
import io.github.openflocon.domain.models.DeviceDataBaseId
|
||||
|
||||
data class DeviceDataBaseUiModel(
|
||||
val id: DeviceDataBaseId,
|
||||
|
|
|
|||
|
|
@ -5,9 +5,9 @@ import com.flocon.data.remote.models.FloconIncomingMessageDataModel
|
|||
import io.github.openflocon.flocondesktop.common.coroutines.dispatcherprovider.DispatcherProvider
|
||||
import io.github.openflocon.flocondesktop.common.executeAdbCommand
|
||||
import io.github.openflocon.flocondesktop.features.deeplinks.data.datasource.LocalDeeplinkDataSource
|
||||
import io.github.openflocon.flocondesktop.features.deeplinks.domain.model.DeeplinkDomainModel
|
||||
import io.github.openflocon.domain.models.DeeplinkDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.deeplinks.domain.repository.DeeplinkRepository
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.flocondesktop.messages.domain.repository.sub.MessagesReceiverRepository
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.flowOn
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package io.github.openflocon.flocondesktop.features.deeplinks.data
|
||||
|
||||
import io.github.openflocon.flocondesktop.features.deeplinks.data.model.incoming.DeeplinksReceivedDataModel
|
||||
import io.github.openflocon.flocondesktop.features.deeplinks.domain.model.DeeplinkDomainModel
|
||||
import io.github.openflocon.domain.models.DeeplinkDomainModel
|
||||
import kotlinx.serialization.json.Json
|
||||
|
||||
// maybe inject
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package io.github.openflocon.flocondesktop.features.deeplinks.data.datasource
|
||||
|
||||
import io.github.openflocon.flocondesktop.features.deeplinks.domain.model.DeeplinkDomainModel
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.domain.models.DeeplinkDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceIdAndPackageNameDomainModel
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
interface LocalDeeplinkDataSource {
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import androidx.room.Insert
|
|||
import androidx.room.OnConflictStrategy
|
||||
import androidx.room.Query
|
||||
import androidx.room.Transaction
|
||||
import com.flocon.data.remote.models.DeviceId
|
||||
import io.github.openflocon.domain.models.DeviceId
|
||||
import io.github.openflocon.flocondesktop.features.deeplinks.data.datasource.room.model.DeeplinkEntity
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@ package io.github.openflocon.flocondesktop.features.deeplinks.data.datasource.ro
|
|||
import io.github.openflocon.flocondesktop.features.deeplinks.data.datasource.LocalDeeplinkDataSource
|
||||
import io.github.openflocon.flocondesktop.features.deeplinks.data.datasource.room.mapper.toDomainModels
|
||||
import io.github.openflocon.flocondesktop.features.deeplinks.data.datasource.room.mapper.toEntities
|
||||
import io.github.openflocon.flocondesktop.features.deeplinks.domain.model.DeeplinkDomainModel
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.domain.models.DeeplinkDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceIdAndPackageNameDomainModel
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.distinctUntilChanged
|
||||
import kotlinx.coroutines.flow.map
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
package io.github.openflocon.flocondesktop.features.deeplinks.data.datasource.room.mapper
|
||||
|
||||
import io.github.openflocon.flocondesktop.features.deeplinks.data.datasource.room.model.DeeplinkEntity
|
||||
import io.github.openflocon.flocondesktop.features.deeplinks.domain.model.DeeplinkDomainModel
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.domain.models.DeeplinkDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceIdAndPackageNameDomainModel
|
||||
|
||||
fun DeeplinkEntity.toDomainModel(): DeeplinkDomainModel = DeeplinkDomainModel(
|
||||
label = this.label,
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package io.github.openflocon.flocondesktop.features.deeplinks.domain
|
||||
|
||||
import io.github.openflocon.flocondesktop.core.domain.device.ObserveCurrentDeviceIdAndPackageNameUseCase
|
||||
import io.github.openflocon.flocondesktop.features.deeplinks.domain.model.DeeplinkDomainModel
|
||||
import io.github.openflocon.domain.models.DeeplinkDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.deeplinks.domain.repository.DeeplinkRepository
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.flatMapLatest
|
||||
|
|
|
|||
|
|
@ -1,11 +0,0 @@
|
|||
package io.github.openflocon.flocondesktop.features.deeplinks.domain.model
|
||||
|
||||
class DeeplinkDomainModel(
|
||||
val label: String?,
|
||||
val link: String,
|
||||
val description: String?,
|
||||
)
|
||||
|
||||
// can be : protocol://link/sublink?toto=tata
|
||||
// or can have fields
|
||||
// can be : protocol://link/[sublink]?toto=[tata]
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
package io.github.openflocon.flocondesktop.features.deeplinks.domain.repository
|
||||
|
||||
import io.github.openflocon.flocondesktop.features.deeplinks.domain.model.DeeplinkDomainModel
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.domain.models.DeeplinkDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceIdAndPackageNameDomainModel
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
interface DeeplinkRepository {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
package io.github.openflocon.flocondesktop.features.deeplinks.ui.mapper
|
||||
|
||||
import io.github.openflocon.flocondesktop.features.deeplinks.domain.model.DeeplinkDomainModel
|
||||
import io.github.openflocon.domain.models.DeeplinkDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.deeplinks.ui.model.DeeplinkPart
|
||||
import io.github.openflocon.flocondesktop.features.deeplinks.ui.model.DeeplinkViewState
|
||||
|
||||
|
|
|
|||
|
|
@ -7,10 +7,10 @@ import io.github.openflocon.flocondesktop.common.coroutines.dispatcherprovider.D
|
|||
import io.github.openflocon.flocondesktop.features.files.data.datasources.LocalFilesDataSource
|
||||
import io.github.openflocon.flocondesktop.features.files.data.datasources.RemoteFilesDataSource
|
||||
import io.github.openflocon.flocondesktop.features.files.data.mapper.decodeListFilesResult
|
||||
import io.github.openflocon.flocondesktop.features.files.domain.model.FileDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.files.domain.model.FilePathDomainModel
|
||||
import io.github.openflocon.domain.models.FileDomainModel
|
||||
import io.github.openflocon.domain.models.FilePathDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.files.domain.repository.FilesRepository
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.flocondesktop.messages.domain.repository.sub.MessagesReceiverRepository
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.flowOn
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
package io.github.openflocon.flocondesktop.features.files.data.datasources
|
||||
|
||||
import io.github.openflocon.flocondesktop.features.files.domain.model.FileDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.files.domain.model.FilePathDomainModel
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.domain.models.FileDomainModel
|
||||
import io.github.openflocon.domain.models.FilePathDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceIdAndPackageNameDomainModel
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
interface LocalFilesDataSource {
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
package io.github.openflocon.flocondesktop.features.files.data.datasources
|
||||
|
||||
import io.github.openflocon.flocondesktop.common.coroutines.dispatcherprovider.DispatcherProvider
|
||||
import io.github.openflocon.flocondesktop.features.files.domain.model.FileDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.files.domain.model.FilePathDomainModel
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.domain.models.FileDomainModel
|
||||
import io.github.openflocon.domain.models.FilePathDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceIdAndPackageNameDomainModel
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.distinctUntilChanged
|
||||
import kotlinx.coroutines.flow.flowOn
|
||||
|
|
|
|||
|
|
@ -2,8 +2,12 @@ package io.github.openflocon.flocondesktop.features.files.data.datasources
|
|||
|
||||
import com.flocon.data.remote.Protocol
|
||||
import com.flocon.data.remote.models.FloconOutgoingMessageDataModel
|
||||
import com.flocon.data.remote.models.toRemote
|
||||
import com.flocon.data.remote.server.Server
|
||||
import com.flocon.data.remote.server.newRequestId
|
||||
import io.github.openflocon.domain.models.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.domain.models.FileDomainModel
|
||||
import io.github.openflocon.domain.models.FilePathDomainModel
|
||||
import io.github.openflocon.flocondesktop.common.Either
|
||||
import io.github.openflocon.flocondesktop.common.Failure
|
||||
import io.github.openflocon.flocondesktop.common.Success
|
||||
|
|
@ -11,10 +15,6 @@ import io.github.openflocon.flocondesktop.features.files.data.model.incoming.Fro
|
|||
import io.github.openflocon.flocondesktop.features.files.data.model.todevice.ToDeviceDeleteFileMessage
|
||||
import io.github.openflocon.flocondesktop.features.files.data.model.todevice.ToDeviceDeleteFolderContentMessage
|
||||
import io.github.openflocon.flocondesktop.features.files.data.model.todevice.ToDeviceGetFilesMessage
|
||||
import io.github.openflocon.flocondesktop.features.files.domain.model.FileDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.files.domain.model.FilePathDomainModel
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.toRemote
|
||||
import kotlinx.coroutines.TimeoutCancellationException
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.first
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
package io.github.openflocon.flocondesktop.features.files.data.datasources
|
||||
|
||||
import io.github.openflocon.flocondesktop.features.files.data.datasources.model.FileEntity
|
||||
import io.github.openflocon.flocondesktop.features.files.domain.model.FileDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.files.domain.model.FilePathDomainModel
|
||||
import io.github.openflocon.domain.models.FileDomainModel
|
||||
import io.github.openflocon.domain.models.FilePathDomainModel
|
||||
import kotlin.time.Instant
|
||||
|
||||
internal fun FilePathDomainModel.mapToLocal(): String = when (this) {
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import io.github.openflocon.flocondesktop.common.Either
|
|||
import io.github.openflocon.flocondesktop.common.coroutines.dispatcherprovider.DispatcherProvider
|
||||
import io.github.openflocon.flocondesktop.common.failure
|
||||
import io.github.openflocon.flocondesktop.core.domain.device.GetCurrentDeviceIdAndPackageNameUseCase
|
||||
import io.github.openflocon.flocondesktop.features.files.domain.model.FilePathDomainModel
|
||||
import io.github.openflocon.domain.models.FilePathDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.files.domain.repository.FilesRepository
|
||||
|
||||
class DeleteFileUseCase(
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import io.github.openflocon.flocondesktop.common.Either
|
|||
import io.github.openflocon.flocondesktop.common.coroutines.dispatcherprovider.DispatcherProvider
|
||||
import io.github.openflocon.flocondesktop.common.failure
|
||||
import io.github.openflocon.flocondesktop.core.domain.device.GetCurrentDeviceIdAndPackageNameUseCase
|
||||
import io.github.openflocon.flocondesktop.features.files.domain.model.FilePathDomainModel
|
||||
import io.github.openflocon.domain.models.FilePathDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.files.domain.repository.FilesRepository
|
||||
|
||||
class DeleteFolderContentUseCase(
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@ package io.github.openflocon.flocondesktop.features.files.domain
|
|||
|
||||
import io.github.openflocon.flocondesktop.common.coroutines.dispatcherprovider.DispatcherProvider
|
||||
import io.github.openflocon.flocondesktop.core.domain.device.ObserveCurrentDeviceIdAndPackageNameUseCase
|
||||
import io.github.openflocon.flocondesktop.features.files.domain.model.FileDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.files.domain.model.FilePathDomainModel
|
||||
import io.github.openflocon.domain.models.FileDomainModel
|
||||
import io.github.openflocon.domain.models.FilePathDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.files.domain.repository.FilesRepository
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package io.github.openflocon.flocondesktop.features.files.domain
|
|||
|
||||
import io.github.openflocon.flocondesktop.common.coroutines.dispatcherprovider.DispatcherProvider
|
||||
import io.github.openflocon.flocondesktop.core.domain.device.GetCurrentDeviceIdAndPackageNameUseCase
|
||||
import io.github.openflocon.flocondesktop.features.files.domain.model.FilePathDomainModel
|
||||
import io.github.openflocon.domain.models.FilePathDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.files.domain.repository.FilesRepository
|
||||
|
||||
class RefreshFolderContentUseCase(
|
||||
|
|
|
|||
|
|
@ -1,13 +0,0 @@
|
|||
package io.github.openflocon.flocondesktop.features.files.domain.model
|
||||
|
||||
sealed interface FilePathDomainModel {
|
||||
sealed interface Constants : FilePathDomainModel {
|
||||
data object CachesDir : FilePathDomainModel.Constants
|
||||
|
||||
data object FilesDir : FilePathDomainModel.Constants
|
||||
}
|
||||
|
||||
data class Real(
|
||||
val absolutePath: String,
|
||||
) : FilePathDomainModel
|
||||
}
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
package io.github.openflocon.flocondesktop.features.files.domain.repository
|
||||
|
||||
import io.github.openflocon.flocondesktop.common.Either
|
||||
import io.github.openflocon.flocondesktop.features.files.domain.model.FileDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.files.domain.model.FilePathDomainModel
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.domain.models.FileDomainModel
|
||||
import io.github.openflocon.domain.models.FilePathDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceIdAndPackageNameDomainModel
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
interface FilesRepository {
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import io.github.openflocon.flocondesktop.features.files.domain.DeleteFileUseCas
|
|||
import io.github.openflocon.flocondesktop.features.files.domain.DeleteFolderContentUseCase
|
||||
import io.github.openflocon.flocondesktop.features.files.domain.ObserveFolderContentUseCase
|
||||
import io.github.openflocon.flocondesktop.features.files.domain.RefreshFolderContentUseCase
|
||||
import io.github.openflocon.flocondesktop.features.files.domain.model.FileDomainModel
|
||||
import io.github.openflocon.domain.models.FileDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.files.ui.mapper.buildContextualActions
|
||||
import io.github.openflocon.flocondesktop.features.files.ui.mapper.toDomain
|
||||
import io.github.openflocon.flocondesktop.features.files.ui.mapper.toUi
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@ import androidx.compose.material.icons.Icons
|
|||
import androidx.compose.material.icons.outlined.Drafts
|
||||
import androidx.compose.material.icons.outlined.Folder
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import io.github.openflocon.flocondesktop.features.files.domain.model.FileDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.files.domain.model.FilePathDomainModel
|
||||
import io.github.openflocon.domain.models.FileDomainModel
|
||||
import io.github.openflocon.domain.models.FilePathDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.files.ui.model.FilePathUiModel
|
||||
import io.github.openflocon.flocondesktop.features.files.ui.model.FileTypeUiModel
|
||||
import io.github.openflocon.flocondesktop.features.files.ui.model.FileUiModel
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
package io.github.openflocon.flocondesktop.features.images.data
|
||||
|
||||
import com.flocon.data.remote.Protocol
|
||||
import com.flocon.data.remote.models.DeviceId
|
||||
import io.github.openflocon.domain.models.DeviceId
|
||||
import com.flocon.data.remote.models.FloconIncomingMessageDataModel
|
||||
import io.github.openflocon.flocondesktop.common.coroutines.dispatcherprovider.DispatcherProvider
|
||||
import io.github.openflocon.flocondesktop.features.images.data.datasources.ImagesLocalDataSource
|
||||
import io.github.openflocon.flocondesktop.features.images.domain.model.DeviceImageDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceImageDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.images.domain.repository.ImagesRepository
|
||||
import io.github.openflocon.flocondesktop.features.network.domain.model.FloconHttpRequestDomainModel
|
||||
import io.github.openflocon.domain.models.FloconHttpRequestDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.network.domain.repository.NetworkImageRepository
|
||||
import io.github.openflocon.flocondesktop.messages.domain.repository.sub.MessagesReceiverRepository
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package io.github.openflocon.flocondesktop.features.images.data.datasources
|
||||
|
||||
import com.flocon.data.remote.models.DeviceId
|
||||
import io.github.openflocon.flocondesktop.features.images.domain.model.DeviceImageDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceId
|
||||
import io.github.openflocon.domain.models.DeviceImageDomainModel
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
interface ImagesLocalDataSource {
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
package io.github.openflocon.flocondesktop.features.images.data.datasources
|
||||
|
||||
import com.flocon.data.remote.models.DeviceId
|
||||
import io.github.openflocon.domain.models.DeviceId
|
||||
import io.github.openflocon.flocondesktop.common.coroutines.dispatcherprovider.DispatcherProvider
|
||||
import io.github.openflocon.flocondesktop.features.images.data.datasources.local.FloconImageDao
|
||||
import io.github.openflocon.flocondesktop.features.images.data.datasources.local.toDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.images.data.datasources.local.toEntity
|
||||
import io.github.openflocon.flocondesktop.features.images.domain.model.DeviceImageDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceImageDomainModel
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.flowOn
|
||||
import kotlinx.coroutines.flow.map
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
package io.github.openflocon.flocondesktop.features.images.data.datasources.local
|
||||
|
||||
import com.flocon.data.remote.models.DeviceId
|
||||
import io.github.openflocon.domain.models.DeviceId
|
||||
import io.github.openflocon.flocondesktop.features.images.data.datasources.local.model.DeviceImageEntity
|
||||
import io.github.openflocon.flocondesktop.features.images.domain.model.DeviceImageDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceImageDomainModel
|
||||
|
||||
fun DeviceImageEntity.toDomainModel(): DeviceImageDomainModel = DeviceImageDomainModel(
|
||||
url = this.url,
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package io.github.openflocon.flocondesktop.features.images.domain
|
||||
|
||||
import io.github.openflocon.flocondesktop.core.domain.device.ObserveCurrentDeviceIdUseCase
|
||||
import io.github.openflocon.flocondesktop.features.images.domain.model.DeviceImageDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceImageDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.images.domain.repository.ImagesRepository
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.flatMapLatest
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package io.github.openflocon.flocondesktop.features.images.domain.repository
|
||||
|
||||
import com.flocon.data.remote.models.DeviceId
|
||||
import io.github.openflocon.flocondesktop.features.images.domain.model.DeviceImageDomainModel
|
||||
import io.github.openflocon.domain.models.DeviceId
|
||||
import io.github.openflocon.domain.models.DeviceImageDomainModel
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
interface ImagesRepository {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
package io.github.openflocon.flocondesktop.features.network.data
|
||||
|
||||
import io.github.openflocon.flocondesktop.features.network.domain.model.FloconHttpRequestDomainModel
|
||||
import io.github.openflocon.domain.models.FloconHttpRequestDomainModel
|
||||
import kotlin.time.Clock
|
||||
|
||||
object FloconHttpRequestGenerator {
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
package io.github.openflocon.flocondesktop.features.network.data
|
||||
|
||||
import com.flocon.data.remote.models.DeviceId
|
||||
import io.github.openflocon.domain.models.DeviceId
|
||||
import io.github.openflocon.flocondesktop.features.network.data.datasource.local.NetworkFilterLocalDataSource
|
||||
import io.github.openflocon.flocondesktop.features.network.domain.model.NetworkTextFilterColumns
|
||||
import io.github.openflocon.flocondesktop.features.network.domain.model.TextFilterStateDomainModel
|
||||
import io.github.openflocon.domain.models.NetworkTextFilterColumns
|
||||
import io.github.openflocon.domain.models.TextFilterStateDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.network.domain.repository.NetworkFilterRepository
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.distinctUntilChanged
|
||||
|
|
|
|||
|
|
@ -1,17 +1,17 @@
|
|||
package io.github.openflocon.flocondesktop.features.network.data
|
||||
|
||||
import com.flocon.data.remote.Protocol
|
||||
import com.flocon.data.remote.models.DeviceId
|
||||
import com.flocon.data.remote.models.FloconIncomingMessageDataModel
|
||||
import io.github.openflocon.domain.models.DeviceId
|
||||
import io.github.openflocon.domain.models.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.domain.models.FloconHttpRequestDomainModel
|
||||
import io.github.openflocon.flocondesktop.common.coroutines.dispatcherprovider.DispatcherProvider
|
||||
import io.github.openflocon.flocondesktop.features.network.data.datasource.local.NetworkLocalDataSource
|
||||
import io.github.openflocon.flocondesktop.features.network.data.model.FloconHttpRequestDataModel
|
||||
import io.github.openflocon.flocondesktop.features.network.data.parser.graphql.computeIsGraphQlSuccess
|
||||
import io.github.openflocon.flocondesktop.features.network.data.parser.graphql.extractGraphQl
|
||||
import io.github.openflocon.flocondesktop.features.network.domain.model.FloconHttpRequestDomainModel
|
||||
import io.github.openflocon.flocondesktop.features.network.domain.repository.NetworkImageRepository
|
||||
import io.github.openflocon.flocondesktop.features.network.domain.repository.NetworkRepository
|
||||
import io.github.openflocon.flocondesktop.messages.domain.model.DeviceIdAndPackageNameDomainModel
|
||||
import io.github.openflocon.flocondesktop.messages.domain.repository.sub.MessagesReceiverRepository
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.flowOn
|
||||
|
|
@ -54,7 +54,7 @@ class NetworkRepositoryImpl(
|
|||
withContext(dispatcherProvider.data) {
|
||||
decode(message)?.let { toDomain(it) }?.let { request ->
|
||||
val responseContentType = request.response.contentType
|
||||
if (request.response.contentType != null && responseContentType.startsWith("image/")) {
|
||||
if (request.response.contentType != null && responseContentType?.startsWith("image/") == true) {
|
||||
networkImageRepository.onImageReceived(deviceId = deviceId, request = request)
|
||||
}
|
||||
networkLocalDataSource.save(deviceId = deviceId, packageName = message.appPackageName, request = request)
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import androidx.room.Dao
|
|||
import androidx.room.Insert
|
||||
import androidx.room.OnConflictStrategy
|
||||
import androidx.room.Query
|
||||
import com.flocon.data.remote.models.DeviceId
|
||||
import io.github.openflocon.domain.models.DeviceId
|
||||
import io.github.openflocon.flocondesktop.features.network.data.datasource.local.model.FloconHttpRequestEntity
|
||||
import io.github.openflocon.flocondesktop.features.network.data.datasource.local.model.FloconHttpRequestEntityLite
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import androidx.room.Insert
|
|||
import androidx.room.OnConflictStrategy
|
||||
import androidx.room.Query
|
||||
import io.github.openflocon.flocondesktop.features.network.data.datasource.local.model.NetworkFilterEntity
|
||||
import io.github.openflocon.flocondesktop.features.network.domain.model.NetworkTextFilterColumns
|
||||
import io.github.openflocon.domain.models.NetworkTextFilterColumns
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
@Dao
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue