DO NOT MERGE Action bar config changes

Handle action bar padding on configuration changes when the app
handles these changes itself.

Change-Id: I044da9253a0be6b4bbabdc12891b6d4786725afa
diff --git a/core/java/com/android/internal/widget/ActionBarView.java b/core/java/com/android/internal/widget/ActionBarView.java
index cc51911..891557d 100644
--- a/core/java/com/android/internal/widget/ActionBarView.java
+++ b/core/java/com/android/internal/widget/ActionBarView.java
@@ -28,6 +28,8 @@
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.PackageManager.NameNotFoundException;
+import android.content.res.Configuration;
+import android.content.res.Resources;
 import android.content.res.TypedArray;
 import android.graphics.drawable.Drawable;
 import android.text.TextUtils;
@@ -980,6 +982,21 @@
         }
 
         @Override
+        public void onConfigurationChanged(Configuration newConfig) {
+            super.onConfigurationChanged(newConfig);
+
+            // Make sure we reload positioning elements that may change with configuration.
+            Resources res = getContext().getResources();
+            final int imagePadding = res.getDimensionPixelSize(
+                    com.android.internal.R.dimen.action_bar_home_image_padding);
+            final int upMargin = res.getDimensionPixelSize(
+                    com.android.internal.R.dimen.action_bar_home_up_margin);
+            mIconView.setPadding(imagePadding, getPaddingTop(), imagePadding, getPaddingBottom());
+            ((LayoutParams) mUpView.getLayoutParams()).rightMargin = upMargin;
+            mUpView.requestLayout();
+        }
+
+        @Override
         protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
             measureChildWithMargins(mUpView, widthMeasureSpec, 0, heightMeasureSpec, 0);
             final LayoutParams upLp = (LayoutParams) mUpView.getLayoutParams();
diff --git a/core/res/res/layout-w720dp/action_bar_home.xml b/core/res/res/layout-w720dp/action_bar_home.xml
deleted file mode 100644
index ece1a34..0000000
--- a/core/res/res/layout-w720dp/action_bar_home.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<view xmlns:android="http://schemas.android.com/apk/res/android"
-      class="com.android.internal.widget.ActionBarView$HomeView"
-      android:layout_width="wrap_content"
-      android:layout_height="match_parent"
-      android:background="?android:attr/selectableItemBackground" >
-    <ImageView android:id="@android:id/up"
-               android:src="?android:attr/homeAsUpIndicator"
-               android:layout_gravity="center_vertical|left"
-               android:visibility="gone"
-               android:layout_width="wrap_content"
-               android:layout_height="wrap_content"
-               android:layout_marginRight="-12dip" />
-    <ImageView android:id="@android:id/home"
-               android:layout_width="wrap_content"
-               android:layout_height="wrap_content"
-               android:paddingLeft="16dip"
-               android:paddingRight="16dip"
-               android:layout_gravity="center"
-               android:scaleType="center" />
-</view>
diff --git a/core/res/res/layout/action_bar_home.xml b/core/res/res/layout/action_bar_home.xml
index a45432a..a4c0962 100644
--- a/core/res/res/layout/action_bar_home.xml
+++ b/core/res/res/layout/action_bar_home.xml
@@ -25,12 +25,12 @@
                android:visibility="gone"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
-               android:layout_marginRight="-4dip" />
+               android:layout_marginRight="@dimen/action_bar_home_up_margin" />
     <ImageView android:id="@android:id/home"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
-               android:paddingLeft="8dip"
-               android:paddingRight="8dip"
+               android:paddingLeft="@dimen/action_bar_home_image_padding"
+               android:paddingRight="@dimen/action_bar_home_image_padding"
                android:layout_gravity="center"
                android:scaleType="center" />
 </view>
diff --git a/core/res/res/values-w720dp/dimens.xml b/core/res/res/values-w720dp/dimens.xml
new file mode 100644
index 0000000..a74c41c
--- /dev/null
+++ b/core/res/res/values-w720dp/dimens.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<resources>
+    <!-- Size of the margin between the 'up' visual and the image in
+         the action bar home section. -->
+    <dimen name="action_bar_home_up_margin">-12dip</dimen>
+    <!-- Size of the padding on either side of the app-supplied image
+         in the action bar home section. -->
+    <dimen name="action_bar_home_image_padding">16dip</dimen>
+</resources>
diff --git a/core/res/res/values/dimens.xml b/core/res/res/values/dimens.xml
index 05840a4..02193c3 100644
--- a/core/res/res/values/dimens.xml
+++ b/core/res/res/values/dimens.xml
@@ -81,4 +81,12 @@
     <dimen name="alert_dialog_title_height">48dip</dimen>
     <!-- Dialog button bar height -->
     <dimen name="alert_dialog_button_bar_height">48dip</dimen>
+
+    <!-- Size of the margin between the 'up' visual and the image in
+         the action bar home section. -->
+    <dimen name="action_bar_home_up_margin">-4dip</dimen>
+    <!-- Size of the padding on either side of the app-supplied image
+         in the action bar home section. -->
+    <dimen name="action_bar_home_image_padding">8dip</dimen>
+
 </resources>