@@ -71,6 +71,7 @@ public class AppsflyerSdkPlugin implements MethodCallHandler, FlutterPlugin, Act
7171 private Boolean gcdCallback = false ;
7272 private Boolean oaoaCallback = false ;
7373 private Boolean udlCallback = false ;
74+ private Boolean validatePurchaseCallback = false ;
7475
7576 private void onAttachedToEngine (Context applicationContext , BinaryMessenger messenger ) {
7677 this .mContext = applicationContext ;
@@ -108,6 +109,9 @@ private void startListening(Object arguments, Result rawResult) {
108109 if (callbackName .equals (AppsFlyerConstants .AF_UDL_CALLBACK )){
109110 udlCallback = true ;
110111 }
112+ if (callbackName .equals (AppsFlyerConstants .AF_VALIDATE_PURCHASE )){
113+ validatePurchaseCallback = true ;
114+ }
111115 Map <String , Object > args = new HashMap <>();
112116 args .put ("id" , callbackName );
113117 mCallbacks .put (callbackName , args );
@@ -379,12 +383,14 @@ private void registerValidatorListener() {
379383 AppsFlyerInAppPurchaseValidatorListener validatorListener = new AppsFlyerInAppPurchaseValidatorListener () {
380384 @ Override
381385 public void onValidateInApp () {
382- JSONObject obj = new JSONObject ();
383-
384386 try {
385- obj .put ("status" , AF_SUCCESS );
386- obj .put ("type" , AF_VALIDATE_PURCHASE );
387- sendEventToDart (obj , AF_EVENTS_CHANNEL );
387+ JSONObject obj = new JSONObject ();
388+ if (validatePurchaseCallback ){
389+ runOnUIThread (obj , AppsFlyerConstants .AF_VALIDATE_PURCHASE , AF_SUCCESS );
390+ }else {
391+ obj .put ("status" , AF_SUCCESS );
392+ sendEventToDart (obj , AF_EVENTS_CHANNEL );
393+ }
388394 } catch (JSONException e ) {
389395 e .printStackTrace ();
390396 }
@@ -393,12 +399,15 @@ public void onValidateInApp() {
393399
394400 @ Override
395401 public void onValidateInAppFailure (String s ) {
396- JSONObject obj = new JSONObject ();
397402 try {
398- obj .put ("status" , AF_FAILURE );
399- obj .put ("type" , AF_VALIDATE_PURCHASE );
403+ JSONObject obj = new JSONObject ();
400404 obj .put ("error" , s );
401- sendEventToDart (obj , AF_EVENTS_CHANNEL );
405+ if (validatePurchaseCallback ){
406+ runOnUIThread (obj , AppsFlyerConstants .AF_VALIDATE_PURCHASE , AF_FAILURE );
407+ }else {
408+ obj .put ("status" , AF_FAILURE );
409+ sendEventToDart (obj , AF_EVENTS_CHANNEL );
410+ }
402411 } catch (JSONException e ) {
403412 e .printStackTrace ();
404413 }
0 commit comments