Skip to content

Commit

Permalink
CameraUtils.java try/catch in support flash issue dm77#235 & dm77#416
Browse files Browse the repository at this point in the history
  • Loading branch information
Hamidreza Etebarian committed Feb 28, 2019
1 parent 8d5d347 commit 66e83d8
Showing 1 changed file with 25 additions and 14 deletions.
39 changes: 25 additions & 14 deletions core/src/main/java/me/dm7/barcodescanner/core/CameraUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,16 @@
import java.util.List;

public class CameraUtils {
/** A safe way to get an instance of the Camera object. */
/**
* A safe way to get an instance of the Camera object.
*/
public static Camera getCameraInstance() {
return getCameraInstance(getDefaultCameraId());
}

/** Favor back-facing camera by default. If none exists, fallback to whatever camera is available **/
/**
* Favor back-facing camera by default. If none exists, fallback to whatever camera is available
**/
public static int getDefaultCameraId() {
int numberOfCameras = Camera.getNumberOfCameras();
Camera.CameraInfo cameraInfo = new Camera.CameraInfo();
Expand All @@ -25,36 +29,43 @@ public static int getDefaultCameraId() {
return defaultCameraId;
}

/** A safe way to get an instance of the Camera object. */
/**
* A safe way to get an instance of the Camera object.
*/
public static Camera getCameraInstance(int cameraId) {
Camera c = null;
try {
if(cameraId == -1) {
if (cameraId == -1) {
c = Camera.open(); // attempt to get a Camera instance
} else {
c = Camera.open(cameraId); // attempt to get a Camera instance
}
}
catch (Exception e) {
} catch (Exception e) {
// Camera is not available (in use or does not exist)
}
return c; // returns null if camera is unavailable
}

public static boolean isFlashSupported(Camera camera) {
/* Credits: Top answer at http://stackoverflow.com/a/19599365/868173 */
if (camera != null) {
Camera.Parameters parameters = camera.getParameters();
try {
if (camera != null) {
Camera.Parameters parameters = camera.getParameters();

if (parameters.getFlashMode() == null) {
return false;
}
if (parameters.getFlashMode() == null) {
return false;
}

List<String> supportedFlashModes = parameters.getSupportedFlashModes();
if (supportedFlashModes == null || supportedFlashModes.isEmpty() || supportedFlashModes.size() == 1 && supportedFlashModes.get(0).equals(Camera.Parameters.FLASH_MODE_OFF)) {
List<String> supportedFlashModes = parameters.getSupportedFlashModes();
if (supportedFlashModes == null || supportedFlashModes.isEmpty() || supportedFlashModes.size() == 1 && supportedFlashModes.get(0).equals(Camera.Parameters.FLASH_MODE_OFF)) {
return false;
}
} else {
return false;
}
} else {

} catch (Exception e) {
e.printStackTrace();
return false;
}

Expand Down

0 comments on commit 66e83d8

Please sign in to comment.