summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--camera2/portability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.java6
-rw-r--r--camera2/portability/src/com/android/ex/camera2/portability/CameraCapabilities.java13
2 files changed, 15 insertions, 4 deletions
diff --git a/camera2/portability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.java b/camera2/portability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.java
index e675796..d139c62 100644
--- a/camera2/portability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.java
+++ b/camera2/portability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.java
@@ -35,6 +35,7 @@ import android.hardware.camera2.TotalCaptureResult;
import android.hardware.camera2.params.MeteringRectangle;
import android.media.Image;
import android.media.ImageReader;
+import android.media.MediaActionSound;
import android.os.Build;
import android.os.Handler;
import android.os.HandlerThread;
@@ -63,6 +64,7 @@ class AndroidCamera2AgentImpl extends CameraAgent {
private final CameraStateHolder mCameraState;
private final DispatchThread mDispatchThread;
private final CameraManager mCameraManager;
+ private final MediaActionSound mNoisemaker;
/**
* Number of camera devices. The length of {@code mCameraDevices} does not reveal this
@@ -88,6 +90,8 @@ class AndroidCamera2AgentImpl extends CameraAgent {
mDispatchThread = new DispatchThread(mCameraHandler, mCameraHandlerThread);
mDispatchThread.start();
mCameraManager = (CameraManager) context.getSystemService(Context.CAMERA_SERVICE);
+ mNoisemaker = new MediaActionSound();
+ mNoisemaker.load(MediaActionSound.SHUTTER_CLICK);
mNumCameraDevices = 0;
mCameraDevices = new ArrayList<String>();
@@ -915,7 +919,6 @@ class AndroidCamera2AgentImpl extends CameraAgent {
}});
}
- // TODO: Implement
@Override
public void takePicture(final Handler handler,
final CameraShutterCallback shutter,
@@ -932,6 +935,7 @@ class AndroidCamera2AgentImpl extends CameraAgent {
handler.post(new Runnable() {
@Override
public void run() {
+ mNoisemaker.play(MediaActionSound.SHUTTER_CLICK);
shutter.onShutter(AndroidCamera2ProxyImpl.this);
}});
}
diff --git a/camera2/portability/src/com/android/ex/camera2/portability/CameraCapabilities.java b/camera2/portability/src/com/android/ex/camera2/portability/CameraCapabilities.java
index 6a4c72c..3dc19f7 100644
--- a/camera2/portability/src/com/android/ex/camera2/portability/CameraCapabilities.java
+++ b/camera2/portability/src/com/android/ex/camera2/portability/CameraCapabilities.java
@@ -720,9 +720,16 @@ public class CameraCapabilities {
private boolean focusCheck(final CameraSettings settings) {
FocusMode focusMode = settings.getCurrentFocusMode();
if (!supports(focusMode)) {
- Log.v(TAG,
- "Focus mode not supported:" + (focusMode != null ? focusMode.name() : "null"));
- return false;
+ if (supports(FocusMode.FIXED)) {
+ // Workaround for devices whose templates define defaults they don't really support
+ // TODO: Remove workaround (b/17177436)
+ Log.w(TAG, "Focus mode not supported... trying FIXED");
+ settings.setFocusMode(FocusMode.FIXED);
+ } else {
+ Log.v(TAG, "Focus mode not supported:" +
+ (focusMode != null ? focusMode.name() : "null"));
+ return false;
+ }
}
return true;
}