summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPuneet Lall <puneetl@google.com>2014-09-24 21:30:53 -0700
committerThe Android Automerger <android-build@google.com>2014-09-26 09:36:19 -0700
commit1889dae3c8048e1ce901a5d78cd0adc9ed0c7057 (patch)
treec4a33fa01c0728c5d54075b0e6ae7c52d65963c7
parent882402f8722407703a69b4a132ebd78f733cce2f (diff)
downloadandroid_packages_apps_Camera2-1889dae3c8048e1ce901a5d78cd0adc9ed0c7057.tar.gz
android_packages_apps_Camera2-1889dae3c8048e1ce901a5d78cd0adc9ed0c7057.tar.bz2
android_packages_apps_Camera2-1889dae3c8048e1ce901a5d78cd0adc9ed0c7057.zip
Recreate a OneCameraManager instance for each Activity.
Bug: 17484715 Change-Id: If484e3b40ef32324fa77629b1687cd4317466e2e
-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