Skip to content
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

Call getSettingsAndNavigate less often #2660

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

myxmaster
Copy link
Contributor

@myxmaster myxmaster commented Dec 21, 2024

Description

Before, getSettingsAndNavigate() was called everytime Wallet.tsx gained focus. Since processing getSettingsAndNavigate() takes some time, this resulted in the app not being responsive for a short time. Example: When you closed the menu and then immediately clicked on a balance slider, it was not responding.

With this PR the flow is optimized, so getSettingsAndNavigate() is only called:

  • via handleFocus():
    • On initial load (using existing initialLoad state)
    • When coming from Lockscreen after logging in (using new triggerSettingsRefresh flag)
    • When POS was enabled (using new posWasEnabled flag)
  • via handleAppStateChange():
    • when app comes from background (no PIN/password configured)

Additionally fixed a bug, where autonavigation into POS didn't work in this edge case:

  • Configure a PIN/password, enable Require login after app returns from background
  • Enable POS and leave menu (autonavigate works)
  • Disable POS and leave menu
  • Put the app in background and reopen it, log in
  • Enable POS and leave menu
    => no autonavigate is happening

Root cause was in Lockscreen.tsx, now it is only setting posStatus to 'inactive' when POS is actually enabled.

This pull request is categorized as a:

  • New feature
  • Bug fix
  • Code refactor
  • Configuration change
  • Locales update
  • Quality assurance
  • Other

Checklist

  • I’ve run yarn run tsc and made sure my code compiles correctly
  • I’ve run yarn run lint and made sure my code didn’t contain any problematic patterns
  • I’ve run yarn run prettier and made sure my code is formatted correctly
  • I’ve run yarn run test and made sure all of the tests pass

Testing

If you modified or added a utility file, did you add new unit tests?

  • No, I’m a fool
  • Yes
  • N/A

I have tested this PR on the following platforms (please specify OS version and phone model/VM):

  • Android
  • iOS

I have tested this PR with the following types of nodes (please specify node version and API version where appropriate):

  • Embedded LND
  • LND (REST)
  • LND (Lightning Node Connect)
  • Core Lightning (CLNRest)
  • LndHub
  • [DEPRECATED] Core Lightning (c-lightning-REST)
  • [DEPRECATED] Core Lightning (Spark)
  • [DEPRECATED] Eclair

Locales

  • I’ve added new locale text that requires translations
  • I’m aware that new translations should be made on the ZEUS Transfix page and not directly to this repo

Third Party Dependencies and Packages

  • Contributors will need to run yarn after this PR is merged in
  • 3rd party dependencies have been modified:
    • verify that package.json and yarn.lock have been properly updated
    • verify that dependencies are installed for both iOS and Android platforms

Other:

  • Changes were made that require an update to the README
  • Changes were made that require an update to onboarding

views/Lockscreen.tsx Outdated Show resolved Hide resolved
views/Lockscreen.tsx Outdated Show resolved Hide resolved
@myxmaster myxmaster force-pushed the call-getSettingsAndNavigate-less-often branch 2 times, most recently from e6eb541 to 71cfa8b Compare January 21, 2025 03:57
@myxmaster
Copy link
Contributor Author

Now using observable flag again, because:
When "Require login after app returns from background" is enabled and you are not in Wallet view (e.g. Menu), then put app to background and reopen, then Lockscreen will not navigate to Wallet, but to Menu... Now the observable triggerSettingsRefresh will be set to true, and when you close the Menu, it will trigger getSettingsAndNavigate().

Removed all the unused route params.

@myxmaster myxmaster force-pushed the call-getSettingsAndNavigate-less-often branch from 71cfa8b to 3a97378 Compare January 23, 2025 17:38
@myxmaster
Copy link
Contributor Author

(rebased and fixed merge conflict)

@myxmaster myxmaster force-pushed the call-getSettingsAndNavigate-less-often branch from 3a97378 to 643374c Compare January 26, 2025 11:42
@myxmaster
Copy link
Contributor Author

rebased/solved conflict

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants