diff --git a/examples/virtual-device-app/android/App/core/domain/src/main/java/com/matter/virtual/device/app/core/domain/usecase/matter/cluster/doorlock/GetLockStateFlowUseCase.kt b/examples/virtual-device-app/android/App/core/domain/src/main/java/com/matter/virtual/device/app/core/domain/usecase/matter/cluster/doorlock/GetLockStateFlowUseCase.kt new file mode 100644 index 00000000000000..b167997c0294e2 --- /dev/null +++ b/examples/virtual-device-app/android/App/core/domain/src/main/java/com/matter/virtual/device/app/core/domain/usecase/matter/cluster/doorlock/GetLockStateFlowUseCase.kt @@ -0,0 +1,12 @@ +package com.matter.virtual.device.app.core.domain.usecase.matter.cluster.doorlock + +import com.matter.virtual.device.app.core.data.repository.cluster.DoorLockManagerRepository +import javax.inject.Inject +import kotlinx.coroutines.flow.StateFlow + +class GetLockStateFlowUseCase +@Inject +constructor(private val doorLockManagerRepository: DoorLockManagerRepository) { + + operator fun invoke(): StateFlow = doorLockManagerRepository.getLockStateFlow() +} diff --git a/examples/virtual-device-app/android/App/core/domain/src/main/java/com/matter/virtual/device/app/core/domain/usecase/matter/cluster/doorlock/SendLockAlarmEventUseCase.kt b/examples/virtual-device-app/android/App/core/domain/src/main/java/com/matter/virtual/device/app/core/domain/usecase/matter/cluster/doorlock/SendLockAlarmEventUseCase.kt new file mode 100644 index 00000000000000..e5e79a1c18062a --- /dev/null +++ b/examples/virtual-device-app/android/App/core/domain/src/main/java/com/matter/virtual/device/app/core/domain/usecase/matter/cluster/doorlock/SendLockAlarmEventUseCase.kt @@ -0,0 +1,19 @@ +package com.matter.virtual.device.app.core.domain.usecase.matter.cluster.doorlock + +import com.matter.virtual.device.app.core.common.di.IoDispatcher +import com.matter.virtual.device.app.core.data.repository.cluster.DoorLockManagerRepository +import com.matter.virtual.device.app.core.domain.NonParamCoroutineUseCase +import javax.inject.Inject +import kotlinx.coroutines.CoroutineDispatcher + +class SendLockAlarmEventUseCase +@Inject +constructor( + private val doorLockManagerRepository: DoorLockManagerRepository, + @IoDispatcher dispatcher: CoroutineDispatcher +) : NonParamCoroutineUseCase(dispatcher) { + + override suspend fun execute() { + return doorLockManagerRepository.sendLockAlarmEvent() + } +} diff --git a/examples/virtual-device-app/android/App/core/domain/src/main/java/com/matter/virtual/device/app/core/domain/usecase/matter/cluster/doorlock/SetLockStateUseCase.kt b/examples/virtual-device-app/android/App/core/domain/src/main/java/com/matter/virtual/device/app/core/domain/usecase/matter/cluster/doorlock/SetLockStateUseCase.kt new file mode 100644 index 00000000000000..3bec41f20a59f8 --- /dev/null +++ b/examples/virtual-device-app/android/App/core/domain/src/main/java/com/matter/virtual/device/app/core/domain/usecase/matter/cluster/doorlock/SetLockStateUseCase.kt @@ -0,0 +1,19 @@ +package com.matter.virtual.device.app.core.domain.usecase.matter.cluster.doorlock + +import com.matter.virtual.device.app.core.common.di.IoDispatcher +import com.matter.virtual.device.app.core.data.repository.cluster.DoorLockManagerRepository +import com.matter.virtual.device.app.core.domain.CoroutineUseCase +import javax.inject.Inject +import kotlinx.coroutines.CoroutineDispatcher + +class SetLockStateUseCase +@Inject +constructor( + private val doorLockManagerRepository: DoorLockManagerRepository, + @IoDispatcher dispatcher: CoroutineDispatcher +) : CoroutineUseCase(dispatcher) { + + override suspend fun execute(param: Boolean) { + doorLockManagerRepository.setLockState(param) + } +} diff --git a/examples/virtual-device-app/android/App/core/domain/src/main/java/com/matter/virtual/device/app/core/domain/usecase/matter/cluster/powersource/GetBatPercentRemainingUseCase.kt b/examples/virtual-device-app/android/App/core/domain/src/main/java/com/matter/virtual/device/app/core/domain/usecase/matter/cluster/powersource/GetBatPercentRemainingUseCase.kt new file mode 100644 index 00000000000000..9ff150824659eb --- /dev/null +++ b/examples/virtual-device-app/android/App/core/domain/src/main/java/com/matter/virtual/device/app/core/domain/usecase/matter/cluster/powersource/GetBatPercentRemainingUseCase.kt @@ -0,0 +1,13 @@ +package com.matter.virtual.device.app.core.domain.usecase.matter.cluster.powersource + +import com.matter.virtual.device.app.core.data.repository.cluster.PowerSourceManagerRepository +import javax.inject.Inject +import kotlinx.coroutines.flow.StateFlow + +class GetBatPercentRemainingUseCase +@Inject +constructor( + private val powerSourceManagerRepository: PowerSourceManagerRepository, +) { + operator fun invoke(): StateFlow = powerSourceManagerRepository.getBatPercent() +} diff --git a/examples/virtual-device-app/android/App/core/domain/src/main/java/com/matter/virtual/device/app/core/domain/usecase/matter/cluster/powersource/SetBatPercentRemainingUseCase.kt b/examples/virtual-device-app/android/App/core/domain/src/main/java/com/matter/virtual/device/app/core/domain/usecase/matter/cluster/powersource/SetBatPercentRemainingUseCase.kt new file mode 100644 index 00000000000000..00840676483ff6 --- /dev/null +++ b/examples/virtual-device-app/android/App/core/domain/src/main/java/com/matter/virtual/device/app/core/domain/usecase/matter/cluster/powersource/SetBatPercentRemainingUseCase.kt @@ -0,0 +1,19 @@ +package com.matter.virtual.device.app.core.domain.usecase.matter.cluster.powersource + +import com.matter.virtual.device.app.core.common.di.IoDispatcher +import com.matter.virtual.device.app.core.data.repository.cluster.PowerSourceManagerRepository +import com.matter.virtual.device.app.core.domain.CoroutineUseCase +import javax.inject.Inject +import kotlinx.coroutines.CoroutineDispatcher + +class SetBatPercentRemainingUseCase +@Inject +constructor( + private val powerSourceManagerRepository: PowerSourceManagerRepository, + @IoDispatcher dispatcher: CoroutineDispatcher +) : CoroutineUseCase(dispatcher) { + + override suspend fun execute(param: Int) { + powerSourceManagerRepository.setBatPercentRemaining(param) + } +}