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

Check, request and handle notification permissions #2874

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

myxmaster
Copy link
Contributor

Description

This lets Zeus properly check, request and handle notification permissions.

Tested with Android 12 and Android 14 (notification permission logic changed as of Android 13). Untested for iOS.

Zeus now handles notification permissions across different Android versions (and iOS hopefully also works 👽). When notifications are needed, it will either request permission directly (not possible on Android 12 and lower) or guide users to system settings with an infoModal. This happens when:

  • user enables persistent mode
  • user creates a lightning address (because notifications=push is default)
  • Wallet.tsx loads while persistent mode is enabled OR ln address is enabled + notifications=push

Also:

  • enabling persistent mode is only possible if user grants notification permission
  • changing lightning address settings to notifications=push is only possible if user grants notification permission
  • creating a lightning address will still be possible if user denies notification permission, but it will then set notifications=disabled

Additionally fixed a "Possible unhandled promise rejection" warning by adding an empty catch in LightningAddress\index.tsx.

Note:
Added AsyncStorage and react-native-permissions mocks to handleAnything.test.ts because these modules are required through the dependency chain.

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)
  • Nostr Wallet Connect
  • LndHub

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

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

Successfully merging this pull request may close these issues.

2 participants