Skip to content

Commit 57bca48

Browse files
1 parent 8871dca commit 57bca48

File tree

4 files changed

+31
-10
lines changed

4 files changed

+31
-10
lines changed

android/src/main/java/com/github/rmtmckenzie/qrmobilevision/QrCameraC2.java

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828

2929
import java.util.ArrayList;
3030
import java.util.Arrays;
31+
import java.util.Collections;
3132
import java.util.Comparator;
3233
import java.util.HashSet;
3334
import java.util.List;
@@ -400,18 +401,35 @@ private Size getAppropriateSize(Size[] sizes) {
400401
}
401402

402403
private Size[] sortSizesAscending(Size[] sizes) {
404+
// Java code not supported on older versions of Android
405+
/*
403406
Comparator<Size> compareWidth = new Comparator<Size>() {
404407
public int compare(Size a, Size b) {
405408
return Integer.compare(a.getWidth(), b.getWidth());
406-
}
409+
@@ -412,6 +415,27 @@ public int compare(Size a, Size b) {
407410
};
408-
Comparator<Size> compareHeight = new Comparator<Size>() {
409-
public int compare(Size a, Size b) {
410-
return Integer.compare(a.getHeight(), b.getHeight());
411+
Arrays.sort(sizes, compareWidth.thenComparing(compareHeight));
412+
*/
413+
Comparator<Size> areaComparator = new Comparator<Size>() {
414+
415+
public int compare(Size size, Size size2) {
416+
if (size.equals(size2)) {
417+
return 0;
418+
}
419+
420+
long width = size.getWidth();
421+
long width2 = size2.getWidth();
422+
long area = width * size.getHeight();
423+
long area2 = width2 * size2.getHeight();
424+
425+
if (area == area2) {
426+
return (width > width2) ? 1 : -1;
427+
}
428+
429+
return (area > area2) ? 1 : -1;
411430
}
412431
};
413-
414-
Arrays.sort(sizes, compareWidth.thenComparing(compareHeight));
432+
Collections.sort(Arrays.asList(sizes), areaComparator);
415433
return sizes;
416434
}
417435
}

android/src/main/java/com/github/rmtmckenzie/qrmobilevision/QrDetector.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
import com.google.android.gms.tasks.OnFailureListener;
99
import com.google.android.gms.tasks.OnSuccessListener;
10+
import com.google.android.gms.tasks.Task;
1011
import com.google.mlkit.vision.barcode.BarcodeScanner;
1112
import com.google.mlkit.vision.barcode.BarcodeScannerOptions;
1213
import com.google.mlkit.vision.barcode.BarcodeScanning;
@@ -72,9 +73,11 @@ private void processFrame(Frame frame) {
7273
if (image != null) {
7374
detector.process(image)
7475
.addOnSuccessListener(this)
75-
.addOnFailureListener(this);
76+
.addOnFailureListener(this)
77+
.addOnCompleteListener((Task<List<Barcode>> firebaseVisionBarcodes) -> {
78+
frame.close();
79+
});
7680
}
77-
frame.close();
7881
}
7982

8083
@Override

example/android/app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
android:label="qr_mobile_vision_example"
1818
android:allowBackup="false">
1919
<activity
20-
android:name="io.flutter.embedding.android.FlutterActivity"
20+
android:name="${applicationName}"
2121
android:exported="true"
2222
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
2323
android:hardwareAccelerated="true"

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ flutter:
1919
dependencies:
2020
flutter:
2121
sdk: flutter
22-
native_device_orientation: ^1.0.0
22+
native_device_orientation: ^1.1.4
2323
device_info_plus: '>=3.0.0 <5.0.0'
2424

2525
false_secrets:

0 commit comments

Comments
 (0)