summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/settings/AppUpgrader.java
diff options
context:
space:
mode:
authorAlan Newberger <alann@google.com>2014-08-15 18:18:12 -0700
committerAlan Newberger <alann@google.com>2014-08-15 18:18:12 -0700
commit2040b56b1e0a93b38a558fa56e4b49970bd4b248 (patch)
tree76786223ad3c6294fcc77ce179fd6fa6a2e3b177 /src/com/android/camera/settings/AppUpgrader.java
parent886bcc4694071c6bf797d18754021af21a237eb9 (diff)
downloadandroid_packages_apps_Camera2-2040b56b1e0a93b38a558fa56e4b49970bd4b248.tar.gz
android_packages_apps_Camera2-2040b56b1e0a93b38a558fa56e4b49970bd4b248.tar.bz2
android_packages_apps_Camera2-2040b56b1e0a93b38a558fa56e4b49970bd4b248.zip
Protect Camera2 functions from null CameraDeviceInfo
When the underlying camera fails, the camera1 agent returns null for CameraDeviceInfo. Guard against this case where it is used in app upgrading and settings. Bug: 16982203 Change-Id: I7e4686e508993f0d0fc03eaa9e0b5dc312016eae
Diffstat (limited to 'src/com/android/camera/settings/AppUpgrader.java')
-rw-r--r--src/com/android/camera/settings/AppUpgrader.java9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/com/android/camera/settings/AppUpgrader.java b/src/com/android/camera/settings/AppUpgrader.java
index ef2acd433..9b78e2ff6 100644
--- a/src/com/android/camera/settings/AppUpgrader.java
+++ b/src/com/android/camera/settings/AppUpgrader.java
@@ -265,6 +265,15 @@ public class AppUpgrader extends SettingsUpgrader {
return;
}
+ // infos might be null if the underlying camera device is broken. In
+ // that case, just delete the old settings and force the user to
+ // reselect, it's the least evil solution given we want to only upgrade
+ // settings once.
+ if (infos == null) {
+ settingsManager.remove(SettingsManager.SCOPE_GLOBAL, key);
+ return;
+ }
+
String pictureSize = settingsManager.getString(SettingsManager.SCOPE_GLOBAL, key);
int camera = SettingsUtil.getCameraId(infos, facing);
if (camera != -1) {