notification_channel_manager (WIP)

A Android plugin to Manage (CRUD) NotificationChannels and NotificationChannelGroups.

Things to keep in mind

  • Notification Channels are an API 26 (Android 8) and above feature. If your app is targeting an older version of Android, no errors will be thrown, but the plugin won't do anything.

  • Deleting a notification channel is soft delete, creating another with the same id will undelete it and keep the same settings as the old one. see this.

  • Deleting a notification channel group will delete all the channels in the group.

  • The notification settings screen displays the number of deleted channels, as a spam prevention mechanism. You can clear test channels on development devices either by reinstalling the app or by clearing the data associated with your copy of the app.

  • After creating a notification channel, you can only update the name, description, and importance;

  • The importance of an existing channel will only be changed if the new importance is lower than the current value and the user has not altered any settings on this channel. Make sure to check the Android documentation for further information.


  • Required features:

    • Create notification channel(s)
    • Create notification channel group(s)
    • Update notification channel(s)
    • Update notification channel group(s)
    • Delete notification channel(s)
    • Delete notification channel group(s)
    • Read notification channel(s)
    • Read notification channel group(s)
  • Dart:

    • x Define classes for NotificationChannel and NotificationChannelGroup
    • x Define a NotificationChannelManager class
    • x Define interfaces for NotificationChannelManager to use with the Native API
  • Android:

    • x Implement functionalities on Native API
  • x Add tests

    Note: Current tests are flaky and need to be rewritten. Multiple tests are dependent on each other. A better approach would be to create a test suite for the native side, then mock it for the dart side. This will be done in the next iteration.

  • Setup example app

  • Write documentation


This project is open source. Contributions are more than welcome!