Skip to content
This repository has been archived by the owner on Oct 19, 2022. It is now read-only.

Full push support on Android #501

Open
Boehrsi opened this issue Apr 2, 2020 · 4 comments
Open

Full push support on Android #501

Boehrsi opened this issue Apr 2, 2020 · 4 comments
Labels
enhancement New feature or request

Comments

@Boehrsi
Copy link
Collaborator

Boehrsi commented Apr 2, 2020

Is your feature request related to a problem? Please describe.

Currently support for Android push is limited, as no real background handling is performed. The current solution is based on https://pub.dev/packages/firebase_messaging which wasn't stable combined with background handling with the last used version. Recent updates should have fixed this problem.

Currently working:

  • Send app to background via home button

Currently not working:

  • Send the app to background via back button

Describe the solution you'd like

We should enable push handling with every possible background handling given by https://pub.dev/packages/firebase_messaging so all above mentioned cases should work.

Additional context

If the app is completely killed (e.g. swiped out of the app switcher, killed by a cleaner app) push can't work and will probably never work.

Internal Bug Tracker.

@Boehrsi Boehrsi added the enhancement New feature or request label Apr 2, 2020
@Boehrsi Boehrsi self-assigned this Apr 2, 2020
Boehrsi added a commit that referenced this issue Apr 28, 2020
Fixed method channel names
Fixed logger usage
Renamed notification_manager.dart to display_notification_manager.dart
Added async suffix
Updated libraries involved in push and notifications
Fixed some names and const declarations
Boehrsi added a commit that referenced this issue Apr 28, 2020
Key handling includes generating, persisting, getting, converting
Refactored the method channel handling on Android
Refactored the method channel handling on Dart / Flutter side
Cleaned up Android native part
Renaming and wrapping to better understand sharing flows
Boehrsi added a commit that referenced this issue Apr 29, 2020
Fixed MethodChannels.java typo
Updated gradle
Update libs
Added more push callback for debugging
@Boehrsi
Copy link
Collaborator Author

Boehrsi commented Apr 29, 2020

Push:

As soon as message decryption is working completely:

As soon as FCM is running again:

@Boehrsi
Copy link
Collaborator Author

Boehrsi commented Apr 29, 2020

Background refresh

  • Investigate minimal DCC loading further

Boehrsi added a commit that referenced this issue Apr 30, 2020
Fixed MethodChannels.java typo
Updated gradle
Update libs
Added more push callback for debugging
@Boehrsi
Copy link
Collaborator Author

Boehrsi commented Apr 30, 2020

PR information

  • Inform iOS devs: background_fetch plugin was updated and contains breaking changes. Previous version was 0.4.0 now 0.5.5. Please see: https://pub.dev/packages/background_fetch#-changelog-tab- [iOS] It's no longer necessary to registerBGProcessingTask in AppDelegate.m for tasks registered for use with #scheduleTask. The SDK now reads the App .plist and automatically registers those tasks found in "Permitted background task scheduler identifiers". Remove all code in your AppDelegate.m that references TSBackgroundFetch.

Boehrsi added a commit that referenced this issue May 7, 2020
Fixed method channel names
Fixed logger usage
Renamed notification_manager.dart to display_notification_manager.dart
Added async suffix
Updated libraries involved in push and notifications
Fixed some names and const declarations
Boehrsi added a commit that referenced this issue May 7, 2020
Key handling includes generating, persisting, getting, converting
Refactored the method channel handling on Android
Refactored the method channel handling on Dart / Flutter side
Cleaned up Android native part
Renaming and wrapping to better understand sharing flows
Boehrsi added a commit that referenced this issue May 7, 2020
Fixed MethodChannels.java typo
Updated gradle
Update libs
Added more push callback for debugging
@Boehrsi
Copy link
Collaborator Author

Boehrsi commented May 7, 2020

  • Implement minimal setup
  • Update API mappings
  • Use new API mappings
  • Harden and clean up NativeInteractionManager

Boehrsi added a commit that referenced this issue May 18, 2020
Fixed method channel names
Fixed logger usage
Renamed notification_manager.dart to display_notification_manager.dart
Added async suffix
Updated libraries involved in push and notifications
Fixed some names and const declarations
Boehrsi added a commit that referenced this issue May 18, 2020
Key handling includes generating, persisting, getting, converting
Refactored the method channel handling on Android
Refactored the method channel handling on Dart / Flutter side
Cleaned up Android native part
Renaming and wrapping to better understand sharing flows
Boehrsi added a commit that referenced this issue May 18, 2020
Fixed MethodChannels.java typo
Updated gradle
Update libs
Added more push callback for debugging
Boehrsi added a commit that referenced this issue May 26, 2020
Fixed method channel names
Fixed logger usage
Renamed notification_manager.dart to display_notification_manager.dart
Added async suffix
Updated libraries involved in push and notifications
Fixed some names and const declarations
Boehrsi added a commit that referenced this issue May 26, 2020
Key handling includes generating, persisting, getting, converting
Refactored the method channel handling on Android
Refactored the method channel handling on Dart / Flutter side
Cleaned up Android native part
Renaming and wrapping to better understand sharing flows
Boehrsi added a commit that referenced this issue May 26, 2020
Fixed MethodChannels.java typo
Updated gradle
Update libs
Added more push callback for debugging
phranck pushed a commit that referenced this issue May 29, 2020
Fixed method channel names
Fixed logger usage
Renamed notification_manager.dart to display_notification_manager.dart
Added async suffix
Updated libraries involved in push and notifications
Fixed some names and const declarations
phranck pushed a commit that referenced this issue May 29, 2020
Key handling includes generating, persisting, getting, converting
Refactored the method channel handling on Android
Refactored the method channel handling on Dart / Flutter side
Cleaned up Android native part
Renaming and wrapping to better understand sharing flows
phranck pushed a commit that referenced this issue May 29, 2020
Fixed MethodChannels.java typo
Updated gradle
Update libs
Added more push callback for debugging
Boehrsi added a commit that referenced this issue Jun 4, 2020
Fixed method channel names
Fixed logger usage
Renamed notification_manager.dart to display_notification_manager.dart
Added async suffix
Updated libraries involved in push and notifications
Fixed some names and const declarations
Boehrsi added a commit that referenced this issue Jun 4, 2020
Key handling includes generating, persisting, getting, converting
Refactored the method channel handling on Android
Refactored the method channel handling on Dart / Flutter side
Cleaned up Android native part
Renaming and wrapping to better understand sharing flows
Boehrsi added a commit that referenced this issue Jun 4, 2020
Fixed MethodChannels.java typo
Updated gradle
Update libs
Added more push callback for debugging
Boehrsi added a commit that referenced this issue Jun 5, 2020
Fixed method channel names
Fixed logger usage
Renamed notification_manager.dart to display_notification_manager.dart
Added async suffix
Updated libraries involved in push and notifications
Fixed some names and const declarations
Boehrsi added a commit that referenced this issue Jun 5, 2020
Key handling includes generating, persisting, getting, converting
Refactored the method channel handling on Android
Refactored the method channel handling on Dart / Flutter side
Cleaned up Android native part
Renaming and wrapping to better understand sharing flows
Boehrsi added a commit that referenced this issue Jun 5, 2020
Fixed MethodChannels.java typo
Updated gradle
Update libs
Added more push callback for debugging
Boehrsi added a commit that referenced this issue Jun 5, 2020
* Cleaned up and hardened BloC logic #501 OT-779
Fixed method channel names
Fixed logger usage
Renamed notification_manager.dart to display_notification_manager.dart
Added async suffix
Updated libraries involved in push and notifications
Fixed some names and const declarations

* Moved key generation into the dart part #501 OT-779
Key handling includes generating, persisting, getting, converting
Refactored the method channel handling on Android
Refactored the method channel handling on Dart / Flutter side
Cleaned up Android native part
Renaming and wrapping to better understand sharing flows

* Update Android components and try push workarounds #501 OT-779
Fixed MethodChannels.java typo
Updated gradle
Update libs
Added more push callback for debugging

* Updated background_fetch, adjust plugin #501 OT-779

* Fix logging

* Adjust to new plugin init param

* Fix logging

* Only recreate LocalNotificationManager if called from background
Renamed stuff

* Use decrypt in memory

* Fix background refresh

* testing with in mem decryption

* Update firebase

* post rebase fixes

* first addition of NotificationService extension

* Rebase fixes

* Cleanup

* Cleanup and remove not working workarounds

* Fix typo

* Post rebase fixes

* SecurityHelper additions

* Adjust stuff

Co-authored-by: Frank Gregor <[email protected]>
@Boehrsi Boehrsi removed their assignment Jan 27, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant