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:
Raphael Teyssandier 2025-08-11 14:28:00 +02:00 committed by GitHub
parent da55c9463d
commit fff697c41a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
196 changed files with 408 additions and 383 deletions

View file

@ -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 {

View file

@ -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

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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(

View file

@ -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

View file

@ -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

View file

@ -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(

View file

@ -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 {

View file

@ -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

View file

@ -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 {

View file

@ -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

View file

@ -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 {

View file

@ -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

View file

@ -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

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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(

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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,

View file

@ -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(

View file

@ -1,3 +0,0 @@
package io.github.openflocon.flocondesktop.features.analytics.domain.model
typealias AnalyticsTableId = String

View file

@ -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 {

View file

@ -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

View file

@ -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(

View file

@ -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

View file

@ -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 {

View file

@ -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

View file

@ -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 {

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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(

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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(

View file

@ -1,3 +0,0 @@
package io.github.openflocon.flocondesktop.features.dashboard.domain.model
typealias DashboardId = String

View file

@ -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 {

View file

@ -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

View file

@ -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 {

View file

@ -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(

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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 {

View file

@ -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 {

View file

@ -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

View file

@ -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(

View file

@ -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(

View file

@ -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

View file

@ -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

View file

@ -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(

View file

@ -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 {

View file

@ -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

View file

@ -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

View file

@ -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,

View file

@ -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

View file

@ -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

View file

@ -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 {

View file

@ -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

View file

@ -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

View file

@ -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,

View file

@ -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

View file

@ -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]

View file

@ -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 {

View file

@ -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

View file

@ -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

View file

@ -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 {

View file

@ -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

View file

@ -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

View file

@ -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) {

View file

@ -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(

View file

@ -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(

View file

@ -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

View file

@ -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(

View file

@ -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
}

View file

@ -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 {

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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 {

View file

@ -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

View file

@ -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,

View file

@ -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

View file

@ -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 {

View file

@ -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 {

View file

@ -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

View file

@ -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)

View file

@ -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

View file

@ -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