diff options
author | Alan Newberger <alann@google.com> | 2014-08-15 18:18:12 -0700 |
---|---|---|
committer | Alan Newberger <alann@google.com> | 2014-08-15 18:18:12 -0700 |
commit | 2040b56b1e0a93b38a558fa56e4b49970bd4b248 (patch) | |
tree | 76786223ad3c6294fcc77ce179fd6fa6a2e3b177 /src/com/android/camera/settings/AppUpgrader.java | |
parent | 886bcc4694071c6bf797d18754021af21a237eb9 (diff) | |
download | android_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.java | 9 |
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) { |