Because we’re making UI text changes, I’ve forked our views into “long” and “short” versions that preserve the previous experience while allowing the shorter experience to be different.
One limitation of the current approach is that the screenshot tests are limited to the current configuration, so there is some risk of ‘bit rot’ with the screenshot tests for the longer onboarding. For this PR, I manually switched the feature flags and re-ran the screenshot tests to make sure they still worked.
---------
Co-authored-by: Honza <rychnovsky.honza@gmail.com>
This sets up the infrastructure needed to continue implementing the onboarding UI for create and import of wallets. By fleshing out the global state management in the app now, we can better manage asynchronous IO to avoid blocking the UI.
This adds:
- Load and persistence a wallet in encrypted preferences
- The stored data is written as a single JSON object, as opposed to multiple entries, to ensure atomic writes
- The data is versioned, so that we can change the JSON format readily in the future
- Detection of application state, e.g. onboarding versus loading the user's wallet
- Touch points to initialize the SDK
Known issues
- We cannot use downloadable fonts with Compose, so the fonts must be embedded with the app
Questions
- How does the transparent button show a disabled state?
- Are the navigation buttons and secondary buttons supposed to be effectively the same style but one is smaller?
TODO
- Add gradients. Gradients are not implemented for background, progress bar, etc. Currently they simply use the start color for the gradient
- Icons are using Material Icons, pending decision on how to leverage the vectors in the design
- Add the border for hero images
- Add shapes for the callout, which is currently square
- Add padding
- Add drop shadows
- Double-check colors for correctness