release: v0.1.8 — configuration Firebase saisie dans l'application

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
tuxgyverandClaude Sonnet 5 committed 2026-09-21 13:39:37 +02:00
1 parent eecad06eea
commit f33776bbb5
14 files changed
+210 -53

No files matched your search

@@ -29,7 +29,9 @@ data class AppSettings(
/** Horodatage (ms) de la dernière configuration distante appliquée. */
val remoteConfigVersion: Long = 0L,
/** Règles d'usage (plages horaires, limites de temps, applications interdites), au format JSON. */
val rulesJson: String? = null
val rulesJson: String? = null,
/** Configuration Firebase saisie dans l'application (null : voir firebase.properties de compilation). */
val firebase: com.jttools.datacontrol.remote.FirebaseConfig? = null
) {
val isPaired: Boolean get() = !familyId.isNullOrEmpty() && !deviceId.isNullOrEmpty()
@@ -46,6 +46,9 @@ class SettingsRepository @Inject constructor(
val DEVICE_ID = stringPreferencesKey("device_id")
val REMOTE_CONFIG_VERSION = longPreferencesKey("remote_config_version")
val RULES_JSON = stringPreferencesKey("rules_json")
val FIREBASE_API_KEY = stringPreferencesKey("firebase_api_key")
val FIREBASE_APP_ID = stringPreferencesKey("firebase_app_id")
val FIREBASE_PROJECT_ID = stringPreferencesKey("firebase_project_id")
val USAGE_DAY = stringPreferencesKey("usage_day")
val USAGE_JSON = stringPreferencesKey("usage_json")
val TRAFFIC_DAY = stringPreferencesKey("traffic_day")
@@ -78,7 +81,12 @@ class SettingsRepository @Inject constructor(
familyId = prefs[Keys.FAMILY_ID],
deviceId = prefs[Keys.DEVICE_ID],
remoteConfigVersion = prefs[Keys.REMOTE_CONFIG_VERSION] ?: defaults.remoteConfigVersion,
rulesJson = prefs[Keys.RULES_JSON]
rulesJson = prefs[Keys.RULES_JSON],
firebase = run {
val k = prefs[Keys.FIREBASE_API_KEY]; val a = prefs[Keys.FIREBASE_APP_ID]; val p = prefs[Keys.FIREBASE_PROJECT_ID]
if (k.isNullOrBlank() || a.isNullOrBlank() || p.isNullOrBlank()) null
else com.jttools.datacontrol.remote.FirebaseConfig(k, a, p)
}
)
}
@@ -286,4 +294,17 @@ class SettingsRepository @Inject constructor(
it[Keys.USAGE_JSON] = json
}
}
/** Enregistre (ou efface, si null) la configuration Firebase saisie dans l'application. */
suspend fun setFirebaseConfig(config: com.jttools.datacontrol.remote.FirebaseConfig?) {
context.dataStore.edit {
if (config == null) {
it.remove(Keys.FIREBASE_API_KEY); it.remove(Keys.FIREBASE_APP_ID); it.remove(Keys.FIREBASE_PROJECT_ID)
} else {
it[Keys.FIREBASE_API_KEY] = config.apiKey
it[Keys.FIREBASE_APP_ID] = config.appId
it[Keys.FIREBASE_PROJECT_ID] = config.projectId
}
}
}
}