Updated on 2026-08-14
This commit is contained in:
parent
3c59214c76
commit
4c903fc654
73 changed files with 886 additions and 190 deletions
1
domain/balance-hiding/.gitignore
vendored
Normal file
1
domain/balance-hiding/.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
/build
|
||||
10
domain/balance-hiding/build.gradle.kts
Normal file
10
domain/balance-hiding/build.gradle.kts
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
plugins {
|
||||
alias(deps.plugins.kotlin.jvm)
|
||||
id("configuration")
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation(deps.kotlin.coroutines)
|
||||
implementation(projects.domain.settings)
|
||||
implementation(projects.domain.balanceHiding.models)
|
||||
}
|
||||
1
domain/balance-hiding/models/.gitignore
vendored
Normal file
1
domain/balance-hiding/models/.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
/build
|
||||
4
domain/balance-hiding/models/build.gradle.kts
Normal file
4
domain/balance-hiding/models/build.gradle.kts
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
plugins {
|
||||
alias(deps.plugins.kotlin.jvm)
|
||||
id("configuration")
|
||||
}
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
package com.tangem.domain.balancehiding
|
||||
|
||||
data class BalanceHidingSettings(
|
||||
val isHidingEnabledInSettings: Boolean,
|
||||
val isBalanceHidden: Boolean,
|
||||
)
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
package com.tangem.domain.balancehiding
|
||||
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
interface DeviceFlipDetector {
|
||||
|
||||
fun getDeviceFlipFlow(): Flow<Unit>
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
package com.tangem.domain.balancehiding
|
||||
|
||||
import com.tangem.domain.balancehiding.repositories.BalanceHidingRepository
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.map
|
||||
|
||||
class IsBalanceHiddenUseCase(
|
||||
private val balanceHidingRepository: BalanceHidingRepository,
|
||||
) {
|
||||
|
||||
operator fun invoke(): Flow<Boolean> {
|
||||
return balanceHidingRepository.getBalanceHidingSettingsFlow().map {
|
||||
it.isBalanceHidden
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
package com.tangem.domain.balancehiding
|
||||
|
||||
import com.tangem.domain.balancehiding.repositories.BalanceHidingRepository
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.emptyFlow
|
||||
import kotlinx.coroutines.flow.onEach
|
||||
|
||||
class ListenToFlipsUseCase(
|
||||
private val flipDetector: DeviceFlipDetector,
|
||||
private val balanceHidingRepository: BalanceHidingRepository,
|
||||
) {
|
||||
|
||||
suspend operator fun invoke(): Flow<Unit> {
|
||||
return if (balanceHidingRepository.getBalanceHidingSettings().isHidingEnabledInSettings) {
|
||||
flipDetector.getDeviceFlipFlow().onEach {
|
||||
val balanceHidingSettings = balanceHidingRepository.getBalanceHidingSettings()
|
||||
|
||||
balanceHidingRepository.storeBalanceHidingSettings(
|
||||
balanceHidingSettings.copy(
|
||||
isBalanceHidden = !balanceHidingSettings.isBalanceHidden,
|
||||
),
|
||||
)
|
||||
}
|
||||
} else {
|
||||
emptyFlow()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
package com.tangem.domain.balancehiding.repositories
|
||||
|
||||
import com.tangem.domain.balancehiding.BalanceHidingSettings
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
interface BalanceHidingRepository {
|
||||
|
||||
fun getBalanceHidingSettingsFlow(): Flow<BalanceHidingSettings>
|
||||
|
||||
suspend fun storeBalanceHidingSettings(isBalanceHidden: BalanceHidingSettings)
|
||||
|
||||
suspend fun getBalanceHidingSettings(): BalanceHidingSettings
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue