Updated on 2026-08-14

This commit is contained in:
Tangem 2023-09-20 18:48:25 +03:00
parent 3c59214c76
commit 4c903fc654
73 changed files with 886 additions and 190 deletions

1
domain/balance-hiding/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
/build

View 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)
}

View file

@ -0,0 +1 @@
/build

View file

@ -0,0 +1,4 @@
plugins {
alias(deps.plugins.kotlin.jvm)
id("configuration")
}

View file

@ -0,0 +1,6 @@
package com.tangem.domain.balancehiding
data class BalanceHidingSettings(
val isHidingEnabledInSettings: Boolean,
val isBalanceHidden: Boolean,
)

View file

@ -0,0 +1,8 @@
package com.tangem.domain.balancehiding
import kotlinx.coroutines.flow.Flow
interface DeviceFlipDetector {
fun getDeviceFlipFlow(): Flow<Unit>
}

View file

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

View file

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

View file

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