diff options
author | Jay Wang <jaywang@codeaurora.org> | 2016-06-15 14:04:34 -0700 |
---|---|---|
committer | Steve Kondik <steve@cyngn.com> | 2016-08-25 21:55:20 -0700 |
commit | fb0b5768fe80e4c8a50642965662682850efd14c (patch) | |
tree | ea31b2a35d89327c2ea4f5d76518c5f5976a03c2 | |
parent | df76934a0d48c3ef505d646f1ae7e6a208035714 (diff) | |
download | android_packages_apps_Snap-fb0b5768fe80e4c8a50642965662682850efd14c.tar.gz android_packages_apps_Snap-fb0b5768fe80e4c8a50642965662682850efd14c.tar.bz2 android_packages_apps_Snap-fb0b5768fe80e4c8a50642965662682850efd14c.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.java | 1 | ||||
-rw-r--r-- | src/com/android/camera/SettingsManager.java | 24 |
2 files changed, 21 insertions, 4 deletions
diff --git a/src/com/android/camera/CameraActivity.java b/src/com/android/camera/CameraActivity.java index f5d99a65a..525288370 100644 --- a/src/com/android/camera/CameraActivity.java +++ b/src/com/android/camera/CameraActivity.java @@ -1824,6 +1824,7 @@ public class CameraActivity extends Activity mWakeLock.release(); Log.d(TAG, "wake lock release"); } + SettingsManager.getInstance().destroyInstance(); if (mCursor != null) { if (mSecureCamera) { unregisterReceiver(mScreenOffReceiver); diff --git a/src/com/android/camera/SettingsManager.java b/src/com/android/camera/SettingsManager.java index 095c5d8d5..cc7523265 100644 --- a/src/com/android/camera/SettingsManager.java +++ b/src/com/android/camera/SettingsManager.java @@ -88,10 +88,9 @@ public class SettingsManager implements ListMenu.SettingsListener { public static final String KEY_TIMER = "pref_camera2_timer_key"; public static final String KEY_LONGSHOT = "pref_camera2_longshot_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; @@ -103,6 +102,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); @@ -146,6 +146,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(); @@ -683,9 +689,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; } |