diff options
author | Puneet Lall <puneetl@google.com> | 2014-09-25 18:14:23 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-09-25 18:14:23 +0000 |
commit | 4d2f3bf448d8546920a3d94ce15033357388d2cc (patch) | |
tree | 1e8b9b3fd6e5faf2d659132feba79eac002ab274 | |
parent | ee3123ba4b4cc107423441bb8d687c14a2dc4b9a (diff) | |
parent | e67bcfdb989f80c8e0870bd6a74b7e2a2cf1181a (diff) | |
download | android_packages_apps_Camera2-4d2f3bf448d8546920a3d94ce15033357388d2cc.tar.gz android_packages_apps_Camera2-4d2f3bf448d8546920a3d94ce15033357388d2cc.tar.bz2 android_packages_apps_Camera2-4d2f3bf448d8546920a3d94ce15033357388d2cc.zip |
Merge "Recreate a OneCameraManager instance for each Activity." into ub-camera-glacier
-rw-r--r-- | src/com/android/camera/CameraActivity.java | 5 | ||||
-rw-r--r-- | src/com/android/camera/one/OneCameraManager.java | 19 |
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 |