- 13 tests UI instrumentés (uitest/) : navigation 5 onglets, dialog Nouveautés (épinglage du fix v1.3.2), sections Paramètres, version installée = BuildConfig (anti-bug #46). Déterministes : pm grant shell, markChangelogSeen, assertions via targetContext (FR/EN), zéro dépendance aux données Room. - Signature release conditionnelle : scripts/make-release-keystore.sh (shellcheck+shfmt) + keystore.properties gitignoré ; assembleRelease l'utilise s'il existe, sinon clé debug inchangée. Migration documentée §16.quater. - SettingsScreen découpé : 840 lignes -> orchestrateur 377 + 11 cartes dans ui/screens/settings/ (déplacement pur, commentaires conservés). ChartScreen volontairement entier (garde de source #54). - README.en.md complet + liens FR/EN croisés. Vérifié : 249 tests JVM + 13 UI verts, lint vert, smoke RELEASE émulateur (données réelles seedées : accueil, prochaines doses, suggestion creux, graphiques ESE+TFS superposés, 0 crash logcat — anti-#64).
42 lines
672 B
Plaintext
42 lines
672 B
Plaintext
# Gradle
|
|
.gradle/
|
|
build/
|
|
|
|
# Local configuration (machine-specific, never commit)
|
|
local.properties
|
|
|
|
# Release signing (v1.9.8) — created by scripts/make-release-keystore.sh.
|
|
# NEVER commit: the keystore + its passwords are the identity of the app
|
|
# (leaking them = anyone can ship an APK that upgrades over yours).
|
|
keystore.properties
|
|
*.keystore
|
|
*.jks
|
|
|
|
# IntelliJ / Android Studio
|
|
.idea/
|
|
*.iml
|
|
*.ipr
|
|
*.iws
|
|
|
|
# Build outputs
|
|
app/build/
|
|
captures/
|
|
.externalNativeBuild/
|
|
.cxx/
|
|
*.apk.idsig
|
|
*.hprof
|
|
|
|
# Kotlin / Java
|
|
.kotlin/
|
|
|
|
# OS
|
|
.DS_Store
|
|
Thumbs.db
|
|
|
|
# Logs
|
|
*.log
|
|
local-test-data/
|
|
app/build/generated/changelog/
|
|
app/src/main/assets/changelog.md
|
|
scripts/confidentiality-scan.py
|