🇫🇷 Français | 🇬🇧 English
Fialka/
├── .gitignore
├── .gitmodules
├── LICENSE
├── README.md
├── PRIVACY.md
├── TERMS.md
├── SECURITY.md
├── build.gradle.kts # Config Gradle racine
├── settings.gradle.kts
├── gradle.properties
│
├── Fialka-Core/ # Submodule Rust — bibliothèque native
│ ├── src/ffi/mod.rs # 30 fonctions JNI extern C
│ ├── Cargo.toml
│ └── ... # Crypto Rust (AES, ChaCha20, Ed25519, ML-KEM, ML-DSA...)
│
├── docs/ # Documentation détaillée
│ ├── fr/ # Documentation française
│ │ ├── ARCHITECTURE.md # Architecture, patterns, flux
│ │ ├── CRYPTO.md # Protocole cryptographique complet
│ │ ├── SETUP.md # Installation + compilation
│ │ ├── STRUCTURE.md # Ce fichier
│ │ └── CHANGELOG.md # Historique des versions
│ └── en/ # English documentation
│ ├── ARCHITECTURE.md
│ ├── CRYPTO.md
│ ├── SETUP.md
│ ├── STRUCTURE.md
│ └── CHANGELOG.md
│
├── app/
│ ├── build.gradle.kts # Dépendances app
│ ├── proguard-rules.pro
│ │
│ └── src/main/
│ ├── AndroidManifest.xml
│ │
│ ├── java/com/fialkaapp/fialka/
│ │ ├── FialkaApplication.kt # Init App + bootstrap Tor
│ │ ├── MainActivity.kt # Single-activity (NavHost)
│ │ ├── LockScreenActivity.kt # Écran de verrouillage PIN + biométrie
│ │ │
│ │ ├── crypto/
│ │ │ ├── CryptoManager.kt # Orchestration crypto — délègue à FialkaNative (Rust JNI)
│ │ │ ├── FialkaNative.kt # Pont JNI — 30 fonctions extern vers libfialka_core.so
│ │ │ ├── DoubleRatchet.kt # Full Double Ratchet (DH + KDF chains) + PQXDH upgrade
│ │ │ └── MnemonicManager.kt # BIP-39 mnemonic encode/decode (24 mots)
│ │ │
│ │ ├── data/
│ │ │ ├── local/
│ │ │ │ ├── FialkaDatabase.kt # Room DB v24 (SQLCipher)
│ │ │ │ ├── UserLocalDao.kt
│ │ │ │ ├── ContactDao.kt
│ │ │ │ ├── ConversationDao.kt
│ │ │ │ ├── MessageLocalDao.kt
│ │ │ │ ├── OutboxDao.kt # Messages en attente + `getExhaustedMessages()`
│ │ │ │ └── RatchetStateDao.kt
│ │ │ │
│ │ │ ├── model/
│ │ │ │ ├── UserLocal.kt # Identité locale
│ │ │ │ ├── Contact.kt # Contact (pseudo + pubkey)
│ │ │ ├── Conversation.kt # Conversation (ephemeral, fingerprint, lastDeliveredAt)
│ │ │ │ ├── MessageLocal.kt # Message (plaintext, ephemeral)
│ │ │ ├── EncryptedMessage.kt # Message chiffré (format réseau)
│ │ │ └── RatchetState.kt # État du ratchet par conversation
│ │ │ │
│ │ │ ├── remote/
│ │ │ └── TorTransport.kt # Transport Tor Hidden Services P2P + Mailbox
│ │ │ │
│ │ │ └── repository/
│ │ │ └── ChatRepository.kt # Source de vérité unique (Mutex)
│ │ │
│ │ ├── util/
│ │ │ ├── QrCodeGenerator.kt # Génération QR codes (ZXing)
│ │ │ ├── SecureFileManager.kt # Suppression sécurisée de fichiers (écrasement 2 passes : aléatoire + zéros)
│ │ │ ├── FialkaSecurePrefs.kt # Stockage sécurisé direct Android Keystore AES-256-GCM (remplace security-crypto)
│ │ │ ├── ThemeManager.kt # 5 thèmes (Midnight/Hacker/Phantom/Aurora/Daylight)
│ │ │ ├── AppLockManager.kt # PIN, biométrie, auto-lock timeout
│ │ │ ├── EphemeralManager.kt # Durées éphémères (30s → 1 mois)
│ │ │ ├── DummyTrafficManager.kt # Faux trafic (anti analyse de trafic)
│ │ ├── DeviceSecurityManager.kt # Sonde StrongBox, niveaux sécurité MAXIMUM/STANDARD
│ │ └── LocaleHelper.kt # Changement de locale au runtime, persistance SharedPreferences
│ │ │
│ │ └── ui/
│ │ ├── onboarding/ # Création d'identité + backup + restauration
│ │ │ ├── OnboardingFragment.kt
│ │ │ ├── OnboardingViewModel.kt
│ │ │ ├── BackupPhraseFragment.kt
│ │ │ ├── RestoreFragment.kt
│ │ │ ├── SeedVerificationFragment.kt # Confirmation 3 mots après backup
│ │ │ └── LanguageSelectionFragment.kt # Sélecteur de langue in-app (FR/EN)
│ │ ├── conversations/ # Liste des chats + demandes de contact
│ │ │ ├── ConversationsFragment.kt
│ │ │ ├── ConversationsViewModel.kt
│ │ │ ├── ConversationsAdapter.kt
│ │ │ └── ContactRequestsAdapter.kt
│ │ ├── addcontact/ # Scanner QR + saisie manuelle
│ │ │ ├── AddContactFragment.kt
│ │ │ ├── AddContactViewModel.kt
│ │ │ └── CustomScannerActivity.kt
│ │ ├── chat/ # Messages E2E + bulles
│ │ │ ├── ChatFragment.kt
│ │ │ ├── ChatViewModel.kt
│ │ │ ├── MessagesAdapter.kt
│ │ │ ├── ConversationProfileFragment.kt
│ │ │ └── FingerprintFragment.kt
│ │ ├── profile/ # QR code, copier/partager, supprimer
│ │ └── settings/ # Hub paramètres + sous-écrans
│ │ ├── SettingsFragment.kt
│ │ ├── SettingsAdapter.kt # RecyclerView settings avec recherche + filtres catégorie
│ │ ├── SettingsViewModel.kt # StateFlow settings items
│ │ ├── AppearanceFragment.kt
│ │ ├── NotificationsFragment.kt
│ │ ├── SecurityFragment.kt
│ │ ├── PrivacyFragment.kt # Sous-écran Confidentialité (dummy traffic, éphémère)
│ │ ├── EphemeralSettingsFragment.kt
│ │ ├── PinSetupDialogFragment.kt
│ │ ├── ThemeSelectorBottomSheet.kt # Sélecteur visuel 5 thèmes
│ │ ├── DurationSelectorBottomSheet.kt # Sélecteur durée messages éphémères
│ │ ├── StorageFragment.kt # Gestion stockage (stats temps réel, nettoyage, zone danger)
│ │ ├── BackupExportFragment.kt # Export backup chiffré .fialka (PBKDF2 + AES-256-GCM)
│ │ └── BackupImportFragment.kt # Import + validation backup .fialka
│ │
│ ├── wallet/ # Wallet Monero XMR non-custodial
│ │ ├── MoneroWallet.kt # Facade JNI vers libfialka_monero.so
│ │ ├── WalletRepository.kt # Source de vérité wallet (réseau dynamique via WalletPreferences)
│ │ ├── WalletPreferences.kt # Préfs wallet : réseau (STAGENET/MAINNET), node, restore height
│ │ ├── WalletSnapshot.kt # État snapshot (balance, sync, enabled, hasSeed)
│ │ └── DonationKeys.kt # Adresse de don XMR (réseau indépendant du wallet utilisateur)
│ │
│ ├── ui/
│ │ ├── wallet/ # Écrans wallet
│ │ │ ├── WalletHomeFragment.kt # Tableau de bord wallet + badge réseau (rouge/vert)
│ │ │ ├── WalletSettingsFragment.kt # Paramètres wallet + sélection Stagenet/Mainnet + dialog suppression
│ │ │ ├── WalletSeedBackupFragment.kt # Backup seed wallet + badge réseau
│ │ │ └── WalletHomeViewModel.kt
│ │ └── donation/
│ │ └── DonationFragment.kt # Envoi XMR de don + historique transactions
│ │
│ └── res/
│ ├── anim/ # 14 animations (slide, fade, bubble, cascade, bottom sheet)
│ ├── drawable/ # Bulles, badges, icônes, backgrounds, brand orbs, panels
│ ├── layout/ # 44 layouts XML (fragments + items + bottom sheets)
│ ├── menu/ # Menu conversations
│ ├── navigation/nav_graph.xml # 22 destinations, transitions animées
│ ├── raw/bip39_english.txt # Wordlist BIP-39 (2048 mots)
│ ├── xml/file_paths.xml # FileProvider paths (partage fichiers)
│ ├── xml/locale_config.xml # Locales supportées (fr, en) — per-app language
│ ├── values/ # Couleurs, strings, thèmes, 22 attrs custom
│ ├── values-en/strings.xml # ~1300+ traductions anglaises (i18n)
│ └── values-night/ # Couleurs dark mode