Skip to content

Commit 8871dca

Browse files
Fix autofocus
1 parent 8074fb2 commit 8871dca

File tree

4 files changed

+41
-30
lines changed

4 files changed

+41
-30
lines changed

android/gradle.properties

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
1+
android.useAndroidX=true
2+
android.enableJetifier=true
13
org.gradle.jvmargs=-Xmx1536M
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
#Wed Mar 28 09:56:16 PDT 2018
1+
#Wed Dec 21 10:30:36 BRT 2022
22
distributionBase=GRADLE_USER_HOME
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
34
distributionPath=wrapper/dists
4-
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
6+
zipStoreBase=GRADLE_USER_HOME

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,15 @@ public void start(final int cameraDirection) throws QrReader.Exception {
9595

9696
final android.hardware.Camera.Parameters parameters = camera.getParameters();
9797

98+
List<String> sceneModes = parameters.getSupportedSceneModes();
99+
if(sceneModes.contains(android.hardware.Camera.Parameters.SCENE_MODE_BARCODE)){
100+
Log.i(TAG, "Initializing with barcode scene mode.");
101+
parameters.setSceneMode(android.hardware.Camera.Parameters.SCENE_MODE_BARCODE);
102+
} else{
103+
Log.i(TAG, "Initializing with default scene mode.");
104+
parameters.setSceneMode(android.hardware.Camera.Parameters.SCENE_MODE_AUTO);
105+
}
106+
98107
List<String> focusModes = parameters.getSupportedFocusModes();
99108
if (focusModes.contains(android.hardware.Camera.Parameters.FOCUS_MODE_AUTO)) {
100109
Log.i(TAG, "Initializing with autofocus on.");

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

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,22 @@ public void close() {
235235

236236
}
237237

238+
private Integer getSceneMode() {
239+
240+
int[] availableSceneModes = cameraCharacteristics.get(CameraCharacteristics.CONTROL_AVAILABLE_SCENE_MODES);
241+
List<Integer> sceneModes = new ArrayList<Integer>(availableSceneModes.length);
242+
for (int i : availableSceneModes) sceneModes.add(i);
243+
244+
Log.i(TAG, "Available scene modes: " + sceneModes);
245+
246+
if (sceneModes.contains(CameraCharacteristics.CONTROL_SCENE_MODE_BARCODE))
247+
return CameraMetadata.CONTROL_SCENE_MODE_BARCODE;
248+
else if (sceneModes.contains(CameraCharacteristics.CONTROL_SCENE_MODE_DISABLED))
249+
return CameraMetadata.CONTROL_SCENE_MODE_DISABLED;
250+
else
251+
return CameraMetadata.CONTROL_SCENE_MODE_ACTION;
252+
}
253+
238254
private void startCamera() {
239255
List<Surface> list = new ArrayList<>();
240256

@@ -265,20 +281,13 @@ public void onImageAvailable(ImageReader reader) {
265281
previewBuilder = cameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
266282
previewBuilder.addTarget(list.get(0));
267283
previewBuilder.addTarget(list.get(1));
284+
Integer sceneMode = getSceneMode();
268285

269-
Integer afMode = afMode(cameraCharacteristics);
286+
Log.i(TAG, "Initialize scene mode: " + sceneMode.toString());
270287

288+
previewBuilder.set(CaptureRequest.CONTROL_SCENE_MODE, sceneMode);
271289
previewBuilder.set(CaptureRequest.CONTROL_MODE, CameraMetadata.CONTROL_MODE_AUTO);
272290

273-
if (afMode != null) {
274-
previewBuilder.set(CaptureRequest.CONTROL_AF_MODE, afMode);
275-
Log.i(TAG, "Setting af mode to: " + afMode);
276-
if (afMode == CONTROL_AF_MODE_AUTO) {
277-
previewBuilder.set(CaptureRequest.CONTROL_AF_TRIGGER, CaptureRequest.CONTROL_AF_TRIGGER_START);
278-
} else {
279-
previewBuilder.set(CaptureRequest.CONTROL_AF_TRIGGER, CaptureRequest.CONTROL_AF_TRIGGER_CANCEL);
280-
}
281-
}
282291
} catch (java.lang.Exception e) {
283292
e.printStackTrace();
284293
return;
@@ -319,39 +328,30 @@ public void onCaptureCompleted(@NonNull CameraCaptureSession session, @NonNull C
319328
}
320329
}
321330

322-
public void turnOnFlashLight()
323-
{
324-
try
325-
{
331+
public void turnOnFlashLight() {
332+
try {
326333
previewBuilder.set(CaptureRequest.FLASH_MODE, CameraMetadata.FLASH_MODE_TORCH);
327334
previewSession.setRepeatingRequest(previewBuilder.build(), null, null);
328-
}
329-
catch (Exception e)
330-
{
335+
} catch (Exception e) {
331336
e.printStackTrace();
332337
}
333338
}
334339

335-
public void turnOffFlashLight()
336-
{
337-
try
338-
{
340+
public void turnOffFlashLight() {
341+
try {
339342
previewBuilder.set(CaptureRequest.FLASH_MODE, CameraMetadata.FLASH_MODE_OFF);
340343
previewSession.setRepeatingRequest(previewBuilder.build(), null, null);
341-
}
342-
catch (Exception e)
343-
{
344+
} catch (Exception e) {
344345
e.printStackTrace();
345346
}
346347
}
347348

348349
@Override
349350
public void toggleFlash() {
350-
if(isFlashOn) {
351+
if (isFlashOn) {
351352
turnOffFlashLight();
352353
isFlashOn = false;
353-
}
354-
else {
354+
} else {
355355
turnOnFlashLight();
356356
isFlashOn = true;
357357
}

0 commit comments

Comments
 (0)