diff --git a/android/src/main/java/com/appsflyer/appsflyersdk/AppsflyerSdkPlugin.java b/android/src/main/java/com/appsflyer/appsflyersdk/AppsflyerSdkPlugin.java index 27c1967..0861db4 100644 --- a/android/src/main/java/com/appsflyer/appsflyersdk/AppsflyerSdkPlugin.java +++ b/android/src/main/java/com/appsflyer/appsflyersdk/AppsflyerSdkPlugin.java @@ -173,16 +173,6 @@ public void onMethodCall(MethodCall call, Result result) { } }; - private void onAttachedToEngine(Context applicationContext, BinaryMessenger messenger) { - this.mContext = applicationContext; - this.mEventChannel = new EventChannel(messenger, AF_EVENTS_CHANNEL); - mMethodChannel = new MethodChannel(messenger, AppsFlyerConstants.AF_METHOD_CHANNEL); - mMethodChannel.setMethodCallHandler(this); - mCallbackChannel = new MethodChannel(messenger, AppsFlyerConstants.AF_CALLBACK_CHANNEL); - mCallbackChannel.setMethodCallHandler(callbacksHandler); - } - - private void startListening(Object arguments, Result rawResult) { // Get callback id String callbackName = (String) arguments; @@ -393,15 +383,17 @@ private void anonymizeUser(MethodCall call, Result result) { } private void startSDKwithHandler(MethodCall call, final Result result) { + Log.d(AF_PLUGIN_TAG, "startSDKwithHandler - " + this + " MethodChannel - " + mMethodChannel); + final MethodChannel _channel = mMethodChannel; try { final AppsFlyerLib appsFlyerLib = AppsFlyerLib.getInstance(); - + AppsFlyerLib.getInstance().stop(false, mContext); appsFlyerLib.start(activity, null, new AppsFlyerRequestListener() { @Override public void onSuccess() { uiThreadHandler.post(() -> { - if (mMethodChannel != null) { - mMethodChannel.invokeMethod("onSuccess", null); + if (_channel != null) { + _channel.invokeMethod("onSuccess", null); } else { Log.e(AF_PLUGIN_TAG, LogMessages.METHOD_CHANNEL_IS_NULL + " - SDK started successfully but callback `onSuccess` failed"); } @@ -411,11 +403,11 @@ public void onSuccess() { @Override public void onError(final int errorCode, final String errorMessage) { uiThreadHandler.post(() -> { - if (mMethodChannel != null) { + if (_channel != null) { HashMap errorDetails = new HashMap<>(); errorDetails.put("errorCode", errorCode); errorDetails.put("errorMessage", errorMessage); - mMethodChannel.invokeMethod("onError", errorDetails); + _channel.invokeMethod("onError", errorDetails); } else { Log.e(AF_PLUGIN_TAG, LogMessages.METHOD_CHANNEL_IS_NULL + " - SDK failed to start: " + errorMessage); } @@ -739,11 +731,12 @@ public void onResponseError(final String error) { } private void runOnUIThread(final Object data, final String callbackName, final String status) { + final MethodChannel _channel = mCallbackChannel; uiThreadHandler.post( new Runnable() { @Override public void run() { - if (mCallbackChannel != null) { + if (_channel != null) { Log.d(AF_PLUGIN_TAG, "Calling invokeMethod with: " + data); JSONObject args = new JSONObject(); try { @@ -766,7 +759,7 @@ public void run() { } catch (JSONException e) { e.printStackTrace(); } - mCallbackChannel.invokeMethod("callListener", args.toString()); + _channel.invokeMethod("callListener", args.toString()); } else { Log.e(AF_PLUGIN_TAG, "CallbackChannel is null, cannot invoke method: " + callbackName); } @@ -1225,12 +1218,22 @@ private void disableAppSetId(MethodCall call, Result result) { @Override public void onAttachedToEngine(FlutterPluginBinding binding) { - onAttachedToEngine(binding.getApplicationContext(), binding.getBinaryMessenger()); + Log.d(AF_PLUGIN_TAG, "onAttachedToEngine - " + this); + this.mContext = binding.getApplicationContext(); + BinaryMessenger messenger = binding.getBinaryMessenger(); + this.mEventChannel = new EventChannel(messenger, AF_EVENTS_CHANNEL); + mMethodChannel = new MethodChannel(messenger, AppsFlyerConstants.AF_METHOD_CHANNEL); + mMethodChannel.setMethodCallHandler(this); + Log.d(AF_PLUGIN_TAG, "onAttachedToEngine - " + this + " MethodChannel - " + mMethodChannel); + mCallbackChannel = new MethodChannel(messenger, AppsFlyerConstants.AF_CALLBACK_CHANNEL); + mCallbackChannel.setMethodCallHandler(callbacksHandler); + Log.d(AF_PLUGIN_TAG, "onAttachedToEngine - " + this + " mCallbackChannel - " + mCallbackChannel); AppsFlyerPurchaseConnector.INSTANCE.onAttachedToEngine(binding); } @Override public void onDetachedFromEngine(FlutterPluginBinding binding) { + Log.d(AF_PLUGIN_TAG, "onDetachedFromEngine - " + this); mMethodChannel.setMethodCallHandler(null); mMethodChannel = null; mEventChannel.setStreamHandler(null); @@ -1242,6 +1245,7 @@ public void onDetachedFromEngine(FlutterPluginBinding binding) { @Override public void onAttachedToActivity(ActivityPluginBinding binding) { + Log.d(AF_PLUGIN_TAG, "onAttachedToActivity - " + this); activity = binding.getActivity(); mApplication = binding.getActivity().getApplication(); binding.addOnNewIntentListener(onNewIntentListener); @@ -1249,11 +1253,13 @@ public void onAttachedToActivity(ActivityPluginBinding binding) { @Override public void onDetachedFromActivityForConfigChanges() { + Log.d(AF_PLUGIN_TAG, "onDetachedFromActivityForConfigChanges - " + this); this.activity = null; } @Override public void onReattachedToActivityForConfigChanges(ActivityPluginBinding binding) { + Log.d(AF_PLUGIN_TAG, "onReattachedToActivityForConfigChanges - " + this); sendCachedCallbacksToDart(); binding.addOnNewIntentListener(onNewIntentListener); activity = binding.getActivity(); @@ -1261,6 +1267,7 @@ public void onReattachedToActivityForConfigChanges(ActivityPluginBinding binding @Override public void onDetachedFromActivity() { + Log.d(AF_PLUGIN_TAG, "onDetachedFromActivity - " + this); activity = null; saveCallbacks = true; AppsFlyerLib.getInstance().unregisterConversionListener();