|
|
@ -21,22 +21,30 @@ import io.element.android.features.pin.api.PinState |
|
|
|
import io.element.android.features.pin.api.PinStateDataSource |
|
|
|
import io.element.android.features.pin.api.PinStateDataSource |
|
|
|
import io.element.android.libraries.di.AppScope |
|
|
|
import io.element.android.libraries.di.AppScope |
|
|
|
import io.element.android.libraries.di.SingleIn |
|
|
|
import io.element.android.libraries.di.SingleIn |
|
|
|
|
|
|
|
import io.element.android.libraries.featureflag.api.FeatureFlagService |
|
|
|
|
|
|
|
import io.element.android.libraries.featureflag.api.FeatureFlags |
|
|
|
import kotlinx.coroutines.flow.MutableStateFlow |
|
|
|
import kotlinx.coroutines.flow.MutableStateFlow |
|
|
|
import kotlinx.coroutines.flow.StateFlow |
|
|
|
import kotlinx.coroutines.flow.StateFlow |
|
|
|
import javax.inject.Inject |
|
|
|
import javax.inject.Inject |
|
|
|
|
|
|
|
|
|
|
|
@SingleIn(AppScope::class) |
|
|
|
@SingleIn(AppScope::class) |
|
|
|
@ContributesBinding(AppScope::class) |
|
|
|
@ContributesBinding(AppScope::class) |
|
|
|
class DefaultPinStateDataSource @Inject constructor() : PinStateDataSource { |
|
|
|
class DefaultPinStateDataSource @Inject constructor( |
|
|
|
|
|
|
|
private val featureFlagService: FeatureFlagService, |
|
|
|
|
|
|
|
) : PinStateDataSource { |
|
|
|
|
|
|
|
|
|
|
|
private val _pinState = MutableStateFlow<PinState>(PinState.Locked) |
|
|
|
private val _pinState = MutableStateFlow<PinState>(PinState.Unlocked) |
|
|
|
override val pinState: StateFlow<PinState> = _pinState |
|
|
|
override val pinState: StateFlow<PinState> = _pinState |
|
|
|
|
|
|
|
|
|
|
|
override fun unlock() { |
|
|
|
override suspend fun unlock() { |
|
|
|
_pinState.value = PinState.Unlocked |
|
|
|
if (featureFlagService.isFeatureEnabled(FeatureFlags.PinUnlock)) { |
|
|
|
|
|
|
|
_pinState.value = PinState.Unlocked |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
override fun lock() { |
|
|
|
override suspend fun lock() { |
|
|
|
_pinState.value = PinState.Locked |
|
|
|
if (featureFlagService.isFeatureEnabled(FeatureFlags.PinUnlock)) { |
|
|
|
|
|
|
|
_pinState.value = PinState.Locked |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|