summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/DisableCameraReceiver.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/camera/DisableCameraReceiver.java')
-rw-r--r--src/com/android/camera/DisableCameraReceiver.java30
1 files changed, 18 insertions, 12 deletions
diff --git a/src/com/android/camera/DisableCameraReceiver.java b/src/com/android/camera/DisableCameraReceiver.java
index 4cef85f46..624874184 100644
--- a/src/com/android/camera/DisableCameraReceiver.java
+++ b/src/com/android/camera/DisableCameraReceiver.java
@@ -23,6 +23,8 @@ import android.content.Intent;
import android.content.pm.PackageManager;
import android.hardware.Camera.CameraInfo;
import android.util.Log;
+import com.android.camera.util.CameraUtil;
+import org.codeaurora.snapcam.R;
// We want to disable camera-related activities if there is no camera. This
// receiver runs when BOOT_COMPLETED intent is received. After running once
@@ -33,9 +35,21 @@ public class DisableCameraReceiver extends BroadcastReceiver {
private static final String ACTIVITIES[] = {
"com.android.camera.CameraLauncher",
};
+ private boolean mCamera2supported = false;
+ private boolean mCamera2enabled = false;
@Override
public void onReceive(Context context, Intent intent) {
+ // Check if the device supports Camera API 2
+ mCamera2supported = CameraUtil.isCamera2Supported(context);
+ Log.d(TAG, "Camera API 2 supported: " + mCamera2supported);
+
+ mCamera2enabled = mCamera2supported &&
+ context.getResources().getBoolean(R.bool.support_camera_api_v2);
+ Log.d(TAG, "Camera API 2 enabled: " + mCamera2enabled);
+
+ CameraHolder.setCamera2Mode(context, mCamera2enabled);
+
// Disable camera-related activities if there is no camera.
boolean needCameraActivity = CHECK_BACK_CAMERA_ONLY
? hasBackCamera()
@@ -53,23 +67,15 @@ public class DisableCameraReceiver extends BroadcastReceiver {
}
private boolean hasCamera() {
- int n = android.hardware.Camera.getNumberOfCameras();
+ int n = CameraHolder.instance().getNumberOfCameras();
Log.i(TAG, "number of camera: " + n);
return (n > 0);
}
private boolean hasBackCamera() {
- int n = android.hardware.Camera.getNumberOfCameras();
- CameraInfo info = new CameraInfo();
- for (int i = 0; i < n; i++) {
- android.hardware.Camera.getCameraInfo(i, info);
- if (info.facing == CameraInfo.CAMERA_FACING_BACK) {
- Log.i(TAG, "back camera found: " + i);
- return true;
- }
- }
- Log.i(TAG, "no back camera");
- return false;
+ int backCameraId = CameraHolder.instance().getBackCameraId();
+ Log.i(TAG, backCameraId == -1 ? "no back camera" : ("back camera found: " + backCameraId));
+ return backCameraId != -1;
}
private void disableComponent(Context context, String klass) {