@@ -231,7 +231,7 @@ private void getDeviceState(Result reply) {
231231
232232 private void postNotification (MethodCall call , final Result reply ) {
233233 JSONObject json = new JSONObject ((Map <String , Object >) call .arguments );
234- OneSignal .postNotification (json , new OSFlutterResultHandler (flutterRegistrar , channel , reply , "postNotification" ));
234+ OneSignal .postNotification (json , new OSFlutterPostNotificationHandler (flutterRegistrar , channel , reply , "postNotification" ));
235235 }
236236
237237 private void promptLocation (Result reply ) {
@@ -259,11 +259,11 @@ private void setSMSNumber(MethodCall call, final Result reply) {
259259 String smsNumber = call .argument ("smsNumber" );
260260 String smsAuthHashToken = call .argument ("smsAuthHashToken" );
261261
262- OneSignal .setSMSNumber (smsNumber , smsAuthHashToken , new OSFlutterResultHandler (flutterRegistrar , channel , reply , "setSMSNumber" ));
262+ OneSignal .setSMSNumber (smsNumber , smsAuthHashToken , new OSFlutterSMSHandler (flutterRegistrar , channel , reply , "setSMSNumber" ));
263263 }
264264
265265 private void logoutSMSNumber (final Result reply ) {
266- OneSignal .logoutSMSNumber (new OSFlutterResultHandler (flutterRegistrar , channel , reply , "logoutSMSNumber" ));
266+ OneSignal .logoutSMSNumber (new OSFlutterSMSHandler (flutterRegistrar , channel , reply , "logoutSMSNumber" ));
267267 }
268268
269269 private void setLanguage (MethodCall call , final Result result ) {
@@ -282,11 +282,11 @@ private void setExternalUserId(MethodCall call, final Result result) {
282282 if (authHashToken != null && authHashToken .length () == 0 )
283283 authHashToken = null ;
284284
285- OneSignal .setExternalUserId (externalUserId , authHashToken , new OSFlutterResultHandler (flutterRegistrar , channel , result , "setExternalUserId" ));
285+ OneSignal .setExternalUserId (externalUserId , authHashToken , new OSFlutterExternalUserIdHandler (flutterRegistrar , channel , result , "setExternalUserId" ));
286286 }
287287
288288 private void removeExternalUserId (final Result result ) {
289- OneSignal .removeExternalUserId (new OSFlutterResultHandler (flutterRegistrar , channel , result , "removeExternalUserId" ));
289+ OneSignal .removeExternalUserId (new OSFlutterExternalUserIdHandler (flutterRegistrar , channel , result , "removeExternalUserId" ));
290290 }
291291
292292 private void initNotificationOpenedHandlerParams () {
@@ -428,46 +428,98 @@ public void onFailure(EmailUpdateError error) {
428428 }
429429 }
430430
431- static class OSFlutterResultHandler extends FlutterRegistrarResponder
432- implements OneSignal .OSExternalUserIdUpdateCompletionHandler , OneSignal . OSSMSUpdateHandler , OneSignal . PostNotificationResponseHandler {
431+ static class OSFlutterSMSHandler extends FlutterRegistrarResponder
432+ implements OneSignal .OSSMSUpdateHandler {
433433 private final Result result ;
434434 private final String methodName ;
435435 private final AtomicBoolean replySubmitted = new AtomicBoolean (false );
436436
437- OSFlutterResultHandler (PluginRegistry .Registrar flutterRegistrar , MethodChannel channel , Result res , String methodName ) {
438- this .flutterRegistrar = flutterRegistrar ;
439- this .channel = channel ;
440- this .result = res ;
441- this .methodName = methodName ;
437+ OSFlutterSMSHandler (PluginRegistry .Registrar flutterRegistrar , MethodChannel channel , Result res , String methodName ) {
438+ this .flutterRegistrar = flutterRegistrar ;
439+ this .channel = channel ;
440+ this .result = res ;
441+ this .methodName = methodName ;
442442 }
443443
444444 @ Override
445445 public void onSuccess (JSONObject results ) {
446446 if (this .replySubmitted .getAndSet (true ))
447- return ;
447+ return ;
448448
449449 try {
450- replySuccess (result , OneSignalSerializer .convertJSONObjectToHashMap (results ));
450+ replySuccess (result , OneSignalSerializer .convertJSONObjectToHashMap (results ));
451451 } catch (JSONException e ) {
452- replyError (result , "OneSignal" , "Encountered an error attempting to deserialize server response for " + methodName + ": " + e .getMessage (), null );
452+ replyError (result , "OneSignal" , "Encountered an error attempting to deserialize server response for " + methodName + ": " + e .getMessage (), null );
453453 }
454454 }
455455
456456 @ Override
457457 public void onFailure (OneSignal .OSSMSUpdateError error ) {
458458 if (this .replySubmitted .getAndSet (true ))
459- return ;
459+ return ;
460460
461461 replyError (result , "OneSignal" , "Encountered an error when " + methodName + " (" + error .getType () + "): " + error .getMessage (), null );
462462 }
463+ }
464+
465+ static class OSFlutterExternalUserIdHandler extends FlutterRegistrarResponder
466+ implements OneSignal .OSExternalUserIdUpdateCompletionHandler {
467+ private final Result result ;
468+ private final String methodName ;
469+ private final AtomicBoolean replySubmitted = new AtomicBoolean (false );
470+
471+ OSFlutterExternalUserIdHandler (PluginRegistry .Registrar flutterRegistrar , MethodChannel channel , Result res , String methodName ) {
472+ this .flutterRegistrar = flutterRegistrar ;
473+ this .channel = channel ;
474+ this .result = res ;
475+ this .methodName = methodName ;
476+ }
477+
478+ @ Override
479+ public void onSuccess (JSONObject results ) {
480+ if (this .replySubmitted .getAndSet (true ))
481+ return ;
482+
483+ try {
484+ replySuccess (result , OneSignalSerializer .convertJSONObjectToHashMap (results ));
485+ } catch (JSONException e ) {
486+ replyError (result , "OneSignal" , "Encountered an error attempting to deserialize server response for " + methodName + ": " + e .getMessage (), null );
487+ }
488+ }
463489
464490 @ Override
465491 public void onFailure (OneSignal .ExternalIdError error ) {
466492 if (this .replySubmitted .getAndSet (true ))
467- return ;
493+ return ;
468494
469495 replyError (result , "OneSignal" , "Encountered an error when " + methodName + " (" + error .getType () + "): " + error .getMessage (), null );
470496 }
497+ }
498+
499+ static class OSFlutterPostNotificationHandler extends FlutterRegistrarResponder
500+ implements OneSignal .PostNotificationResponseHandler {
501+ private final Result result ;
502+ private final String methodName ;
503+ private final AtomicBoolean replySubmitted = new AtomicBoolean (false );
504+
505+ OSFlutterPostNotificationHandler (PluginRegistry .Registrar flutterRegistrar , MethodChannel channel , Result res , String methodName ) {
506+ this .flutterRegistrar = flutterRegistrar ;
507+ this .channel = channel ;
508+ this .result = res ;
509+ this .methodName = methodName ;
510+ }
511+
512+ @ Override
513+ public void onSuccess (JSONObject results ) {
514+ if (this .replySubmitted .getAndSet (true ))
515+ return ;
516+
517+ try {
518+ replySuccess (result , OneSignalSerializer .convertJSONObjectToHashMap (results ));
519+ } catch (JSONException e ) {
520+ replyError (result , "OneSignal" , "Encountered an error attempting to deserialize server response for " + methodName + ": " + e .getMessage (), null );
521+ }
522+ }
471523
472524 @ Override
473525 public void onFailure (JSONObject response ) {
0 commit comments