Reconcile with jb-release

Change-Id: Idee820191b52f081d94c11787fe89452e1bf073d
diff --git a/res/layout/camera_control.xml b/res/layout/camera_control.xml
index 3595849..9e05183 100644
--- a/res/layout/camera_control.xml
+++ b/res/layout/camera_control.xml
@@ -14,11 +14,12 @@
      limitations under the License.
 -->
 
+<!-- minHeight is necessary to avoid distortion or overlapping. -->
 <com.android.camera.ui.ControlPanelLayout xmlns:android="http://schemas.android.com/apk/res/android"
         android:id="@+id/control_panel"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:minHeight="76dp"
+        android:minHeight="105dp"
         android:background="@drawable/bg_camera_pattern">
     <include layout="@layout/review_thumbnail" />
     <include layout="@layout/review_control" />
diff --git a/res/layout/mode_picker.xml b/res/layout/mode_picker.xml
index 1b5e16b..27eb0b0 100644
--- a/res/layout/mode_picker.xml
+++ b/res/layout/mode_picker.xml
@@ -19,15 +19,14 @@
             android:layout_width="wrap_content"
             android:layout_alignParentLeft="true"
             android:visibility="gone">
+    <!-- minHeight in camera_control.xml is used to avoid overlapping of current_mode. -->
     <RelativeLayout android:id="@+id/current_mode"
-            android:orientation="horizontal"
             android:layout_alignLeft="@+id/mode_selection"
             android:layout_height="match_parent"
             android:layout_width="55dp"
             android:contentDescription="@string/accessibility_mode_picker"
             android:background="@drawable/bg_mode_picker">
         <RelativeLayout
-                android:orientation="vertical"
                 android:contentDescription="@string/empty"
                 android:layout_height="match_parent"
                 android:layout_width="match_parent">
diff --git a/src/com/android/camera/ui/ControlPanelLayout.java b/src/com/android/camera/ui/ControlPanelLayout.java
index 24efb8b..c3ae9c0 100644
--- a/src/com/android/camera/ui/ControlPanelLayout.java
+++ b/src/com/android/camera/ui/ControlPanelLayout.java
@@ -66,7 +66,13 @@
             Log.e(TAG, "layout_xxx of ControlPanelLayout should be wrap_content");
         }
 
-        // The width cannot be bigger than the constraint.
+        // The size cannot be smaller than minimum constraint.
+        int minimumSize = (isLandscape) ? getMinimumWidth() : getMinimumHeight();
+        if (measuredSize < minimumSize) {
+            measuredSize = minimumSize;
+        }
+
+        // The size cannot be bigger than the constraint.
         if (mode == MeasureSpec.AT_MOST && measuredSize > specSize) {
             measuredSize = specSize;
         }