summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/java/com/android/internal/widget/ActionBarView.java17
-rw-r--r--core/res/res/layout-w720dp/action_bar_home.xml36
-rw-r--r--core/res/res/layout/action_bar_home.xml6
-rw-r--r--core/res/res/values-w720dp/dimens.xml24
-rw-r--r--core/res/res/values/dimens.xml8
5 files changed, 52 insertions, 39 deletions
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.Context;
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 @@ public class ActionBarView extends ViewGroup {
}
@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>