Skip to content

Commit 57c686c

Browse files
authored
fix: Handle NullPointerException and some wanring at google_mlkit_commons (#651)
* fix: Handle NullPointerException and some wanring at google_mlkit_commons * chore: bump the version to 0.8.0
1 parent 9b974cf commit 57c686c

File tree

4 files changed

+31
-15
lines changed

4 files changed

+31
-15
lines changed

packages/google_mlkit_commons/CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
## 0.8.0
2+
3+
* Handle NullPointer Exception in `InputImageConverter.java`
4+
* Fix warnings
5+
16
## 0.7.2
27

38
* Widened image format support for Android

packages/google_mlkit_commons/android/src/main/java/com/google_mlkit_commons/GoogleMlKitCommonsPlugin.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
import io.flutter.embedding.engine.plugins.FlutterPlugin;
66
import io.flutter.plugin.common.MethodCall;
77
import io.flutter.plugin.common.MethodChannel;
8-
import io.flutter.plugin.common.MethodChannel.MethodCallHandler;
9-
import io.flutter.plugin.common.MethodChannel.Result;
108

119
public class GoogleMlKitCommonsPlugin implements FlutterPlugin, MethodChannel.MethodCallHandler {
1210
private MethodChannel channel;

packages/google_mlkit_commons/android/src/main/java/com/google_mlkit_commons/InputImageConverter.java

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import java.io.File;
1010
import java.io.IOException;
1111
import java.util.Map;
12+
import java.util.Objects;
1213

1314
import io.flutter.plugin.common.MethodChannel;
1415

@@ -21,27 +22,39 @@ public static InputImage getInputImageFromData(Map<String, Object> imageData,
2122
//Differentiates whether the image data is a path for a image file or contains image data in form of bytes
2223
String model = (String) imageData.get("type");
2324
InputImage inputImage;
24-
if (model.equals("file")) {
25+
if (model != null && model.equals("file")) {
2526
try {
2627
inputImage = InputImage.fromFilePath(context, Uri.fromFile(new File(((String) imageData.get("path")))));
2728
return inputImage;
2829
} catch (IOException e) {
2930
Log.e("ImageError", "Getting Image failed");
30-
e.printStackTrace();
31+
Log.e("ImageError", e.toString());
3132
result.error("InputImageConverterError", e.toString(), null);
3233
return null;
3334
}
34-
} else if (model.equals("bytes")) {
35-
Map<String, Object> metaData = (Map<String, Object>) imageData.get("metadata");
36-
inputImage = InputImage.fromByteArray((byte[]) imageData.get("bytes"),
37-
(int) (double) metaData.get("width"),
38-
(int) (double) metaData.get("height"),
39-
(int) metaData.get("rotation"),
40-
(int) metaData.get("image_format"));
41-
return inputImage;
4235
} else {
43-
result.error("InputImageConverterError", "Invalid Input Image", null);
44-
return null;
36+
if (model != null && model.equals("bytes")) {
37+
try {
38+
@SuppressWarnings("unchecked")
39+
Map<String, Object> metaData = (Map<String, Object>) imageData.get("metadata");
40+
41+
assert metaData != null;
42+
inputImage = InputImage.fromByteArray((byte[]) Objects.requireNonNull(imageData.get("bytes")),
43+
Double.valueOf(Objects.requireNonNull(metaData.get("width")).toString()).intValue(),
44+
Double.valueOf(Objects.requireNonNull(metaData.get("height")).toString()).intValue(),
45+
Integer.parseInt(Objects.requireNonNull(metaData.get("rotation")).toString()),
46+
Integer.parseInt(Objects.requireNonNull(metaData.get("image_format")).toString()));
47+
return inputImage;
48+
} catch (Exception e) {
49+
Log.e("ImageError", "Getting Image failed");
50+
Log.e("ImageError", e.toString());
51+
result.error("InputImageConverterError", e.toString(), null);
52+
return null;
53+
}
54+
} else {
55+
result.error("InputImageConverterError", "Invalid Input Image", null);
56+
return null;
57+
}
4558
}
4659
}
4760

packages/google_mlkit_commons/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: google_mlkit_commons
22
description: A Flutter plugin with commons files to implement google's standalone ml kit made for mobile platform.
3-
version: 0.7.2
3+
version: 0.8.0
44
homepage: https://github.com/flutter-ml/google_ml_kit_flutter
55

66
environment:

0 commit comments

Comments
 (0)