diff --git a/android/src/main/java/com/onesignal/flutter/OneSignalPlugin.java b/android/src/main/java/com/onesignal/flutter/OneSignalPlugin.java index a63622c7..97dcd1d4 100644 --- a/android/src/main/java/com/onesignal/flutter/OneSignalPlugin.java +++ b/android/src/main/java/com/onesignal/flutter/OneSignalPlugin.java @@ -3,6 +3,9 @@ import android.annotation.SuppressLint; import android.content.Context; +import io.flutter.embedding.engine.plugins.activity.ActivityAware; +import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding; + import com.onesignal.OSDeviceState; import com.onesignal.OSEmailSubscriptionObserver; import com.onesignal.OSEmailSubscriptionStateChanges; @@ -42,6 +45,7 @@ public class OneSignalPlugin extends FlutterRegistrarResponder implements FlutterPlugin, MethodCallHandler, + ActivityAware, OneSignal.OSNotificationOpenedHandler, OneSignal.OSInAppMessageClickHandler, OSSubscriptionObserver, @@ -96,12 +100,29 @@ private void onDetachedFromEngine() { OneSignal.setInAppMessageClickHandler(null); } + @Override + public void onAttachedToActivity(@NonNull ActivityPluginBinding binding) { + this.context = binding.getActivity(); + } + + @Override + public void onDetachedFromActivity() { + } + + @Override + public void onReattachedToActivityForConfigChanges(@NonNull ActivityPluginBinding binding) { + } + + @Override + public void onDetachedFromActivityForConfigChanges() { + } + // This static method is only to remain compatible with apps that don’t use the v2 Android embedding. @Deprecated() @SuppressLint("Registrar") public static void registerWith(Registrar registrar) { final OneSignalPlugin plugin = new OneSignalPlugin(); - plugin.init(registrar.context(), registrar.messenger()); + plugin.init(registrar.activeContext(), registrar.messenger()); // Create a callback for the flutterRegistrar to connect the applications onDestroy registrar.addViewDestroyListener(new PluginRegistry.ViewDestroyListener() {