Merge "Fix dialog style, selectable item bg pinning, and pressed state"
This commit is contained in:
committed by
Android (Google) Code Review
commit
aa11084c3b
@@ -4847,10 +4847,10 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
|
||||
|
||||
final float x = r.exactCenterX();
|
||||
final float y = r.exactCenterY();
|
||||
mBackground.setHotspot(Drawable.HOTSPOT_FOCUS, x, y);
|
||||
mBackground.setHotspot(R.attr.state_focused, x, y);
|
||||
|
||||
if (!focused) {
|
||||
mBackground.removeHotspot(Drawable.HOTSPOT_FOCUS);
|
||||
mBackground.removeHotspot(R.attr.state_focused);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -9092,6 +9092,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
|
||||
}
|
||||
|
||||
removeTapCallback();
|
||||
} else {
|
||||
clearHotspot(R.attr.state_pressed);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -9204,6 +9206,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
|
||||
*/
|
||||
private void removeUnsetPressCallback() {
|
||||
if ((mPrivateFlags & PFLAG_PRESSED) != 0 && mUnsetPressedState != null) {
|
||||
clearHotspot(R.attr.state_pressed);
|
||||
setPressed(false);
|
||||
removeCallbacks(mUnsetPressedState);
|
||||
}
|
||||
|
||||
@@ -15,4 +15,5 @@
|
||||
-->
|
||||
|
||||
<touch-feedback xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:tint="?attr/colorButtonPressed" />
|
||||
android:tint="?attr/colorButtonPressed"
|
||||
android:pinned="true" />
|
||||
|
||||
@@ -20,33 +20,26 @@
|
||||
android:id="@+id/parentPanel"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dip"
|
||||
android:layout_marginEnd="8dip"
|
||||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout android:id="@+id/topPanel"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
<View android:id="@+id/titleDividerTop"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="2dip"
|
||||
android:visibility="gone"
|
||||
android:background="@android:color/holo_blue_light" />
|
||||
<LinearLayout android:id="@+id/title_template"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:gravity="center_vertical|start"
|
||||
android:minHeight="@dimen/alert_dialog_title_height"
|
||||
android:layout_marginStart="16dip"
|
||||
android:layout_marginEnd="16dip">
|
||||
android:paddingStart="16dip"
|
||||
android:paddingEnd="16dip"
|
||||
android:paddingTop="16dip">
|
||||
<ImageView android:id="@+id/icon"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingEnd="8dip"
|
||||
android:src="@null" />
|
||||
<com.android.internal.widget.DialogTitle android:id="@+id/alertTitle"
|
||||
<TextView android:id="@+id/alertTitle"
|
||||
style="?android:attr/windowTitleStyle"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
@@ -54,11 +47,6 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:textAlignment="viewStart" />
|
||||
</LinearLayout>
|
||||
<View android:id="@+id/titleDivider"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="2dip"
|
||||
android:visibility="gone"
|
||||
android:background="@android:color/holo_blue_light" />
|
||||
<!-- If the client uses a customTitle, it will be added here. -->
|
||||
</LinearLayout>
|
||||
|
||||
@@ -78,8 +66,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingStart="16dip"
|
||||
android:paddingEnd="16dip"
|
||||
android:paddingTop="8dip"
|
||||
android:paddingBottom="8dip"/>
|
||||
android:paddingTop="16dip" />
|
||||
</ScrollView>
|
||||
</LinearLayout>
|
||||
|
||||
@@ -98,7 +85,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="@dimen/alert_dialog_button_bar_height"
|
||||
android:orientation="vertical"
|
||||
android:dividerPadding="0dip">
|
||||
android:padding="16dip">
|
||||
<LinearLayout
|
||||
style="?android:attr/buttonBarStyle"
|
||||
android:layout_width="match_parent"
|
||||
@@ -106,33 +93,33 @@
|
||||
android:orientation="horizontal"
|
||||
android:layoutDirection="locale"
|
||||
android:measureWithLargestChild="true">
|
||||
<Button android:id="@+id/button2"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_gravity="start"
|
||||
android:layout_weight="1"
|
||||
android:maxLines="2"
|
||||
style="?android:attr/buttonBarButtonStyle"
|
||||
android:textSize="14sp"
|
||||
android:minHeight="@dimen/alert_dialog_button_bar_height"
|
||||
android:layout_height="wrap_content" />
|
||||
<Button android:id="@+id/button3"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="start"
|
||||
android:layout_marginRight="8dip"
|
||||
android:maxLines="2"
|
||||
style="?android:attr/buttonBarButtonStyle"
|
||||
android:textSize="14sp"
|
||||
android:minHeight="@dimen/alert_dialog_button_bar_height"
|
||||
android:layout_height="wrap_content" />
|
||||
style="?android:attr/buttonBarButtonStyle" />
|
||||
<View android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1"
|
||||
android:visibility="invisible" />
|
||||
<Button android:id="@+id/button2"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="end"
|
||||
android:layout_marginRight="8dip"
|
||||
android:maxLines="2"
|
||||
android:minHeight="@dimen/alert_dialog_button_bar_height"
|
||||
style="?android:attr/buttonBarButtonStyle" />
|
||||
<Button android:id="@+id/button1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="end"
|
||||
android:layout_weight="1"
|
||||
android:maxLines="2"
|
||||
android:minHeight="@dimen/alert_dialog_button_bar_height"
|
||||
style="?android:attr/buttonBarButtonStyle"
|
||||
android:textSize="14sp"
|
||||
android:layout_height="wrap_content" />
|
||||
style="?android:attr/buttonBarButtonStyle" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
44
core/res/res/layout/dialog_custom_title_quantum.xml
Normal file
44
core/res/res/layout/dialog_custom_title_quantum.xml
Normal file
@@ -0,0 +1,44 @@
|
||||
<?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.
|
||||
-->
|
||||
|
||||
<!--
|
||||
This is a custom layout for a dialog.
|
||||
-->
|
||||
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:orientation="vertical"
|
||||
android:fitsSystemWindows="true">
|
||||
<FrameLayout android:id="@android:id/title_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/alert_dialog_title_height"
|
||||
android:layout_weight="0"
|
||||
android:gravity="center_vertical|start"
|
||||
style="?android:attr/windowTitleBackgroundStyle">
|
||||
</FrameLayout>
|
||||
<View android:id="@+id/titleDivider"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="2dip"
|
||||
android:background="@android:color/holo_blue_light" />
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent" android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:orientation="vertical"
|
||||
android:foreground="?android:attr/windowContentOverlay">
|
||||
<FrameLayout android:id="@android:id/content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
</FrameLayout>
|
||||
</LinearLayout>
|
||||
65
core/res/res/layout/dialog_title_icons_quantum.xml
Normal file
65
core/res/res/layout/dialog_title_icons_quantum.xml
Normal file
@@ -0,0 +1,65 @@
|
||||
<?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.
|
||||
-->
|
||||
|
||||
<!--
|
||||
This is an optimized layout for a screen, with the minimum set of features
|
||||
enabled.
|
||||
-->
|
||||
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:orientation="vertical"
|
||||
android:fitsSystemWindows="true">
|
||||
|
||||
<LinearLayout android:id="@+id/title_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:gravity="center_vertical"
|
||||
android:minHeight="@android:dimen/alert_dialog_title_height"
|
||||
android:paddingStart="16dip"
|
||||
android:paddingEnd="16dip">
|
||||
<ImageView android:id="@+id/left_icon"
|
||||
android:layout_width="32dip"
|
||||
android:layout_height="32dip"
|
||||
android:scaleType="fitCenter"
|
||||
android:layout_marginEnd="8dip" />
|
||||
<TextView android:id="@android:id/title"
|
||||
style="?android:attr/windowTitleStyle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="0" />
|
||||
<ImageView android:id="@+id/right_icon"
|
||||
android:layout_width="32dip"
|
||||
android:layout_height="32dip"
|
||||
android:scaleType="fitCenter"
|
||||
android:layout_marginStart="8dip" />
|
||||
</LinearLayout>
|
||||
|
||||
<View android:id="@+id/titleDivider"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dip"
|
||||
android:background="@android:color/holo_blue_light" />
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent" android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:orientation="vertical"
|
||||
android:foreground="?android:attr/windowContentOverlay">
|
||||
<FrameLayout android:id="@android:id/content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
</FrameLayout>
|
||||
</LinearLayout>
|
||||
46
core/res/res/layout/dialog_title_quantum.xml
Normal file
46
core/res/res/layout/dialog_title_quantum.xml
Normal file
@@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
/*
|
||||
** Copyright 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.
|
||||
*/
|
||||
|
||||
This is an optimized layout for a screen, with the minimum set of features
|
||||
enabled.
|
||||
-->
|
||||
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:orientation="vertical"
|
||||
android:fitsSystemWindows="true">
|
||||
<TextView android:id="@android:id/title" style="?android:attr/windowTitleStyle"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="@android:dimen/alert_dialog_title_height"
|
||||
android:paddingStart="16dip"
|
||||
android:paddingEnd="16dip"
|
||||
android:gravity="center_vertical|start" />
|
||||
<View android:id="@+id/titleDivider"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="2dip"
|
||||
android:background="@android:color/holo_blue_light" />
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent" android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:orientation="vertical"
|
||||
android:foreground="?android:attr/windowContentOverlay">
|
||||
<FrameLayout android:id="@android:id/content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
</FrameLayout>
|
||||
</LinearLayout>
|
||||
@@ -394,6 +394,7 @@ please see styles_device_defaults.xml.
|
||||
<style name="Widget.Quantum.Button" parent="Widget.Button">
|
||||
<item name="background">@drawable/btn_default_quantum</item>
|
||||
<item name="textAppearance">?attr/textAppearanceButton</item>
|
||||
<item name="textColor">?attr/textColorPrimary</item>
|
||||
<item name="minHeight">48dip</item>
|
||||
<item name="minWidth">96dip</item>
|
||||
</style>
|
||||
@@ -443,23 +444,13 @@ please see styles_device_defaults.xml.
|
||||
</style>
|
||||
|
||||
<style name="Widget.Quantum.ButtonBar">
|
||||
<item name="paddingTop">0dip</item>
|
||||
<item name="paddingStart">0dip</item>
|
||||
<item name="paddingEnd">0dip</item>
|
||||
<item name="paddingBottom">0dip</item>
|
||||
<item name="divider">?attr/dividerVertical</item>
|
||||
<item name="showDividers">middle</item>
|
||||
<item name="dividerPadding">12dip</item>
|
||||
<item name="background">@null</item>
|
||||
</style>
|
||||
|
||||
<style name="Widget.Quantum.ButtonBar.AlertDialog">
|
||||
<item name="background">@null</item>
|
||||
<item name="dividerPadding">0dp</item>
|
||||
</style>
|
||||
|
||||
<style name="Widget.Quantum.ButtonBar.Button"/>
|
||||
|
||||
<style name="Widget.Quantum.SegmentedButton" parent="SegmentedButton">
|
||||
<item name="background">@drawable/btn_group_holo_dark</item>
|
||||
</style>
|
||||
@@ -740,7 +731,7 @@ please see styles_device_defaults.xml.
|
||||
<item name="contentDescription">@string/action_menu_overflow_description</item>
|
||||
</style>
|
||||
|
||||
<style name="Widget.Quantum.ActionButton.TextButton" parent="Widget.Quantum.ButtonBar.Button"/>
|
||||
<style name="Widget.Quantum.ActionButton.TextButton" parent="Widget.Quantum.ButtonBar"/>
|
||||
|
||||
<style name="Widget.Quantum.ActionBar.TabView" parent="Widget.ActionBar.TabView">
|
||||
<item name="background">@drawable/tab_indicator_quantum</item>
|
||||
@@ -1063,8 +1054,7 @@ please see styles_device_defaults.xml.
|
||||
<style name="WindowTitle.Quantum">
|
||||
<item name="singleLine">true</item>
|
||||
<item name="textAppearance">@style/TextAppearance.Quantum.WindowTitle</item>
|
||||
<item name="shadowColor">#BB000000</item>
|
||||
<item name="shadowRadius">2.75</item>
|
||||
<item name="shadowRadius">0</item>
|
||||
</style>
|
||||
|
||||
<style name="DialogWindowTitle.Quantum">
|
||||
|
||||
@@ -162,9 +162,9 @@ please see themes_device_defaults.xml.
|
||||
|
||||
<!-- Dialog attributes -->
|
||||
<item name="dialogTheme">@style/Theme.Quantum.Dialog</item>
|
||||
<item name="dialogTitleIconsDecorLayout">@layout/dialog_title_icons_holo</item>
|
||||
<item name="dialogCustomTitleDecorLayout">@layout/dialog_custom_title_holo</item>
|
||||
<item name="dialogTitleDecorLayout">@layout/dialog_title_holo</item>
|
||||
<item name="dialogTitleIconsDecorLayout">@layout/dialog_title_icons_quantum</item>
|
||||
<item name="dialogCustomTitleDecorLayout">@layout/dialog_custom_title_quantum</item>
|
||||
<item name="dialogTitleDecorLayout">@layout/dialog_title_quantum</item>
|
||||
|
||||
<!-- AlertDialog attributes -->
|
||||
<item name="alertDialogTheme">@style/Theme.Quantum.Dialog.Alert</item>
|
||||
@@ -488,9 +488,9 @@ please see themes_device_defaults.xml.
|
||||
|
||||
<!-- Dialog attributes -->
|
||||
<item name="dialogTheme">@style/Theme.Quantum.Light.Dialog</item>
|
||||
<item name="dialogTitleIconsDecorLayout">@layout/dialog_title_icons_holo</item>
|
||||
<item name="dialogCustomTitleDecorLayout">@layout/dialog_custom_title_holo</item>
|
||||
<item name="dialogTitleDecorLayout">@layout/dialog_title_holo</item>
|
||||
<item name="dialogTitleIconsDecorLayout">@layout/dialog_title_icons_quantum</item>
|
||||
<item name="dialogCustomTitleDecorLayout">@layout/dialog_custom_title_quantum</item>
|
||||
<item name="dialogTitleDecorLayout">@layout/dialog_title_quantum</item>
|
||||
|
||||
<!-- AlertDialog attributes -->
|
||||
<item name="alertDialogTheme">@style/Theme.Quantum.Light.Dialog.Alert</item>
|
||||
|
||||
@@ -121,20 +121,6 @@ import java.util.Arrays;
|
||||
* document.</p></div>
|
||||
*/
|
||||
public abstract class Drawable {
|
||||
/**
|
||||
* Hotspot identifier mask for tracking touch points.
|
||||
*
|
||||
* @hide until hotspot APIs are finalized
|
||||
*/
|
||||
public static final int HOTSPOT_TOUCH_MASK = 0xFF;
|
||||
|
||||
/**
|
||||
* Hotspot identifier for tracking keyboard focus.
|
||||
*
|
||||
* @hide until hotspot APIs are finalized
|
||||
*/
|
||||
public static final int HOTSPOT_FOCUS = 0x100;
|
||||
|
||||
private static final Rect ZERO_BOUNDS_RECT = new Rect();
|
||||
|
||||
private int[] mStateSet = StateSet.WILD_CARD;
|
||||
|
||||
Reference in New Issue
Block a user