FqreaderPlugin.java 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. package info.geteasy.fqreader;
  2. import android.Manifest;
  3. import android.app.Activity;
  4. import android.content.Context;
  5. import android.content.pm.PackageManager;
  6. import android.graphics.ImageFormat;
  7. import android.graphics.Rect;
  8. import android.hardware.Camera;
  9. import android.hardware.camera2.CameraManager;
  10. import android.os.Build;
  11. import java.util.HashMap;
  12. import io.flutter.plugin.common.MethodCall;
  13. import io.flutter.plugin.common.MethodChannel;
  14. import io.flutter.plugin.common.MethodChannel.MethodCallHandler;
  15. import io.flutter.plugin.common.MethodChannel.Result;
  16. import io.flutter.plugin.common.PluginRegistry.Registrar;
  17. import io.flutter.view.FlutterView;
  18. import io.flutter.view.TextureRegistry;
  19. /** FqreaderPlugin */
  20. public class FqreaderPlugin implements MethodCallHandler {
  21. private FlutterView view;
  22. private Activity activity;
  23. private Registrar registrar;
  24. private ScanView scanView;
  25. private FqreaderPlugin(Registrar registrar, FlutterView view, Activity activity) {
  26. this.registrar = registrar;
  27. this.view = view;
  28. this.activity = activity;
  29. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
  30. if (activity.checkSelfPermission(Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
  31. activity.requestPermissions(new String[]{Manifest.permission.CAMERA}, 1);
  32. }
  33. }
  34. }
  35. /** Plugin registration. */
  36. public static void registerWith(Registrar registrar) {
  37. final MethodChannel channel = new MethodChannel(registrar.messenger(), "fqreader");
  38. channel.setMethodCallHandler(
  39. new FqreaderPlugin(registrar, registrar.view(), registrar.activity()));
  40. }
  41. @Override
  42. public void onMethodCall(MethodCall call, Result result) {
  43. switch (call.method){
  44. case "initView":
  45. if(scanView != null){
  46. result.error("ScanView","Scan Already initialized",null);
  47. return;
  48. }
  49. HashMap<String,Object> viewRectMap = call.argument("viewRect");
  50. Rect viewRect = new Rect(
  51. (int)viewRectMap .get("left"),
  52. (int)viewRectMap .get("top"),
  53. (int)viewRectMap .get("right"),
  54. (int)viewRectMap .get("bottom")
  55. );
  56. HashMap<String,Object> scanRectMap = call.argument("scanRect");
  57. Rect scanRect = new Rect(
  58. (int)scanRectMap.get("left"),
  59. (int)scanRectMap.get("top"),
  60. (int)scanRectMap.get("right"),
  61. (int)scanRectMap.get("bottom")
  62. );
  63. scanView = new ScanView(view,registrar,viewRect,scanRect,result);
  64. break;
  65. case "startScan":
  66. scanView.startScan();
  67. result.success(null);
  68. break;
  69. case "stopScan":
  70. scanView.stopScan();
  71. result.success(null);
  72. break;
  73. case "release":
  74. scanView.release();
  75. scanView = null;
  76. break;
  77. }
  78. }
  79. }