@@ -329,7 +329,7 @@ private void setLanguage(MethodCall call, final Result result) {
329
329
if (language != null && language .length () == 0 )
330
330
language = null ;
331
331
332
- OneSignal .setLanguage (language );
332
+ OneSignal .setLanguage (language , new OSFlutterSetLanguageHandler ( messenger , channel , result , "setLanguage" ) );
333
333
}
334
334
335
335
private void setExternalUserId (MethodCall call , final Result result ) {
@@ -603,6 +603,47 @@ public void onFailure(JSONObject response) {
603
603
}
604
604
}
605
605
606
+ static class OSFlutterSetLanguageHandler extends OSFlutterHandler
607
+ implements OneSignal .OSSetLanguageCompletionHandler {
608
+
609
+ OSFlutterSetLanguageHandler (BinaryMessenger messenger , MethodChannel channel , Result res , String methodName ) {
610
+ super (messenger , channel , res , methodName );
611
+ }
612
+
613
+ @ Override
614
+ public void onSuccess (String results ) {
615
+ if (this .replySubmitted .getAndSet (true )) {
616
+ OneSignal .onesignalLog (OneSignal .LOG_LEVEL .DEBUG , "OneSignal " + methodName + " handler called twice, ignoring! response: " + results );
617
+ return ;
618
+ }
619
+
620
+ if (results == null ) { // The results currently is always null.
621
+ results = "Successfully set language." ;
622
+ }
623
+
624
+ HashMap <String , Object > responseMap = new HashMap <>();
625
+ responseMap .put ("success" , true );
626
+ responseMap .put ("message" , results );
627
+ replySuccess (result , responseMap );
628
+ }
629
+
630
+ @ Override
631
+ public void onFailure (OneSignal .OSLanguageError error ) {
632
+ if (this .replySubmitted .getAndSet (true )) {
633
+ return ;
634
+ }
635
+
636
+ String errorMessage = error .getMessage ();
637
+ if (errorMessage == null ) {
638
+ errorMessage = "Failed to set language." ;
639
+ }
640
+
641
+ replyError (result , "OneSignal" ,
642
+ "Encountered an error when " + methodName + ": " + errorMessage ,
643
+ null );
644
+ }
645
+ }
646
+
606
647
static class OSFlutterHandler extends FlutterRegistrarResponder {
607
648
protected final Result result ;
608
649
protected final String methodName ;
0 commit comments