OSDN Git Service

Major refactor: Make resources access through app.
[android-x86/packages-apps-Camera2.git] / src / com / android / camera / CameraHolder.java
index e3f2c11..4603dd8 100644 (file)
 
 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.
  *
@@ -190,7 +190,7 @@ public class CameraHolder {
 
     public synchronized CameraProxy open(
             Handler handler, int cameraId,
-            CameraManager.CameraOpenErrorCallback cb) {
+            CameraManager.CameraOpenCallback cb) {
         if (DEBUG_OPEN_RELEASE) {
             collectState(cameraId, mCameraDevice);
             if (mCameraOpened) {
@@ -200,7 +200,7 @@ public class CameraHolder {
         }
         Assert(!mCameraOpened);
         if (mCameraDevice != null && mCameraId != cameraId) {
-            mCameraDevice.release();
+            mCameraDevice.release(true);
             mCameraDevice = null;
             mCameraId = -1;
         }
@@ -208,7 +208,7 @@ public class CameraHolder {
             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];
@@ -224,7 +224,7 @@ public class CameraHolder {
             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;
             }
@@ -241,7 +241,7 @@ public class CameraHolder {
      * 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);
     }
 
@@ -252,16 +252,6 @@ public class CameraHolder {
 
         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();
     }
 
@@ -269,7 +259,7 @@ public class CameraHolder {
         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.