Skip to content

(Wallet) Implement onboarding initial screen and TOC screen #21905

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 30 commits into from
Feb 7, 2024

Conversation

simoarpe
Copy link
Collaborator

@simoarpe simoarpe commented Feb 5, 2024

Screenshot 2024-02-05 at 5 48 22 PM

Screenshot 2024-02-05 at 5 48 41 PM

Resolves brave/brave-browser#35713

Implements new initial onboarding screen and new terms of use screen.

Light Mode

image image

Dark Mode

image image

Figma design: https://www.figma.com/file/oXIiv45pIhF2RGlpEjOfUg/Wallet-onboarding?node-id=6223%3A70942&mode=dev

Main umbrella issue: brave/brave-browser#35294

Submitter Checklist:

  • I confirm that no security/privacy review is needed and no other type of reviews are needed, or that I have requested them
  • There is a ticket for my issue
  • Used Github auto-closing keywords in the PR description above
  • Wrote a good PR/commit description
  • Squashed any review feedback or "fixup" commits before merge, so that history is a record of what happened in the repo, not your PR
  • Added appropriate labels (QA/Yes or QA/No; release-notes/include or release-notes/exclude; OS/...) to the associated issue
  • Checked the PR locally:
    • npm run test -- brave_browser_tests, npm run test -- brave_unit_tests wiki
    • npm run lint, npm run presubmit wiki, npm run gn_check, npm run tslint
  • Ran git rebase master (if needed)

Reviewer Checklist:

  • A security review is not needed, or a link to one is included in the PR description
  • New files have MPL-2.0 license header
  • Adequate test coverage exists to prevent regressions
  • Major classes, functions and non-trivial code blocks are well-commented
  • Changes in component dependencies are properly reflected in gn
  • Code follows the style guide
  • Test plan is specified in PR before merging

After-merge Checklist:

Test Plan:

  • Erase any wallet data, if any.
  • Navigate to Wallet section
  • Observe new onboarding creation screen.
  • Tap on "Need a new Wallet".
  • Observe new terms of use screen.
  • Verify "continue" button is enabled only when both checkboxes are ticked
  • Verify "Terms of use" clickable span points to https://brave.com/terms-of-use/

@simoarpe simoarpe added CI/skip-macos-x64 Do not run CI builds for macOS x64 CI/skip-ios Do not run CI builds for iOS feature/web3/wallet labels Feb 5, 2024
@simoarpe simoarpe added the CI/skip-windows-x64 Do not run CI builds for Windows x64 label Feb 5, 2024
@simoarpe simoarpe self-assigned this Feb 5, 2024
@simoarpe simoarpe requested a review from a team as a code owner February 5, 2024 16:58
Copy link
Contributor

github-actions bot commented Feb 5, 2024

[puLL-Merge] - brave/brave-core@21905

Description

This pull request introduces several enhancements and new features to the Brave wallet on the Android platform. It includes updates to the user interface and the addition of new resources for improving the wallet onboarding experience and functionality.

Changes

Changes

Resources Added

  • Drawable Resources: New icons and other drawable resources for wallet onboarding, including new_wallet.xml, restore_wallet.xml, and icons for various cryptocurrencies like Coinbase, MetaMask, and Phantom.
  • Language Strings: New strings for UI text, including titles and descriptions for new wallet setup and restoring an existing wallet, terms of use acknowledgment, and others.
  • Styles: New styles for wallet-related UI components, especially for onboarding card views and buttons.

Java Source Files

  • BraveWalletActivity.java: Significant changes for handling the wallet onboarding flow, including terms of use and options for setting up a new wallet or restoring an existing one.
  • OnboardingInitWalletFragment.java: Updated to support animated backgrounds during onboarding and rearranged UI components with new cards for new wallet setup and wallet restore options.
  • CryptoWalletOnboardingPagerAdapter.java: Refactored to support the addition of new onboarding steps dynamically.
  • OnboardingTermsOfUseFragment.java: A new fragment to display terms of use during the onboarding process.

Security Hotspots

  1. Dynamic Fragment Handling (CryptoWalletOnboardingPagerAdapter.java): Changes in how fragments are dynamically replaced or added during the onboarding process need careful review to ensure that fragment lifecycles are properly managed and that this dynamic behavior doesn't introduce any memory leaks or unexpected behaviors.

  2. New Resource Files Handling: The introduction of several new drawable and layout resources, along with dynamically loaded content (e.g., animated backgrounds), should be reviewed to ensure efficient resource management and optimal performance on a wide range of devices.

  3. User Input and External URLs: The handling of user input, especially in new onboarding forms and the "Terms of Use" with clickable links (OnboardingTermsOfUseFragment.java), should be reviewed for potential security implications, including but not limited to injection attacks or improper handling of external URLs.

  4. Storage and Handling of Sensitive Information: Any changes related to how sensitive information, such as wallet recovery phrases or private keys, is stored or handled during the onboarding process necessitate a thorough security review to prevent data leakage or unauthorized access.

Copy link
Collaborator

@mkarolin mkarolin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

strings++

Copy link
Member

@SergeyZhukovsky SergeyZhukovsky left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

++

@simoarpe simoarpe merged commit be25b71 into master Feb 7, 2024
@simoarpe simoarpe deleted the simone/onboarding-initial-screen branch February 7, 2024 13:17
@github-actions github-actions bot added this to the 1.64.x - Nightly milestone Feb 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI/skip-ios Do not run CI builds for iOS CI/skip-macos-x64 Do not run CI builds for macOS x64 CI/skip-windows-x64 Do not run CI builds for Windows x64 feature/web3/wallet puLL-Merge
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Initial onboarding screen when accessing Brave Wallet
3 participants