django-push-notifications icon indicating copy to clipboard operation
django-push-notifications copied to clipboard

support interruption level on ios devices

Open 50-Course opened this issue 1 year ago • 2 comments

Hello team,

Digging deep into PyAPNs2, I found that the library does have internal priority levels, distinctively, Immediate and Delayed.

In addition to this, support different notification types, such as Background, Alert, VoIP, Complication, FileProvider and mdm.

This patch extend one or two of these interfaces to support interruption_levels on User Notification Center. Below is what is contained in this commit:

  • [x] New enumeration types to support interruption levels: time_sensitive, active, passive, critical alerts
  • [x] Wrapper functions to help add additional functionality to existing _apns_send and _apns_prepare methods. This design allows for modification of functionality without breaking backwards compatibility, and also giving control over what-is-what.
  • [x] Functional tests to verify behaviour of this functionality. NOTE: This should be tested on real Apple devices or emulators before merged.

This patch is a work-in-progress and I would like to get feedback on this before I proceed with the next steps. Can you take a look at this? @pomali

CC: @jleclanche

Commits:

  • feat: Create module to support library-specific enumeration types
  • feat(APNS): extend library functionality to support interruption level for Apple Devices
  • add interruption_level to apns_send_message() function signature
  • test(APNs): add functional tests for updated apns_send_message() interface

50-Course avatar Mar 28 '24 07:03 50-Course

Your PR is difficult to review because of whitespace changes. If there are whitespace fixes to make, please do them in a separate commit/PR.

jleclanche avatar Mar 28 '24 13:03 jleclanche

That was my editor overriding the editorconfig settings, I think I would have to find a way make it respect editorconfig. It runs black immediately before push, this have been a recent development for me, due to internal changes in my config.

With that pointed out, i'd try see to revert to previous change.

50-Course avatar Mar 28 '24 14:03 50-Course