Wrapping some code in try catches, so they don't fail on older devices. Samsung Tab 4 was crashing because it didn't have a flash or autofocus.

This commit is contained in:
Jacob Hargrave 2016-03-22 11:48:35 -04:00 committed by Daniel Cousens
parent 38721b19b2
commit 6b651aae65

View File

@ -333,19 +333,20 @@ implements SurfaceHolder.Callback {
} }
public void toggleFlash(View view) public void toggleFlash(View view) {
{
camera.startPreview(); camera.startPreview();
android.hardware.Camera.Parameters camParams = camera.getParameters(); android.hardware.Camera.Parameters camParams = camera.getParameters();
//If the flash is set to off //If the flash is set to off
if(camParams.getFlashMode().equals(Parameters.FLASH_MODE_OFF) && !(camParams.getFlashMode().equals(Parameters.FLASH_MODE_TORCH))&& !(camParams.getFlashMode().equals(Parameters.FLASH_MODE_ON))) try {
if (camParams.getFlashMode().equals(Parameters.FLASH_MODE_OFF) && !(camParams.getFlashMode().equals(Parameters.FLASH_MODE_TORCH)) && !(camParams.getFlashMode().equals(Parameters.FLASH_MODE_ON)))
camParams.setFlashMode(Parameters.FLASH_MODE_TORCH); camParams.setFlashMode(Parameters.FLASH_MODE_TORCH);
else //if(camParams.getFlashMode() == Parameters.FLASH_MODE_ON || camParams.getFlashMode()== Parameters.FLASH_MODE_TORCH) else //if(camParams.getFlashMode() == Parameters.FLASH_MODE_ON || camParams.getFlashMode()== Parameters.FLASH_MODE_TORCH)
camParams.setFlashMode(Parameters.FLASH_MODE_OFF); camParams.setFlashMode(Parameters.FLASH_MODE_OFF);
try } catch(RuntimeException e) {
{
}
try {
// camera.setParameters(camParams); // camera.setParameters(camParams);
camera.setPreviewDisplay(holder); camera.setPreviewDisplay(holder);
camera.setPreviewCallback(previewCb); camera.setPreviewCallback(previewCb);
@ -362,11 +363,7 @@ implements SurfaceHolder.Callback {
//tryStartPreview(); //tryStartPreview();
//camParams.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE); //camParams.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
camera.setParameters(camParams); camera.setParameters(camParams);
} catch(RuntimeException e) {
}
catch(RuntimeException e)
{
Log.d("csZBar", (new StringBuilder("Unsupported camera parameter reported for flash mode: ")).append(flashMode).toString()); Log.d("csZBar", (new StringBuilder("Unsupported camera parameter reported for flash mode: ")).append(flashMode).toString());
} catch (IOException e) { } catch (IOException e) {
Log.d("csZBar", (new StringBuilder("Wrong holder data")).append(flashMode).toString()); Log.d("csZBar", (new StringBuilder("Wrong holder data")).append(flashMode).toString());
@ -531,8 +528,12 @@ implements SurfaceHolder.Callback {
//camParams.setFlashMode(Parameters.FLASH_MODE_TORCH); //camParams.setFlashMode(Parameters.FLASH_MODE_TORCH);
try {
camParams.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE); camParams.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
camera.setParameters(camParams); camera.setParameters(camParams);
} catch (Exception e) {
// TODO: don't swallow
}
camera.setPreviewDisplay(holder); camera.setPreviewDisplay(holder);
camera.setPreviewCallback(previewCb); camera.setPreviewCallback(previewCb);