diff options
Diffstat (limited to 'src/com/android/camera/DisableCameraReceiver.java')
-rw-r--r-- | src/com/android/camera/DisableCameraReceiver.java | 30 |
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) { |