Refactor startup UI
I rewrote the startup process to show a new landing page that catches Prompt signals and delegates to the right pages. (This was handled on the main page before.) Everything uses pages instead of dialogs; simple progress feedback is provided.
Unlocking the database as well as registering a new number work fine. Fatal errors are now handled globally, triggering a blocking page to show, and asking the user to restart WF.
Phone numbers are forced to use the international format: the user has to select a calling code from a list. This is a first step for solving #198 (closed). (The prefix will not be saved, yet.)
This closes #202 (closed) and #131 (closed).
Still to do in this MR:
-
save phone number prefix to solve first part of #198 (closed) (instead of complicated error handling we could simply prohibit local numbers entirely...?) -
replace the original qml/js/iso_country_data.js
with the new country code file. -
convert all strings to id-based translations; I used qsTr() instead of qsTrId() for development -
Rebase on !90 (merged) when merged -
Implement a "no password" checkbox, cfr. https://gitlab.com/rubdos/whisperfish/-/merge_requests/90#note_498184646 -
fix input field colors, they're totally off -
fix overlapping pages (should be fixed but has to be tested, which requires registration to work again, i.e. !104 (closed) and friends) -
integrate captcha step [ ] update captcha step for SFOS 4.0-
rebase on !103 (merged)
To be solved later (marked with "TODO" in the code):
-
change the backend to use a real prefix instead of an ISO country code (#177 and #198 (closed)) -
get rid of timers waiting for repeated prompts; send success/failure signals from the backend instead
Note: !90 (merged) will cause the startup process to break. We have to implement a new signal telling the landing page what to do (i.e. skip unlocking and show the main page).
Nice to have but less important: