package com.android.camera;
-import static com.android.camera.util.CameraUtil.Assert;
-
import android.hardware.Camera.CameraInfo;
import android.hardware.Camera.Parameters;
-import android.os.Build;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.Looper;
import android.os.Message;
import android.util.Log;
-import com.android.camera.CameraManager.CameraProxy;
+import com.android.camera.app.CameraManager;
+import com.android.camera.app.CameraManager.CameraProxy;
+import com.android.camera.app.CameraManagerFactory;
-import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
+import static com.android.camera.util.CameraUtil.Assert;
+
/**
* The class is used to hold an {@code android.hardware.Camera} instance.
*
public synchronized CameraProxy open(
Handler handler, int cameraId,
- CameraManager.CameraOpenErrorCallback cb) {
+ CameraManager.CameraOpenCallback cb) {
if (DEBUG_OPEN_RELEASE) {
collectState(cameraId, mCameraDevice);
if (mCameraOpened) {
}
Assert(!mCameraOpened);
if (mCameraDevice != null && mCameraId != cameraId) {
- mCameraDevice.release();
+ mCameraDevice.release(true);
mCameraDevice = null;
mCameraId = -1;
}
Log.v(TAG, "open camera " + cameraId);
if (mMockCameraInfo == null) {
mCameraDevice = CameraManagerFactory
- .getAndroidCameraManager().cameraOpen(handler, cameraId, cb);
+ .getAndroidCameraManager().cameraOpenOld(handler, cameraId, cb);
} else {
if (mMockCamera != null) {
mCameraDevice = mMockCamera[cameraId];
mCameraId = cameraId;
mParameters = mCameraDevice.getParameters();
} else {
- if (!mCameraDevice.reconnect(handler, cb)) {
+ if (!mCameraDevice.reconnectOld(handler, cb)) {
Log.e(TAG, "fail to reconnect Camera:" + mCameraId + ", aborting.");
return null;
}
* unavailable then return {@code null}.
*/
public synchronized CameraProxy tryOpen(
- Handler handler, int cameraId, CameraManager.CameraOpenErrorCallback cb) {
+ Handler handler, int cameraId, CameraManager.CameraOpenCallback cb) {
return (!mCameraOpened ? open(handler, cameraId, cb) : null);
}
if (mCameraDevice == null) return;
- long now = System.currentTimeMillis();
- if (now < mKeepBeforeTime) {
- if (mCameraOpened) {
- mCameraOpened = false;
- mCameraDevice.stopPreview();
- }
- mHandler.sendEmptyMessageDelayed(RELEASE_CAMERA,
- mKeepBeforeTime - now);
- return;
- }
strongRelease();
}
if (mCameraDevice == null) return;
mCameraOpened = false;
- mCameraDevice.release();
+ mCameraDevice.release(true);
mCameraDevice = null;
// We must set this to null because it has a reference to Camera.
// Camera has references to the listeners.