File tree Expand file tree Collapse file tree 7 files changed +40
-2
lines changed
android/src/main/java/com/onesignal/flutter Expand file tree Collapse file tree 7 files changed +40
-2
lines changed Original file line number Diff line number Diff line change @@ -120,6 +120,8 @@ else if (call.method.contentEquals("OneSignal#setExternalUserId"))
120
120
this .setExternalUserId (call , result );
121
121
else if (call .method .contentEquals ("OneSignal#removeExternalUserId" ))
122
122
this .removeExternalUserId (result );
123
+ else if (call .method .contentEquals ("OneSignal#setLanguage" ))
124
+ this .setLanguage (call , result );
123
125
else if (call .method .contentEquals ("OneSignal#initNotificationOpenedHandlerParams" ))
124
126
this .initNotificationOpenedHandlerParams ();
125
127
else if (call .method .contentEquals ("OneSignal#initInAppMessageClickedHandlerParams" ))
@@ -337,6 +339,14 @@ public void onFailure(OneSignal.OSSMSUpdateError error) {
337
339
});
338
340
}
339
341
342
+ private void setLanguage (MethodCall call , final Result result ) {
343
+ String language = call .argument ("language" );
344
+ if (language != null && language .length () == 0 )
345
+ language = null ;
346
+
347
+ OneSignal .setLanguage (language );
348
+ }
349
+
340
350
private void setExternalUserId (MethodCall call , final Result result ) {
341
351
String externalUserId = call .argument ("externalUserId" );
342
352
String authHashToken = call .argument ("authHashToken" );
Original file line number Diff line number Diff line change @@ -32,7 +32,7 @@ target 'Runner' do
32
32
end
33
33
34
34
target 'OneSignalNotificationServiceExtension' do
35
- pod 'OneSignalXCFramework' , '3.5.3 '
35
+ pod 'OneSignalXCFramework' , '3.6.0 '
36
36
end
37
37
38
38
post_install do |installer |
Original file line number Diff line number Diff line change @@ -142,6 +142,8 @@ - (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult)result {
142
142
[self setExternalUserId: call withResult: result];
143
143
else if ([@" OneSignal#removeExternalUserId" isEqualToString: call.method])
144
144
[self removeExternalUserId: call withResult: result];
145
+ else if ([@" OneSignal#setLanguage" isEqualToString: call.method])
146
+ [self setLanguage: call withResult: result];
145
147
else if ([@" OneSignal#initNotificationOpenedHandlerParams" isEqualToString: call.method])
146
148
[self initNotificationOpenedHandlerParams ];
147
149
else if ([@" OneSignal#initInAppMessageClickedHandlerParams" isEqualToString: call.method])
@@ -320,6 +322,15 @@ - (void)removeExternalUserId:(FlutterMethodCall *)call withResult:(FlutterResult
320
322
}];
321
323
}
322
324
325
+ - (void )setLanguage : (FlutterMethodCall *)call withResult : (FlutterResult)result {
326
+ id language = call.arguments [@" language" ];
327
+ if (language == [NSNull null ]) {
328
+ language = nil ;
329
+ }
330
+
331
+ [OneSignal setLanguage: language];
332
+ }
333
+
323
334
- (void )initNotificationOpenedHandlerParams {
324
335
[OneSignal setNotificationOpenedHandler: ^(OSNotificationOpenedResult * _Nonnull result) {
325
336
[OneSignalPlugin.sharedInstance handleNotificationOpened: result];
Original file line number Diff line number Diff line change @@ -13,7 +13,7 @@ Pod::Spec.new do |s|
13
13
s . source_files = 'Classes/**/*'
14
14
s . public_header_files = 'Classes/**/*.h'
15
15
s . dependency 'Flutter'
16
- s . dependency 'OneSignalXCFramework' , '3.5.3 '
16
+ s . dependency 'OneSignalXCFramework' , '3.6.0 '
17
17
s . ios . deployment_target = '9.0'
18
18
s . static_framework = true
19
19
end
Original file line number Diff line number Diff line change @@ -329,6 +329,12 @@ class OneSignal {
329
329
return results.cast <String , dynamic >();
330
330
}
331
331
332
+ Future <Map <String , dynamic >> setLanguage (String language) async {
333
+ Map <dynamic , dynamic > results =
334
+ await (_channel.invokeMethod ("OneSignal#setLanguage" , {'language' : language}));
335
+ return results.cast <String , dynamic >();
336
+ }
337
+
332
338
/// Adds a single key, value trigger, which will trigger an in app message
333
339
/// if one exists matching the specific trigger added
334
340
Future <void > addTrigger (String key, Object value) async {
Original file line number Diff line number Diff line change @@ -67,6 +67,9 @@ class OneSignalMockChannelController {
67
67
case "OneSignal#removeExternalUserId" :
68
68
this .state.externalId = null ;
69
69
return {"success" : true };
70
+ case "OneSignal#setLanguage" :
71
+ this .state.language = (call.arguments as Map <dynamic , dynamic >)['language' ] as String ? ;
72
+ return {"success" : true };
70
73
}
71
74
}
72
75
}
@@ -93,6 +96,7 @@ class OneSignalState {
93
96
OSNotificationDisplayType ? inFocusDisplayType;
94
97
bool ? disablePush;
95
98
String ? externalId;
99
+ String ? language;
96
100
97
101
// tags
98
102
Map <dynamic , dynamic >? tags;
Original file line number Diff line number Diff line change @@ -109,4 +109,11 @@ void main() {
109
109
expect (channelController.state.externalId, null );
110
110
}));
111
111
});
112
+
113
+ //Set Language test
114
+ test ('setting language' , () {
115
+ onesignal.setLanguage ('fr' ).then (expectAsync1 ((v) {
116
+ expect (channelController.state.language, 'fr' );
117
+ }));
118
+ });
112
119
}
You can’t perform that action at this time.
0 commit comments