summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJay Wang <jaywang@codeaurora.org>2016-06-15 14:04:34 -0700
committerJay Wang <jaywang@codeaurora.org>2016-06-15 14:21:07 -0700
commit2a6ece71ba9ffd1cfb53b03fb788108606c8e30a (patch)
treee4c259d82dd1e90e691a3280e5d9b0ad9f3a70bc
parent6e46c4d7b728ba9bdcd63e81358486f0e8869b82 (diff)
downloadandroid_packages_apps_Snap-2a6ece71ba9ffd1cfb53b03fb788108606c8e30a.tar.gz
android_packages_apps_Snap-2a6ece71ba9ffd1cfb53b03fb788108606c8e30a.tar.bz2
android_packages_apps_Snap-2a6ece71ba9ffd1cfb53b03fb788108606c8e30a.zip
SnapdragonCamera: Multiple fixes in SettingManager
- Setting manager instance was not destroyed when camera activity onDestroy is called and a new instance is created again when onCreate is called. Make change to destroy the setting manager during onDestroy. - Include high resolution picture sizes to the picture size list Change-Id: Id6cb52da1419f7e723304236b5d2c204d217398c CRs-Fixed: 1025845, 1025789
-rw-r--r--src/com/android/camera/CameraActivity.java1
-rw-r--r--src/com/android/camera/SettingsManager.java24
2 files changed, 21 insertions, 4 deletions
diff --git a/src/com/android/camera/CameraActivity.java b/src/com/android/camera/CameraActivity.java
index 74bcf5d3d..f10423163 100644
--- a/src/com/android/camera/CameraActivity.java
+++ b/src/com/android/camera/CameraActivity.java
@@ -1744,6 +1744,7 @@ public class CameraActivity extends Activity
mWakeLock.release();
Log.d(TAG, "wake lock release");
}
+ SettingsManager.getInstance().destroyInstance();
if (mCursor != null) {
getContentResolver().unregisterContentObserver(mLocalImagesObserver);
getContentResolver().unregisterContentObserver(mLocalVideosObserver);
diff --git a/src/com/android/camera/SettingsManager.java b/src/com/android/camera/SettingsManager.java
index 215ab8436..af26b27fe 100644
--- a/src/com/android/camera/SettingsManager.java
+++ b/src/com/android/camera/SettingsManager.java
@@ -85,10 +85,9 @@ public class SettingsManager implements ListMenu.SettingsListener {
public static final String KEY_LONGSHOT = "pref_camera2_longshot_key";
public static final String KEY_INITIAL_CAMERA = "pref_camera2_initial_camera_key";
private static final String TAG = "SnapCam_SettingsManager";
- private static final List<CameraCharacteristics> mCharacteristics = new ArrayList<>();
private static SettingsManager sInstance;
-
+ private ArrayList<CameraCharacteristics> mCharacteristics;
private ArrayList<Listener> mListeners;
private Map<String, Values> mValuesMap;
private Context mContext;
@@ -100,6 +99,7 @@ public class SettingsManager implements ListMenu.SettingsListener {
private SettingsManager(Context context) {
mListeners = new ArrayList<>();
+ mCharacteristics = new ArrayList<>();
mContext = context;
mPreferences = new ComboPreferences(mContext);
CameraSettings.upgradeGlobalPreferences(mPreferences.getGlobal(), mContext);
@@ -143,6 +143,12 @@ public class SettingsManager implements ListMenu.SettingsListener {
return sInstance;
}
+ public void destroyInstance() {
+ if (sInstance != null) {
+ sInstance = null;
+ }
+ }
+
public List<String> getDisabledList() {
List<String> list = new ArrayList<>();
Set<String> keySet = mValuesMap.keySet();
@@ -665,9 +671,19 @@ public class SettingsManager implements ListMenu.SettingsListener {
CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP);
Size[] sizes = map.getOutputSizes(ImageFormat.JPEG);
List<String> res = new ArrayList<>();
- for (int i = 0; i < sizes.length; i++) {
- res.add(sizes[i].toString());
+ if (sizes != null) {
+ for (int i = 0; i < sizes.length; i++) {
+ res.add(sizes[i].toString());
+ }
}
+
+ Size[] highResSizes = map.getHighResolutionOutputSizes(ImageFormat.JPEG);
+ if (highResSizes != null) {
+ for (int i = 0; i < highResSizes.length; i++) {
+ res.add(highResSizes[i].toString());
+ }
+ }
+
return res;
}