summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/android/camera/CameraActivity.java5
-rw-r--r--src/com/android/camera/one/OneCameraManager.java19
2 files changed, 10 insertions, 14 deletions
diff --git a/src/com/android/camera/CameraActivity.java b/src/com/android/camera/CameraActivity.java
index a368b982e..571a692a4 100644
--- a/src/com/android/camera/CameraActivity.java
+++ b/src/com/android/camera/CameraActivity.java
@@ -194,6 +194,7 @@ public class CameraActivity extends Activity
*/
private LocalDataAdapter mDataAdapter;
+ private OneCameraManager mCameraManager;
private SettingsManager mSettingsManager;
private ModeListView mModeListView;
private boolean mModeListVisible = false;
@@ -1260,7 +1261,7 @@ public class CameraActivity extends Activity
@Override
public OneCameraManager getCameraManager() {
- return OneCameraManager.get(this);
+ return mCameraManager;
}
private void removeData(int dataID) {
@@ -1331,6 +1332,8 @@ public class CameraActivity extends Activity
mAppContext = getApplicationContext();
mSoundPlayer = new SoundPlayer(mAppContext);
+ mCameraManager = OneCameraManager.get(this);
+
// TODO: Try to move all the resources allocation to happen as soon as
// possible so we can call module.init() at the earliest time.
mModuleManager = new ModuleManagerImpl();
diff --git a/src/com/android/camera/one/OneCameraManager.java b/src/com/android/camera/one/OneCameraManager.java
index 13f7dfe0b..4c78f3576 100644
--- a/src/com/android/camera/one/OneCameraManager.java
+++ b/src/com/android/camera/one/OneCameraManager.java
@@ -20,6 +20,7 @@ import android.content.Context;
import android.hardware.camera2.CameraAccessException;
import android.hardware.camera2.CameraCharacteristics;
import android.hardware.camera2.CameraManager;
+import android.os.Build;
import android.util.DisplayMetrics;
import android.view.WindowManager;
@@ -58,22 +59,11 @@ public abstract class OneCameraManager {
public abstract boolean hasCameraFacing(Facing facing);
/**
- * Singleton camera manager to be used throughout the app.
- */
- private static OneCameraManager sCameraManager;
-
- /**
- * Returns a camera manager that is based on Camera2 API, if available, or
+ * Creates a camera manager that is based on Camera2 API, if available, or
* otherwise uses the portability layer API.
- * <p>
- * The instance is created the first time this method is called and cached
- * in a singleton thereafter, so successive calls are cheap.
*/
public static OneCameraManager get(CameraActivity activity) {
- if (sCameraManager == null) {
- sCameraManager = create(activity);
- }
- return sCameraManager;
+ return create(activity);
}
/**
@@ -105,6 +95,9 @@ public abstract class OneCameraManager {
* HALs.
*/
private static boolean isCamera2Supported(CameraManager cameraManager) {
+ if (Build.VERSION.SDK_INT < 21) {
+ return false;
+ }
try {
final String id = cameraManager.getCameraIdList()[0];
// TODO: We should check for all the flags we need to ensure the