1 Commits
Author SHA1 Message Date
tuxgyverandClaude Opus 4.8 665d6e2cb3 feat: quatre modes réseau distincts (liste noire explicite)
Le serveur distingue désormais open / blocklist / allowlist / cut. La liste
noire (services bloqués par le DNS) devient un mode à part entière et ne
s'applique plus que dans ce mode. DataControl affiche le libellé du nouveau
mode sur le tableau de bord, la notification et le journal.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R9CBCVP5oDu2sfoYPisNCQ
2026-10-25 21:50:36 +01:00
7 changed files with 13 additions and 4 deletions

No files matched your search

+4
View File
@@ -1,5 +1,9 @@
# Changelog
## v0.9.0 – 2026-10-25
- 🛠️ **Modifié** — **Quatre modes réseau distincts** décidés par le serveur, affichés sur le tableau de bord et la notification : *Accès libre* (aucun filtrage), *Liste noire* (tout sauf les services bloqués), *Liste blanche* (rien sauf les domaines autorisés), *Internet coupé*. La liste noire ne s'applique désormais que dans le mode qui lui correspond.
## v0.8.0 – 2026-10-25
- ✨ **Ajouté** — **Verrouillage parental à distance** : depuis l'espace parents, le parent verrouille le téléphone sur un écran de blocage plein écran que seul un **code à usage unique** (généré par le serveur et dicté à l'enfant) permet de lever. En mode propriétaire, l'écran est épinglé (accueil et récents neutralisés) ; sinon il revient de lui-même si l'enfant tente de le quitter. Le parent peut aussi déverrouiller à distance.
+1 -1
View File
@@ -1,6 +1,6 @@
# DataControl
🚀 v0.8.0 · 🤖 Android · 🟣 Kotlin · 🎨 Jetpack Compose · 🔒 WireGuard · 🛡️ mode propriétaire · 👨‍👩‍👧 contrôle parental · 🧪 tests · 📄 licence non déclarée
🚀 v0.9.0 · 🤖 Android · 🟣 Kotlin · 🎨 Jetpack Compose · 🔒 WireGuard · 🛡️ mode propriétaire · 👨‍👩‍👧 contrôle parental · 🧪 tests · 📄 licence non déclarée
**DataControl** est l'application Android du téléphone de l'enfant. Elle relie le téléphone en permanence, par un tunnel **WireGuard**, au serveur de contrôle parental **familyd** du parent : tout le trafic (Wi-Fi comme données mobiles) passe par ce serveur, qui décide de ce qui passe. Sur le téléphone, elle bloque les applications interdites, compte le temps d'écran et suit la consommation de données mobiles.
@@ -248,6 +248,7 @@ class AppGuardService : AccessibilityService() {
return when (snap.serverMode) {
"cut" -> "BLOQUÉ (Internet coupé par le serveur) [$net]" to true
"allowlist" -> "LIMITÉ (liste blanche du serveur) [$net]" to true
"blocklist" -> "filtré (liste noire du serveur) [$net]" to false
else -> "filtré par le serveur (accès libre) [$net]" to false
}
}
@@ -166,7 +166,8 @@ class DataMonitorService : LifecycleService() {
val dataState = when {
!settings.controlEnabled -> if (percent >= WARNING_THRESHOLD) DataState.WARNING else DataState.OK
settings.serverMode != "open" -> DataState.CUT
// « blocklist » laisse tout passer (sauf la liste noire DNS) : traité comme « open », pas comme coupé.
settings.serverMode == "allowlist" || settings.serverMode == "cut" -> DataState.CUT
latestTransport == NetworkTransport.WIFI -> DataState.WIFI
percent >= WARNING_THRESHOLD -> DataState.WARNING
else -> DataState.OK
@@ -295,6 +296,7 @@ class DataMonitorService : LifecycleService() {
val modeLabel = when (snapshot.serverMode) {
"cut" -> getString(R.string.mode_cut)
"allowlist" -> getString(R.string.mode_allowlist)
"blocklist" -> getString(R.string.mode_blocklist)
else -> getString(R.string.mode_open)
}
val (emoji, stateLabel, color) = when {
@@ -211,6 +211,7 @@ fun DashboardScreen(systemActions: SystemActions) {
val modeText = when (snapshot.serverMode) {
"cut" -> stringResource(R.string.mode_cut)
"allowlist" -> stringResource(R.string.mode_allowlist)
"blocklist" -> stringResource(R.string.mode_blocklist)
else -> stringResource(R.string.mode_open)
}
val tunnelText = when {
+1
View File
@@ -127,6 +127,7 @@
<string name="family_guard_enable">Activer le service</string>
<!-- v0.2 : tunnel WireGuard et serveur familyd -->
<string name="mode_open">Accès libre</string>
<string name="mode_blocklist">Liste noire (certains services bloqués)</string>
<string name="mode_allowlist">Liste blanche seulement</string>
<string name="mode_cut">Internet coupé</string>
<string name="dashboard_tunnel">Tunnel</string>
+2 -2
View File
@@ -1,2 +1,2 @@
versionName=0.8.0
versionCode=18
versionName=0.9.0
versionCode=19