Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -17,20 +17,20 @@
import java.util.Map;

import io.flutter.embedding.android.FlutterActivity;

import io.flutter.embedding.android.FlutterFragmentActivity;
import io.flutter.embedding.engine.plugins.FlutterPlugin;
import io.flutter.embedding.engine.plugins.activity.ActivityAware;
import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding;
import io.flutter.embedding.engine.plugins.lifecycle.FlutterLifecycleAdapter;
import io.flutter.plugin.common.BinaryMessenger;
import io.flutter.plugin.common.EventChannel;
import io.flutter.plugin.common.EventChannel.StreamHandler;
import io.flutter.plugin.common.MethodCall;
import io.flutter.plugin.common.MethodChannel;
import io.flutter.plugin.common.MethodChannel.MethodCallHandler;
import io.flutter.plugin.common.MethodChannel.Result;
import io.flutter.plugin.common.PluginRegistry;
import io.flutter.plugin.common.PluginRegistry.ActivityResultListener;
import io.flutter.plugin.common.EventChannel.StreamHandler;
import io.flutter.embedding.engine.plugins.lifecycle.FlutterLifecycleAdapter;


/**
Expand All @@ -39,7 +39,7 @@
public class FlutterBarcodeScannerPlugin implements MethodCallHandler, ActivityResultListener, StreamHandler, FlutterPlugin, ActivityAware {
private static final String CHANNEL = "flutter_barcode_scanner";

private static FlutterActivity activity;
private static FlutterFragmentActivity activity;
private static Result pendingResult;
private Map<String, Object> arguments;

Expand Down Expand Up @@ -68,7 +68,7 @@ public class FlutterBarcodeScannerPlugin implements MethodCallHandler, ActivityR
public FlutterBarcodeScannerPlugin() {
}

private FlutterBarcodeScannerPlugin(FlutterActivity activity, final PluginRegistry.Registrar registrar) {
private FlutterBarcodeScannerPlugin(FlutterFragmentActivity activity, final PluginRegistry.Registrar registrar) {
FlutterBarcodeScannerPlugin.activity = activity;
}

Expand All @@ -84,7 +84,7 @@ public static void registerWith(final PluginRegistry.Registrar registrar) {
if (registrar.context() != null) {
applicationContext = (Application) (registrar.context().getApplicationContext());
}
FlutterBarcodeScannerPlugin instance = new FlutterBarcodeScannerPlugin((FlutterActivity) registrar.activity(), registrar);
FlutterBarcodeScannerPlugin instance = new FlutterBarcodeScannerPlugin((FlutterFragmentActivity) registrar.activity(), registrar);
instance.createPluginSetup(registrar.messenger(), applicationContext, activity, registrar, null);
}

Expand Down Expand Up @@ -245,7 +245,7 @@ private void createPluginSetup(
final ActivityPluginBinding activityBinding) {


this.activity = (FlutterActivity) activity;
this.activity = (FlutterFragmentActivity) activity;
eventChannel =
new EventChannel(messenger, "flutter_barcode_scanner_receiver");
eventChannel.setStreamHandler(this);
Expand Down Expand Up @@ -292,12 +292,20 @@ private void clearPluginSetup() {
activity = null;
activityBinding.removeActivityResultListener(this);
activityBinding = null;
lifecycle.removeObserver(observer);
lifecycle = null;
channel.setMethodCallHandler(null);
eventChannel.setStreamHandler(null);
channel = null;
applicationContext.unregisterActivityLifecycleCallbacks(observer);
if (observer != null && lifecycle != null) {
lifecycle.removeObserver(observer);
lifecycle = null;
}
if (channel != null) {
channel.setMethodCallHandler(null);
channel = null;
}
if (eventChannel != null) {
eventChannel.setStreamHandler(null);
}
if (observer != null) {
applicationContext.unregisterActivityLifecycleCallbacks(observer);
}
applicationContext = null;
}

Expand Down Expand Up @@ -372,4 +380,4 @@ public void onActivityStopped(Activity activity) {

}
}
}
}