Fix ActionButton style parent tree
ActionButton uses paddingLeft/Right, whereas
ActionButton.Overflow uses start/end on v17+.
If a developer sets paddingEnd with a value less
than the parent's paddingRight, it will trump
the developers value.
Fixed by forcing paddingStart/End on the parent
style too.
BUG: 24451753
Change-Id: I4e2bceca33c24d997efa7cab23e763e963d9dab3
diff --git a/v7/appcompat/api/current.txt b/v7/appcompat/api/current.txt
index f0e90e1..2d53759 100644
--- a/v7/appcompat/api/current.txt
+++ b/v7/appcompat/api/current.txt
@@ -1106,7 +1106,6 @@
field public static int Platform_Widget_AppCompat_Spinner;
field public static int RtlOverlay_DialogWindowTitle_AppCompat;
field public static int RtlOverlay_Widget_AppCompat_ActionBar_TitleItem;
- field public static int RtlOverlay_Widget_AppCompat_ActionButton_Overflow;
field public static int RtlOverlay_Widget_AppCompat_DialogTitle_Icon;
field public static int RtlOverlay_Widget_AppCompat_PopupMenuItem;
field public static int RtlOverlay_Widget_AppCompat_PopupMenuItem_InternalGroup;
@@ -1117,6 +1116,8 @@
field public static int RtlOverlay_Widget_AppCompat_Search_DropDown_Icon2;
field public static int RtlOverlay_Widget_AppCompat_Search_DropDown_Query;
field public static int RtlOverlay_Widget_AppCompat_Search_DropDown_Text;
+ field public static int RtlUnderlay_Widget_AppCompat_ActionButton;
+ field public static int RtlUnderlay_Widget_AppCompat_ActionButton_Overflow;
field public static int TextAppearance_AppCompat;
field public static int TextAppearance_AppCompat_Body1;
field public static int TextAppearance_AppCompat_Body2;
diff --git a/v7/appcompat/res/values-v17/styles_rtl.xml b/v7/appcompat/res/values-v17/styles_rtl.xml
index 85d1bd4..b3753b7 100644
--- a/v7/appcompat/res/values-v17/styles_rtl.xml
+++ b/v7/appcompat/res/values-v17/styles_rtl.xml
@@ -47,7 +47,12 @@
<item name="android:paddingEnd">8dp</item>
</style>
- <style name="RtlOverlay.Widget.AppCompat.ActionButton.Overflow" parent="Base.Widget.AppCompat.ActionButton.Overflow">
+ <style name="RtlUnderlay.Widget.AppCompat.ActionButton" parent="android:Widget">
+ <item name="android:paddingStart">12dp</item>
+ <item name="android:paddingEnd">12dp</item>
+ </style>
+
+ <style name="RtlUnderlay.Widget.AppCompat.ActionButton.Overflow" parent="Base.Widget.AppCompat.ActionButton">
<item name="android:paddingStart">@dimen/abc_action_bar_overflow_padding_start_material</item>
<item name="android:paddingEnd">@dimen/abc_action_bar_overflow_padding_end_material</item>
</style>
@@ -73,4 +78,4 @@
<item name="android:textAlignment">viewStart</item>
</style>
-</resources>
\ No newline at end of file
+</resources>
diff --git a/v7/appcompat/res/values/styles.xml b/v7/appcompat/res/values/styles.xml
index 95d9483..6c5c776 100644
--- a/v7/appcompat/res/values/styles.xml
+++ b/v7/appcompat/res/values/styles.xml
@@ -60,8 +60,7 @@
<style name="Widget.AppCompat.ActionButton.CloseMode" parent="Base.Widget.AppCompat.ActionButton.CloseMode" />
- <style name="Widget.AppCompat.ActionButton.Overflow"
- parent="RtlOverlay.Widget.AppCompat.ActionButton.Overflow" />
+ <style name="Widget.AppCompat.ActionButton.Overflow" parent="Base.Widget.AppCompat.ActionButton.Overflow" />
<style name="Widget.AppCompat.ActionBar.TabBar"
parent="Base.Widget.AppCompat.ActionBar.TabBar">
diff --git a/v7/appcompat/res/values/styles_base.xml b/v7/appcompat/res/values/styles_base.xml
index 3017e6f..b119217 100644
--- a/v7/appcompat/res/values/styles_base.xml
+++ b/v7/appcompat/res/values/styles_base.xml
@@ -60,10 +60,8 @@
<item name="backgroundSplit">?attr/colorPrimary</item>
</style>
- <style name="Base.Widget.AppCompat.ActionButton" parent="">
+ <style name="Base.Widget.AppCompat.ActionButton" parent="RtlUnderlay.Widget.AppCompat.ActionButton">
<item name="android:background">?attr/actionBarItemBackground</item>
- <item name="android:paddingLeft">12dip</item>
- <item name="android:paddingRight">12dip</item>
<item name="android:minWidth">@dimen/abc_action_button_min_width_material</item>
<item name="android:minHeight">@dimen/abc_action_button_min_height_material</item>
<item name="android:scaleType">center</item>
@@ -76,7 +74,7 @@
<item name="android:background">?attr/controlBackground</item>
</style>
- <style name="Base.Widget.AppCompat.ActionButton.Overflow">
+ <style name="Base.Widget.AppCompat.ActionButton.Overflow" parent="RtlUnderlay.Widget.AppCompat.ActionButton.Overflow">
<item name="android:src">@drawable/abc_ic_menu_moreoverflow_mtrl_alpha</item>
<item name="android:background">?attr/actionBarItemBackground</item>
<item name="android:contentDescription">@string/abc_action_menu_overflow_description</item>
diff --git a/v7/appcompat/res/values/styles_rtl.xml b/v7/appcompat/res/values/styles_rtl.xml
index 876b396..a70aa30 100644
--- a/v7/appcompat/res/values/styles_rtl.xml
+++ b/v7/appcompat/res/values/styles_rtl.xml
@@ -47,7 +47,12 @@
<item name="android:paddingRight">8dp</item>
</style>
- <style name="RtlOverlay.Widget.AppCompat.ActionButton.Overflow" parent="Base.Widget.AppCompat.ActionButton.Overflow">
+ <style name="RtlUnderlay.Widget.AppCompat.ActionButton" parent="android:Widget">
+ <item name="android:paddingLeft">12dp</item>
+ <item name="android:paddingRight">12dp</item>
+ </style>
+
+ <style name="RtlUnderlay.Widget.AppCompat.ActionButton.Overflow" parent="Base.Widget.AppCompat.ActionButton">
<item name="android:paddingLeft">@dimen/abc_action_bar_overflow_padding_start_material</item>
<item name="android:paddingRight">@dimen/abc_action_bar_overflow_padding_end_material</item>
</style>
@@ -71,4 +76,4 @@
<style name="RtlOverlay.DialogWindowTitle.AppCompat" parent="Base.DialogWindowTitle.AppCompat">
</style>
-</resources>
\ No newline at end of file
+</resources>