OSDN Git Service

set default flashMode and focusMode onto Camera Settings
authorSpike Sprague <spikuru@google.com>
Wed, 28 Jan 2015 03:13:44 +0000 (19:13 -0800)
committerSpike Sprague <spikuru@google.com>
Wed, 28 Jan 2015 21:03:55 +0000 (13:03 -0800)
add null checks when accessing flashMode and focusMode

bug: 18200939

Change-Id: I622deed48764ff42b5db9a7313c5bdf3253d3f69

src/com/android/camera/PhotoModule.java

index b025229..f3419ab 100644 (file)
@@ -1153,7 +1153,7 @@ public class PhotoModule
             CameraCapabilities.FocusMode focusMode) {
         CameraCapabilities.Stringifier stringifier = mCameraCapabilities.getStringifier();
         SettingsManager settingsManager = mActivity.getSettingsManager();
-        if (!CameraCapabilities.FlashMode.NO_FLASH.equals(flashMode)) {
+        if ((flashMode != null) && (!CameraCapabilities.FlashMode.NO_FLASH.equals(flashMode))) {
             String flashModeString = stringifier.stringify(flashMode);
             Log.v(TAG, "override flash setting to: " + flashModeString);
             settingsManager.set(mAppController.getCameraScope(), Keys.KEY_FLASH_MODE,
@@ -1161,10 +1161,12 @@ public class PhotoModule
         } else {
             Log.v(TAG, "skip setting flash mode on override due to NO_FLASH");
         }
-        String focusModeString = stringifier.stringify(focusMode);
-        Log.v(TAG, "override focus setting to: " + focusModeString);
-        settingsManager.set(mAppController.getCameraScope(), Keys.KEY_FOCUS_MODE,
-                focusModeString);
+        if (focusMode != null) {
+            String focusModeString = stringifier.stringify(focusMode);
+            Log.v(TAG, "override focus setting to: " + focusModeString);
+            settingsManager.set(mAppController.getCameraScope(), Keys.KEY_FOCUS_MODE,
+                    focusModeString);
+        }
     }
 
     @Override
@@ -1186,6 +1188,13 @@ public class PhotoModule
 
         // Do camera parameter dependent initialization.
         mCameraSettings = mCameraDevice.getSettings();
+        // Set a default flash mode and focus mode
+        if (mCameraSettings.getCurrentFlashMode() == null) {
+            mCameraSettings.setFlashMode(CameraCapabilities.FlashMode.NO_FLASH);
+        }
+        if (mCameraSettings.getCurrentFocusMode() == null) {
+            mCameraSettings.setFocusMode(CameraCapabilities.FocusMode.AUTO);
+        }
 
         setCameraParameters(UPDATE_PARAM_ALL);
         // Set a listener which updates camera parameters based