summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
Diffstat (limited to 'src/com')
-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 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;
}