Skip to content

Commit 426406d

Browse files
committed
Update push subscription observer event name
1 parent b5e92ff commit 426406d

File tree

6 files changed

+45
-38
lines changed

6 files changed

+45
-38
lines changed

android/src/main/java/com/onesignal/flutter/OneSignalPushSubscription.java

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
import io.flutter.plugin.common.PluginRegistry;
2424
import io.flutter.plugin.common.PluginRegistry.Registrar;
2525

26-
public class OneSignalPushSubscription extends FlutterRegistrarResponder implements MethodCallHandler, ISubscriptionChangedHandler {
26+
public class OneSignalPushSubscription extends FlutterRegistrarResponder implements MethodCallHandler, IPushSubscriptionObserver {
2727

2828
static void registerWith(BinaryMessenger messenger) {
2929
OneSignalPushSubscription controller = new OneSignalPushSubscription();
@@ -60,16 +60,12 @@ private void optOut(MethodCall call, Result reply) {
6060
}
6161

6262
private void lifecycleInit() {
63-
OneSignal.getUser().getPushSubscription().addChangeHandler(this);
63+
OneSignal.getUser().getPushSubscription().addObserver(this);
6464
}
6565

6666
@Override
67-
public void onSubscriptionChanged(ISubscription subscription) {
68-
if (!(subscription instanceof IPushSubscription)){
69-
return;
70-
}
71-
IPushSubscription pushSubscription = (IPushSubscription) subscription;
72-
invokeMethodOnUiThread("OneSignal#pushSubscriptionChanged", OneSignalSerializer.convertOnSubscriptionChanged(pushSubscription));
67+
public void onPushSubscriptionChange(PushSubscriptionChangedState changeState) {
68+
invokeMethodOnUiThread("OneSignal#onPushSubscriptionChange", OneSignalSerializer.convertOnPushSubscriptionChange(changeState));
7369
}
7470

7571
}

android/src/main/java/com/onesignal/flutter/OneSignalSerializer.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ static HashMap<String, Object> convertInAppMessageToMap(IInAppMessage message) {
158158
return hash;
159159
}
160160

161-
static HashMap<String, Object> convertOnSubscriptionChanged(IPushSubscription state) {
161+
static HashMap<String, Object> convertPushSubscriptionState(PushSubscriptionState state) {
162162
HashMap<String, Object> hash = new HashMap<>();
163163

164164

@@ -169,6 +169,16 @@ static HashMap<String, Object> convertOnSubscriptionChanged(IPushSubscription st
169169
return hash;
170170
}
171171

172+
static HashMap<String, Object> convertOnPushSubscriptionChange(PushSubscriptionChangedState changedState) {
173+
HashMap<String, Object> hash = new HashMap<>();
174+
175+
176+
hash.put("current", convertPushSubscriptionState(changedState.getCurrent()));
177+
hash.put("previous", convertPushSubscriptionState(changedState.getPrevious()));
178+
179+
return hash;
180+
}
181+
172182

173183
static HashMap<String, Object> convertJSONObjectToHashMap(JSONObject object) throws JSONException {
174184
HashMap<String, Object> hash = new HashMap<>();

example/lib/main.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ class _MyAppState extends State<MyApp>
3939
Future<void> initPlatformState() async {
4040
if (!mounted) return;
4141

42-
OneSignal.Debug.setLogLevel(OSLogLevel.verbose);
42+
OneSignal.Debug.setLogLevel(OSLogLevel.none);
4343

4444
OneSignal.Debug.setAlertLevel(OSLogLevel.none);
4545
OneSignal.shared.consentRequired(_requireConsent);
@@ -82,11 +82,11 @@ class _MyAppState extends State<MyApp>
8282
print("Has permission " + state.toString());
8383
}
8484

85-
void onOSPushSubscriptionChangedWithState(OSPushSubscriptionState state) {
85+
void onOSPushSubscriptionChange(OSPushSubscriptionChangedState state) {
8686
print(OneSignal.User.pushSubscription.optedIn);
8787
print(OneSignal.User.pushSubscription.id);
8888
print(OneSignal.User.pushSubscription.token);
89-
print(state.jsonRepresentation());
89+
print(state.current.jsonRepresentation());
9090
}
9191

9292
void onClickInAppMessage(OSInAppMessageClickEvent event) {
@@ -244,7 +244,7 @@ class _MyAppState extends State<MyApp>
244244
OneSignal.InAppMessages.removeTriggers(keys);
245245

246246
// Toggle pausing (displaying or not) of IAMs
247-
OneSignal.InAppMessages.paused(false);
247+
OneSignal.InAppMessages.paused(true);
248248
var arePaused = await OneSignal.InAppMessages.arePaused();
249249
print('Notifications paused ${arePaused}');
250250
}

ios/Classes/OSFlutterPushSubscription.m

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,8 @@ - (void)lifecycleInit:(FlutterMethodCall *)call withResult:(FlutterResult)result
7474
result(nil);
7575
}
7676

77-
- (void)onOSPushSubscriptionChangedWithStateChanges:(OSPushSubscriptionStateChanges*)stateChanges {
78-
[self.channel invokeMethod:@"OneSignal#pushSubscriptionChanged" arguments:stateChanges.to.jsonRepresentation];
77+
- (void)onPushSubscriptionDidChangeWithState:(OSPushSubscriptionChangedState *)state {
78+
[self.channel invokeMethod:@"OneSignal#onPushSubscriptionChange" arguments:state.jsonRepresentation];
7979
}
8080

8181
@end

lib/src/pushsubscription.dart

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -67,27 +67,26 @@ class OneSignalPushSubscription {
6767

6868
// Private function that gets called by ObjC/Java
6969
Future<Null> _handleMethod(MethodCall call) async {
70-
if (call.method == 'OneSignal#pushSubscriptionChanged') {
71-
this._onSubscriptionChangedHandler(
72-
OSPushSubscriptionState(call.arguments.cast<String, dynamic>()));
70+
if (call.method == 'OneSignal#onPushSubscriptionChange') {
71+
this._onPushSubscriptionChange(OSPushSubscriptionChangedState(
72+
call.arguments.cast<String, dynamic>()));
7373
}
7474
return null;
7575
}
7676

77-
void _onSubscriptionChangedHandler(
78-
OSPushSubscriptionState stateChanges) async {
79-
print(stateChanges.jsonRepresentation());
80-
this._id = stateChanges.id;
81-
this._token = stateChanges.token;
82-
this._optedIn = stateChanges.optedIn;
77+
void _onPushSubscriptionChange(
78+
OSPushSubscriptionChangedState stateChanges) async {
79+
this._id = stateChanges.current.id;
80+
this._token = stateChanges.current.token;
81+
this._optedIn = stateChanges.current.optedIn;
8382

8483
for (var observer in _observers) {
85-
observer.onOSPushSubscriptionChangedWithState(stateChanges);
84+
observer.onOSPushSubscriptionChange(stateChanges);
8685
}
8786
}
8887
}
8988

9089
class OneSignalPushSubscriptionObserver {
91-
void onOSPushSubscriptionChangedWithState(
92-
OSPushSubscriptionState stateChanges) {}
90+
void onOSPushSubscriptionChange(
91+
OSPushSubscriptionChangedState stateChanges) {}
9392
}

lib/src/subscription.dart

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,21 +24,23 @@ class OSPushSubscriptionState extends JSONStringRepresentable {
2424
/// An instance of this class describes a change in the user's OneSignal
2525
/// push notification subscription state, ie. the user subscribed to
2626
/// push notifications with your app.
27-
class OSPushSubscriptionStateChanges extends JSONStringRepresentable {
28-
late OSPushSubscriptionState from;
29-
late OSPushSubscriptionState to;
30-
31-
OSPushSubscriptionStateChanges(Map<String, dynamic> json) {
32-
if (json.containsKey('from'))
33-
this.from = OSPushSubscriptionState(json['from'].cast<String, dynamic>());
34-
if (json.containsKey('to'))
35-
this.to = OSPushSubscriptionState(json['to'].cast<String, dynamic>());
27+
class OSPushSubscriptionChangedState extends JSONStringRepresentable {
28+
late OSPushSubscriptionState current;
29+
late OSPushSubscriptionState previous;
30+
31+
OSPushSubscriptionChangedState(Map<String, dynamic> json) {
32+
if (json.containsKey('current'))
33+
this.current =
34+
OSPushSubscriptionState(json['current'].cast<String, dynamic>());
35+
if (json.containsKey('previous'))
36+
this.previous =
37+
OSPushSubscriptionState(json['previous'].cast<String, dynamic>());
3638
}
3739

3840
String jsonRepresentation() {
3941
return convertToJsonString(<String, dynamic>{
40-
'from': from.jsonRepresentation(),
41-
'to': to.jsonRepresentation()
42+
'current': current.jsonRepresentation(),
43+
'previous': previous.jsonRepresentation()
4244
});
4345
}
4446
}

0 commit comments

Comments
 (0)