From 5f90cc9059588fc5003ca0aef51982973ffde502 Mon Sep 17 00:00:00 2001 From: m Date: Sat, 12 Sep 2026 14:11:27 +0200 Subject: [PATCH] local mode stored into local database --- .../vaultdrop/mobile/domain/LocalModeStore.kt | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 mobile-kotlin/app/src/main/java/com/vaultdrop/mobile/domain/LocalModeStore.kt diff --git a/mobile-kotlin/app/src/main/java/com/vaultdrop/mobile/domain/LocalModeStore.kt b/mobile-kotlin/app/src/main/java/com/vaultdrop/mobile/domain/LocalModeStore.kt new file mode 100644 index 0000000..73efebb --- /dev/null +++ b/mobile-kotlin/app/src/main/java/com/vaultdrop/mobile/domain/LocalModeStore.kt @@ -0,0 +1,27 @@ +package com.vaultdrop.mobile.domain + +import com.vaultdrop.mobile.data.local.dao.UserPreferenceDao +import com.vaultdrop.mobile.data.local.entity.UserPreferenceEntity +import javax.inject.Inject +import javax.inject.Singleton + +/** + * Drapeau « mode local » (on utilise l'app sans compte) persisté en + * `user_preferences`. Permet de restaurer [com.vaultdrop.mobile.ui.auth.AuthState.Local] + * au redémarrage au lieu de retomber sur la page de connexion. + */ +@Singleton +class LocalModeStore @Inject constructor( + private val userPreferenceDao: UserPreferenceDao, +) { + + suspend fun set() { + userPreferenceDao.upsert( + UserPreferenceEntity(PrefKeys.LOCAL_MODE, "1", System.currentTimeMillis()), + ) + } + + suspend fun get(): Boolean = userPreferenceDao.getValue(PrefKeys.LOCAL_MODE) != null + + suspend fun clear() = userPreferenceDao.delete(PrefKeys.LOCAL_MODE) +} \ No newline at end of file