Merge "SnapdragonCamera: fix app freeze with HDR and Macro+"
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java
index 8517d22..71cb0e4 100644
--- a/src/com/android/camera/PhotoModule.java
+++ b/src/com/android/camera/PhotoModule.java
@@ -3488,6 +3488,22 @@
                 .pref_camera_advanced_feature_value_refocus_on);
         String optizoomOn = mActivity.getString(R.string
                 .pref_camera_advanced_feature_value_optizoom_on);
+        if (refocusOn.equals(mSceneMode)) {
+            try {
+                mSceneMode = Parameters.SCENE_MODE_AUTO;
+                mUI.setPreference(CameraSettings.KEY_ADVANCED_FEATURES, refocusOn);
+                mUI.showRefocusDialog();
+            } catch (NullPointerException e) {
+            }
+        } else if (optizoomOn.equals(mSceneMode)) {
+            try {
+                mSceneMode = Parameters.SCENE_MODE_AUTO;
+                mUI.setPreference(CameraSettings.KEY_ADVANCED_FEATURES, optizoomOn);
+            } catch (NullPointerException e) {
+            }
+        } else if (mSceneMode == null) {
+            mSceneMode = Parameters.SCENE_MODE_AUTO;
+        }
 
         if (CameraUtil.isSupported(mSceneMode, mParameters.getSupportedSceneModes())) {
             if (!mParameters.getSceneMode().equals(mSceneMode)) {
@@ -3499,24 +3515,6 @@
                 mCameraDevice.setParameters(mParameters);
                 mParameters = mCameraDevice.getParameters();
             }
-        } else {
-            if (refocusOn.equals(mSceneMode)) {
-                try {
-                    mUI.setPreference(CameraSettings.KEY_ADVANCED_FEATURES, refocusOn);
-                    mUI.showRefocusDialog();
-                } catch (NullPointerException e) {
-                }
-            } else if (optizoomOn.equals(mSceneMode)) {
-                try {
-                    mUI.setPreference(CameraSettings.KEY_ADVANCED_FEATURES, optizoomOn);
-                } catch (NullPointerException e) {
-                }
-            } else {
-                mSceneMode = mParameters.getSceneMode();
-                if (mSceneMode == null) {
-                    mSceneMode = Parameters.SCENE_MODE_AUTO;
-                }
-            }
         }
 
         // Set JPEG quality.