J’ai pas mon PC donc je peux pas coder, mais je peux en profiter pour détailler un peu où j’en suis
Les écrans gris/blanc que vous pouvez rencontrer lors de certaines actions dans l’app sont principalement dû à mon système de fichier pour le stockage des config des portefeuilles locaux.
Je gère actuellement tout en file système:
- wallets
- defaultWallet
- 0
- 1
- w0.dewif
- w1.dewif
- list.conf
0 et 1 sont des dossiers correspondant aux 2 coffres (Chest) par defaut dans Gecko.
Le coffre 0 est le coffre HD wallet, contenant les portefeuilles principaux (dérivations).
Le coffre 1 est le CoffreACesium, contenant différent portefeuilles Cesium, tous protégés par le même code secrêt.
Le code secret est donc propre au coffre, un différent par coffre.
les list.conf
contiennet des lignes de ce format:
0:0:Mon portefeuille courant:3
0:1:Mon livret A:6
0:2:Un larfeuil pour les surprises:2
Col 1: numéro du coffre
Col 2: numéro du portefeuille dans ce coffre (Col1:Col2
= ID)
Col 3: Nom du portefeuille
Col 4: Numéro de dérivation (IndexNbr)
Et j’ai une classe qui parse cette liste et créer un objet de type portefeuille (merci @HugoTrentesaux )
Tout ceci fonctionne plutôt bien.
J’ai simplement encore quelques soucis avec le cycle de vie de ces fichiers, l’aspect async de la chose sur certains points, notamment lors de la suppression de tous les portefeuilles, ou de la première création de coffre en sortie de l’OnBoarding.
En général lorsque vous tomber sur un écran blanc, vous pouvez ferme l’app et la rouvrir, et ça fonctionne (pbm de async sur les filessystem), parfois non, dans ce cas c’est un mauvais format de fichier ou un fichier absent, mais ce deuxième cas devrait être plus rare, je fais de mon mieux pour que ce cycle de vie soit cohérent.
@kimamila Ce serait toi, qu’est-ce que tu utiliserais pour stocker les dewif et configs wallets (noms,ID,IndexNbr,defaultWallet,walletPicture, ect…) ? Est-ce que tu partirais sur du filesystème comme moi ? En JSON ou autre ?
Est-ce que tu partirais plus sur une mini DB local (SQLite, autre ?)
Edit: Voici le dernier APK qui date de 2 jours qui corrige déjà pas mal de bugs, en attendant que je corrige les derniers: