Upgrading flutter_local_notifications 0.2 to 0.3
Breaking0.2.9 → 0.3.9Breaking3New6Changed1Fixed4Other6
BreakingUpgrade verdict
3 breaking changes.
In plain terms
- An old piece of code that nothing uses anymore has been deleted.
- You now import the plugin once, and several class names have been renamed to put Android or IOS at the front instead of the end.
- On Android, scheduled notifications could show the wrong time. The plugin now builds the notification right before showing it, which changes how scheduled notifications work.
Must act 3 items need code or config changes
What you must change
Breaking3
Removes a class that is no longer used due to changes in 0.3.0.
Restructures the code so only a single import is needed and renames platform-suffixed classes to platform-prefixed names.
InitializationSettingsAndroidAndroidInitializationSettingsInitializationSettingsIOSIOSInitializationSettingsNotificationDetailsAndroidAndroidNotificationDetailsNotificationStyleAndroidAndroidNotificationStyleFixes Android issue 71 where the wrong notification time was displayed; the receiver now builds the notification only just before displaying it.
API changes
Generated by DepDelta from published Dart source. Not mixed with prose notes.
- added:
class AndroidInitializationSettings - added:
class AndroidNotificationDetails - added:
class BigPictureStyleInformation extends DefaultStyleInformation - added:
class BigTextStyleInformation extends DefaultStyleInformation - added:
class DefaultStyleInformation extends StyleInformation - added:
class IOSInitializationSettings - added:
class IOSNotificationDetails - added:
class Importance - added:
class InboxStyleInformation extends DefaultStyleInformation - added:
class InitializationSettings - added:
class NotificationAppLaunchDetails - added:
class NotificationDetails - added:
class Priority - added:
class StyleInformation: abstract - added:
ctor AndroidInitializationSettings(this.defaultIcon) - added:
ctor AndroidNotificationDetails( this.channelId, this.channelName, this.channelDescription, {this.icon, this.importance = …, this.priority = …, this.style = …, this.styleInformation, this.playSound = …, this.sound, this.enableVibration = …, this.vibrationPattern, this.groupKey, this.setAsGroupSummary, this.groupAlertBehavior = …, this.autoCancel = …, this.ongoing, this.color, this.largeIcon, this… - added:
ctor BigPictureStyleInformation(this.bigPicture, this.bigPictureBitmapSource, {this.contentTitle, this.summaryText, this.htmlFormatContentTitle = …, this.htmlFormatSummaryText = …, this.largeIcon, this.largeIconBitmapSource, bool htmlFormatContent = …, bool htmlFormatTitle = …}) - added:
ctor BigTextStyleInformation(this.bigText, {this.htmlFormatBigText = …, this.contentTitle, this.htmlFormatContentTitle = …, this.summaryText, this.htmlFormatSummaryText = …, bool htmlFormatContent = …, bool htmlFormatTitle = …}) - added:
ctor DefaultStyleInformation(this.htmlFormatContent, this.htmlFormatTitle) - added:
ctor IOSInitializationSettings( {this.requestAlertPermission = …, this.requestSoundPermission = …, this.requestBadgePermission = …, this.defaultPresentAlert = …, this.defaultPresentSound = …, this.defaultPresentBadge = …, this.registerUNUserNotificationCenterDelegate = …}) - added:
ctor IOSNotificationDetails( {this.presentAlert, this.presentBadge, this.presentSound, this.sound}) - added:
ctor Importance(this.value) - added:
ctor InboxStyleInformation(this.lines, {this.htmlFormatLines = …, this.contentTitle, this.htmlFormatContentTitle = …, this.summaryText, this.htmlFormatSummaryText = …, bool htmlFormatContent = …, bool htmlFormatTitle = …}) - added:
ctor InitializationSettings(this.android, this.ios) - added:
ctor NotificationAppLaunchDetails( this.didNotificationLaunchApp, this.payload) - added:
ctor NotificationDetails(this.android, this.iOS) - added:
ctor Priority(this.value) - added:
ctor StyleInformation() - added:
enum AndroidNotificationStyle - added:
enum BitmapSource - added:
enum GroupAlertBehavior - added:
field AndroidInitializationSettings.defaultIcon: final String - added:
field AndroidNotificationDetails.autoCancel: bool - added:
field AndroidNotificationDetails.channelDescription: final String - added:
field AndroidNotificationDetails.channelId: final String - added:
field AndroidNotificationDetails.channelName: final String - added:
field AndroidNotificationDetails.channelShowBadge: final bool - added:
field AndroidNotificationDetails.color: Color - added:
field AndroidNotificationDetails.enableVibration: bool - added:
field AndroidNotificationDetails.groupAlertBehavior: GroupAlertBehavior - added:
field AndroidNotificationDetails.groupKey: String - added:
field AndroidNotificationDetails.icon: final String - added:
field AndroidNotificationDetails.importance: Importance - added:
field AndroidNotificationDetails.indeterminate: bool - added:
field AndroidNotificationDetails.largeIcon: String - added:
field AndroidNotificationDetails.largeIconBitmapSource: BitmapSource - added:
field AndroidNotificationDetails.maxProgress: int - added:
field AndroidNotificationDetails.ongoing: bool - added:
field AndroidNotificationDetails.onlyAlertOnce: bool - added:
field AndroidNotificationDetails.playSound: bool - added:
field AndroidNotificationDetails.priority: Priority - added:
field AndroidNotificationDetails.progress: int - added:
field AndroidNotificationDetails.setAsGroupSummary: bool - added:
field AndroidNotificationDetails.showProgress: bool - added:
field AndroidNotificationDetails.sound: String - added:
field AndroidNotificationDetails.style: AndroidNotificationStyle - added:
field AndroidNotificationDetails.styleInformation: StyleInformation - added:
field AndroidNotificationDetails.vibrationPattern: Int64List - added:
field BigPictureStyleInformation.bigPicture: final String - added:
field BigPictureStyleInformation.bigPictureBitmapSource: final BitmapSource - added:
field BigPictureStyleInformation.contentTitle: final String - added:
field BigPictureStyleInformation.htmlFormatContentTitle: final bool - added:
field BigPictureStyleInformation.htmlFormatSummaryText: final bool - added:
field BigPictureStyleInformation.largeIcon: final String - added:
field BigPictureStyleInformation.largeIconBitmapSource: final BitmapSource - added:
field BigPictureStyleInformation.summaryText: final String - added:
field BigTextStyleInformation.bigText: final String - added:
field BigTextStyleInformation.contentTitle: final String - added:
field BigTextStyleInformation.htmlFormatBigText: final bool - added:
field BigTextStyleInformation.htmlFormatContentTitle: final bool - added:
field BigTextStyleInformation.htmlFormatSummaryText: final bool - added:
field BigTextStyleInformation.summaryText: final String - added:
field DefaultStyleInformation.htmlFormatContent: bool - added:
field DefaultStyleInformation.htmlFormatTitle: bool - added:
field IOSInitializationSettings.defaultPresentAlert: final bool - added:
field IOSInitializationSettings.defaultPresentBadge: final bool - added:
field IOSInitializationSettings.defaultPresentSound: final bool - added:
field IOSInitializationSettings.registerUNUserNotificationCenterDelegate: final bool - added:
field IOSInitializationSettings.requestAlertPermission: final bool - added:
field IOSInitializationSettings.requestBadgePermission: final bool - added:
field IOSInitializationSettings.requestSoundPermission: final bool - added:
field IOSNotificationDetails.presentAlert: final bool - added:
field IOSNotificationDetails.presentBadge: final bool - added:
field IOSNotificationDetails.presentSound: final bool - added:
field IOSNotificationDetails.sound: final String - added:
field Importance.value: final int - added:
field InboxStyleInformation.contentTitle: final String - added:
field InboxStyleInformation.htmlFormatContentTitle: final bool - added:
field InboxStyleInformation.htmlFormatLines: final bool - added:
field InboxStyleInformation.htmlFormatSummaryText: final bool - added:
field InboxStyleInformation.lines: List<String> - added:
field InboxStyleInformation.summaryText: final String - added:
field InitializationSettings.android: final AndroidInitializationSettings - added:
field InitializationSettings.ios: final IOSInitializationSettings - added:
field NotificationAppLaunchDetails.didNotificationLaunchApp: final bool - added:
field NotificationAppLaunchDetails.payload: final String - added:
field NotificationDetails.android: final AndroidNotificationDetails - added:
field NotificationDetails.iOS: final IOSNotificationDetails - added:
field Priority.value: final int - added:
member AndroidNotificationStyle.BigPicture - added:
member AndroidNotificationStyle.BigText - added:
member AndroidNotificationStyle.Default - added:
member AndroidNotificationStyle.Inbox - added:
member BitmapSource.Drawable - added:
member BitmapSource.FilePath - added:
member GroupAlertBehavior.All - added:
member GroupAlertBehavior.Children - added:
member GroupAlertBehavior.Summary - added:
method AndroidInitializationSettings.toMap(): Map<String, dynamic> - added:
method AndroidNotificationDetails.toMap(): Map<String, dynamic> - added:
method BigPictureStyleInformation.toMap(): Map<String, dynamic> - added:
method BigTextStyleInformation.toMap(): Map<String, dynamic> - added:
method DefaultStyleInformation.toMap(): Map<String, dynamic> - added:
method FlutterLocalNotificationsPlugin.getNotificationAppLaunchDetails(): Future<NotificationAppLaunchDetails> - added:
method IOSInitializationSettings.toMap(): Map<String, dynamic> - added:
method IOSNotificationDetails.toMap(): Map<String, dynamic> - added:
method InboxStyleInformation.toMap(): Map<String, dynamic> - added:
method StyleInformation.toMap(): Map<String, dynamic> - added:
static field Importance.Default: const - added:
static field Importance.High: const - added:
static field Importance.Low: const - added:
static field Importance.Max: const - added:
static field Importance.Min: const - added:
static field Importance.None: const - added:
static field Importance.Unspecified: const - added:
static field Priority.Default: const - added:
static field Priority.High: const - added:
static field Priority.Low: const - added:
static field Priority.Max: const - added:
static field Priority.Min: const - added:
static get Importance.values - added:
static get Priority.values
- removed:
class InitializationSettings - removed:
ctor InitializationSettings(this.android, this.ios) - removed:
field InitializationSettings.android: final InitializationSettingsAndroid - removed:
field InitializationSettings.ios: final InitializationSettingsIOS
- removed:
class NotificationDetails - removed:
ctor NotificationDetails(this.android, this.iOS) - removed:
field NotificationDetails.android: final NotificationDetailsAndroid - removed:
field NotificationDetails.iOS: final NotificationDetailsIOS
- removed:
class InitializationSettingsAndroid - removed:
ctor InitializationSettingsAndroid(this.defaultIcon) - removed:
field InitializationSettingsAndroid.defaultIcon: final String - removed:
method InitializationSettingsAndroid.toMap(): Map<String, dynamic>
- removed:
class Importance - removed:
class NotificationDetailsAndroid - removed:
class Priority - removed:
ctor Importance(this.value) - removed:
ctor NotificationDetailsAndroid( this.channelId, this.channelName, this.channelDescription, {this.icon, this.importance = …, this.priority = …, this.style = …, this.styleInformation, this.playSound = …, this.sound, this.enableVibration = …, this.vibrationPattern, this.groupKey, this.setAsGroupSummary, this.groupAlertBehavior = …, this.autoCancel = …, this.ongoing, this.color}) - removed:
ctor Priority(this.value) - removed:
enum GroupAlertBehavior - removed:
enum NotificationStyleAndroid - removed:
field Importance.value: final int - removed:
field NotificationDetailsAndroid.autoCancel: bool - removed:
field NotificationDetailsAndroid.channelDescription: final String - removed:
field NotificationDetailsAndroid.channelId: final String - removed:
field NotificationDetailsAndroid.channelName: final String - removed:
field NotificationDetailsAndroid.color: Color - removed:
field NotificationDetailsAndroid.enableVibration: bool - removed:
field NotificationDetailsAndroid.groupAlertBehavior: GroupAlertBehavior - removed:
field NotificationDetailsAndroid.groupKey: String - removed:
field NotificationDetailsAndroid.icon: final String - removed:
field NotificationDetailsAndroid.importance: Importance - removed:
field NotificationDetailsAndroid.ongoing: bool - removed:
field NotificationDetailsAndroid.playSound: bool - removed:
field NotificationDetailsAndroid.priority: Priority - removed:
field NotificationDetailsAndroid.setAsGroupSummary: bool - removed:
field NotificationDetailsAndroid.sound: String - removed:
field NotificationDetailsAndroid.style: NotificationStyleAndroid - removed:
field NotificationDetailsAndroid.styleInformation: StyleInformation - removed:
field NotificationDetailsAndroid.vibrationPattern: Int64List - removed:
field Priority.value: final int - removed:
member GroupAlertBehavior.All - removed:
member GroupAlertBehavior.Children - removed:
member GroupAlertBehavior.Summary - removed:
member NotificationStyleAndroid.BigText - removed:
member NotificationStyleAndroid.Default - removed:
member NotificationStyleAndroid.Inbox - removed:
method NotificationDetailsAndroid.toMap(): Map<String, dynamic> - removed:
static field Importance.Default: const - removed:
static field Importance.High: const - removed:
static field Importance.Low: const - removed:
static field Importance.Max: const - removed:
static field Importance.Min: const - removed:
static field Importance.None: const - removed:
static field Importance.Unspecified: const - removed:
static field Priority.Default: const - removed:
static field Priority.High: const - removed:
static field Priority.Low: const - removed:
static field Priority.Max: const - removed:
static field Priority.Min: const - removed:
static get Importance.values - removed:
static get Priority.values
- removed:
class BigTextStyleInformation extends DefaultStyleInformation - removed:
ctor BigTextStyleInformation(this.bigText, {this.htmlFormatBigText = …, this.contentTitle, this.htmlFormatContentTitle = …, this.summaryText, this.htmlFormatSummaryText = …, bool htmlFormatContent = …, bool htmlFormatTitle = …}) - removed:
field BigTextStyleInformation.bigText: final String - removed:
field BigTextStyleInformation.contentTitle: final String - removed:
field BigTextStyleInformation.htmlFormatBigText: final bool - removed:
field BigTextStyleInformation.htmlFormatContentTitle: final bool - removed:
field BigTextStyleInformation.htmlFormatSummaryText: final bool - removed:
field BigTextStyleInformation.summaryText: final String - removed:
method BigTextStyleInformation.toMap(): Map<String, dynamic>
- removed:
class DefaultStyleInformation extends StyleInformation - removed:
ctor DefaultStyleInformation(this.htmlFormatContent, this.htmlFormatTitle) - removed:
field DefaultStyleInformation.htmlFormatContent: bool - removed:
field DefaultStyleInformation.htmlFormatTitle: bool - removed:
method DefaultStyleInformation.toMap(): Map<String, dynamic>
- removed:
class InboxStyleInformation extends DefaultStyleInformation - removed:
ctor InboxStyleInformation(this.lines, {this.htmlFormatLines = …, this.contentTitle, this.htmlFormatContentTitle = …, this.summaryText, this.htmlFormatSummaryText = …, bool htmlFormatContent = …, bool htmlFormatTitle = …}) - removed:
field InboxStyleInformation.contentTitle: final String - removed:
field InboxStyleInformation.htmlFormatContentTitle: final bool - removed:
field InboxStyleInformation.htmlFormatLines: final bool - removed:
field InboxStyleInformation.htmlFormatSummaryText: final bool - removed:
field InboxStyleInformation.lines: List<String> - removed:
field InboxStyleInformation.summaryText: final String - removed:
method InboxStyleInformation.toMap(): Map<String, dynamic>
- removed:
class StyleInformation: abstract - removed:
ctor StyleInformation() - removed:
method StyleInformation.toMap(): Map<String, dynamic>
- removed:
class InitializationSettingsIOS - removed:
ctor InitializationSettingsIOS( {this.requestAlertPermission = …, this.requestSoundPermission = …, this.requestBadgePermission = …, this.defaultPresentAlert = …, this.defaultPresentSound = …, this.defaultPresentBadge = …}) - removed:
field InitializationSettingsIOS.defaultPresentAlert: final bool - removed:
field InitializationSettingsIOS.defaultPresentBadge: final bool - removed:
field InitializationSettingsIOS.defaultPresentSound: final bool - removed:
field InitializationSettingsIOS.requestAlertPermission: final bool - removed:
field InitializationSettingsIOS.requestBadgePermission: final bool - removed:
field InitializationSettingsIOS.requestSoundPermission: final bool - removed:
method InitializationSettingsIOS.toMap(): Map<String, dynamic>
- removed:
class NotificationDetailsIOS - removed:
ctor NotificationDetailsIOS( {this.presentAlert, this.presentBadge, this.presentSound, this.sound}) - removed:
field NotificationDetailsIOS.presentAlert: final bool - removed:
field NotificationDetailsIOS.presentBadge: final bool - removed:
field NotificationDetailsIOS.presentSound: final bool - removed:
field NotificationDetailsIOS.sound: final String - removed:
method NotificationDetailsIOS.toMap(): Map<String, dynamic>