Implement return to hdr plus after switch to front facing camera.

Bug: 12894444
Change-Id: Ia9c0cba83f0ee99f2156e9e58f4fff1af9b6100f
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java
index 6430447..980f6e5 100644
--- a/src/com/android/camera/PhotoModule.java
+++ b/src/com/android/camera/PhotoModule.java
@@ -447,9 +447,24 @@
             new ButtonManager.ButtonCallback() {
                 @Override
                 public void onStateChanged(int state) {
+                    // At the time this callback is fired, the camera id
+                    // has be set to the desired camera.
+
                     if (mPaused || mPendingSwitchCameraId != -1) {
                         return;
                     }
+                    // If switching to back camera, and HDR+ is still on,
+                    // switch back to gcam, otherwise handle callback normally.
+                    SettingsManager settingsManager = mActivity.getSettingsManager();
+                    if (settingsManager.isCameraBackFacing()) {
+                        if (settingsManager.requestsReturnToHdrPlus()) {
+                            settingsManager.set(SettingsManager.SETTING_CAMERA_HDR,
+                                SettingsManager.VALUE_ON);
+                            mHandler.sendEmptyMessage(MSG_SWITCH_TO_GCAM_MODULE);
+                            return;
+                        }
+                    }
+
                     mPendingSwitchCameraId = state;
 
                     Log.v(TAG, "Start to switch camera. cameraId=" + state);