From ba6993e138bfc9c2bca05188643bd36bb1d4ab73 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 10 Jun 2026 03:43:07 +0000 Subject: [PATCH 1/3] Release 5.6.0 --- android/build.gradle | 2 +- .../src/main/java/com/onesignal/flutter/OneSignalPlugin.java | 2 +- ios/onesignal_flutter.podspec | 2 +- .../Sources/onesignal_flutter/OneSignalPlugin.m | 2 +- pubspec.yaml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index ea95be17..f4fc898f 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,5 +1,5 @@ group 'com.onesignal.flutter' -version '5.5.8' +version '5.6.0' def safeEnvFlagGet(prop) { def value = System.getenv(prop) diff --git a/android/src/main/java/com/onesignal/flutter/OneSignalPlugin.java b/android/src/main/java/com/onesignal/flutter/OneSignalPlugin.java index 64b01a97..6d8166cd 100644 --- a/android/src/main/java/com/onesignal/flutter/OneSignalPlugin.java +++ b/android/src/main/java/com/onesignal/flutter/OneSignalPlugin.java @@ -24,7 +24,7 @@ private void init(Context context, BinaryMessenger messenger) { this.messenger = messenger; OneSignalWrapper.setSdkType("flutter"); // Keep in sync with pubspec.yaml version - OneSignalWrapper.setSdkVersion("050508"); + OneSignalWrapper.setSdkVersion("050600"); channel = new MethodChannel(messenger, "OneSignal"); channel.setMethodCallHandler(this); diff --git a/ios/onesignal_flutter.podspec b/ios/onesignal_flutter.podspec index 485a5167..2e380394 100644 --- a/ios/onesignal_flutter.podspec +++ b/ios/onesignal_flutter.podspec @@ -7,7 +7,7 @@ Pod::Spec.new do |s| onesignal_disable_location = ['true', '1'].include?(onesignal_disable_location_env) s.name = 'onesignal_flutter' - s.version = '5.5.8' + s.version = '5.6.0' s.summary = 'The OneSignal Flutter SDK' s.description = 'Allows you to easily add OneSignal to your flutter projects, to make sending and handling push notifications easy' s.homepage = 'https://www.onesignal.com' diff --git a/ios/onesignal_flutter/Sources/onesignal_flutter/OneSignalPlugin.m b/ios/onesignal_flutter/Sources/onesignal_flutter/OneSignalPlugin.m index 09205b57..8b22e676 100644 --- a/ios/onesignal_flutter/Sources/onesignal_flutter/OneSignalPlugin.m +++ b/ios/onesignal_flutter/Sources/onesignal_flutter/OneSignalPlugin.m @@ -56,7 +56,7 @@ + (instancetype)sharedInstance { + (void)registerWithRegistrar:(NSObject *)registrar { OneSignalWrapper.sdkType = @"flutter"; - OneSignalWrapper.sdkVersion = @"050508"; + OneSignalWrapper.sdkVersion = @"050600"; [OneSignal initialize:nil withLaunchOptions:nil]; OneSignalPlugin.sharedInstance.channel = diff --git a/pubspec.yaml b/pubspec.yaml index 0a0d6548..413d3df2 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: onesignal_flutter description: OneSignal is a free push notification service for mobile apps. This plugin makes it easy to integrate your flutter app with OneSignal -version: 5.5.8 +version: 5.6.0 homepage: https://github.com/OneSignal/OneSignal-Flutter-SDK # Uses rps package for scripts From 1a24a4930d9c30098cad435e97ffb89413b7c756 Mon Sep 17 00:00:00 2001 From: Fadi George Date: Tue, 9 Jun 2026 21:14:44 -0700 Subject: [PATCH 2/3] ci: bump Flutter version to 3.44.1 --- .github/actions/setup-flutter/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/setup-flutter/action.yml b/.github/actions/setup-flutter/action.yml index 8d3f987e..b82d84d0 100644 --- a/.github/actions/setup-flutter/action.yml +++ b/.github/actions/setup-flutter/action.yml @@ -12,7 +12,7 @@ runs: uses: flutter-actions/setup-flutter@v4 with: channel: stable - version: "3.35.5" + version: "3.44.1" cache: true - name: Enable Swift Package Manager run: flutter config --enable-swift-package-manager From d65761b3412e06102347dd6bad1cbe1e848aa038 Mon Sep 17 00:00:00 2001 From: Fadi George Date: Wed, 10 Jun 2026 00:26:48 -0700 Subject: [PATCH 3/3] fix(examples): add observer lifecycle management --- examples/demo-no-location/lib/main.dart | 40 +++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/examples/demo-no-location/lib/main.dart b/examples/demo-no-location/lib/main.dart index d969d2b2..99ccf5b7 100644 --- a/examples/demo-no-location/lib/main.dart +++ b/examples/demo-no-location/lib/main.dart @@ -66,6 +66,8 @@ class _NoLocationDemoScreenState extends State { String? _pushSubscriptionId; bool _requestingPermission = false; bool _sending = false; + late final OnPushSubscriptionChangeObserver _pushSubscriptionObserver; + late final OnNotificationPermissionChangeObserver _permissionObserver; bool get _isPlaceholderAppId => _oneSignalAppId.toLowerCase().startsWith('your-'); @@ -73,12 +75,45 @@ class _NoLocationDemoScreenState extends State { @override void initState() { super.initState(); + _pushSubscriptionObserver = (state) { + debugPrint('Push subscription state: ${state.jsonRepresentation()}'); + if (!mounted) return; + setState(() { + _pushSubscriptionId = state.current.id; + }); + }; + _permissionObserver = (permission) { + debugPrint('Permission changed: $permission'); + if (!mounted) return; + setState(() { + _hasNotificationPermission = permission; + }); + }; + OneSignal.User.pushSubscription.addObserver(_pushSubscriptionObserver); + OneSignal.Notifications.addPermissionObserver(_permissionObserver); + _initializeOneSignal(); + } + + @override + void dispose() { + OneSignal.User.pushSubscription.removeObserver(_pushSubscriptionObserver); + OneSignal.Notifications.removePermissionObserver(_permissionObserver); + super.dispose(); + } + + Future _initializeOneSignal() async { OneSignal.Debug.setLogLevel(OSLogLevel.verbose); - OneSignal.initialize(_oneSignalAppId); - _refreshPushState(); + + try { + await OneSignal.initialize(_oneSignalAppId); + _refreshPushState(); + } catch (error) { + debugPrint('OneSignal initialization failed: $error'); + } } void _refreshPushState() { + if (!mounted) return; setState(() { _hasNotificationPermission = OneSignal.Notifications.permission; _pushSubscriptionId = OneSignal.User.pushSubscription.id; @@ -92,6 +127,7 @@ class _NoLocationDemoScreenState extends State { try { final granted = await OneSignal.Notifications.requestPermission(false); + if (!mounted) return; setState(() { _hasNotificationPermission = granted; _pushSubscriptionId = OneSignal.User.pushSubscription.id;