Skip to content

Refactor startup UI

Mirian Margiani requested to merge startup-ui into master

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:

  • use a higher resolution app icon (don't use SVG in QML though, not sufficiently supported by ancient Qt; #208)
  • give haptic feedback on invalid input on UnlockPage, RegisterPage, VerifyRegistrationPage (#217)
  • add second button to resend verification code (#216)
Edited by Mirian Margiani

Merge request reports