Add dividers on a few preferences

Fix: 36023418
Fix: 36058273

Test: visual
- On top of emergency preference
- On top of footer preference

Change-Id: Iefbbf0ad410d46c466f919ecb60b572dd6f1ea28
This commit is contained in:
Fan Zhang
2017-03-08 13:29:45 -08:00
parent e32788c630
commit fbefd9ea01
6 changed files with 20 additions and 23 deletions

View File

@@ -20,7 +20,6 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight" android:minHeight="?android:attr/listPreferredItemHeight"
android:gravity="center_vertical"
android:paddingStart="?android:attr/listPreferredItemPaddingStart" android:paddingStart="?android:attr/listPreferredItemPaddingStart"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
android:background="?android:attr/selectableItemBackground" android:background="?android:attr/selectableItemBackground"
@@ -31,15 +30,15 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:minWidth="60dp" android:minWidth="60dp"
android:gravity="start|center_vertical" android:gravity="start|top"
android:orientation="horizontal" android:orientation="horizontal"
android:paddingEnd="12dp" android:paddingEnd="12dp"
android:paddingTop="4dp" android:paddingTop="20dp"
android:paddingBottom="4dp"> android:paddingBottom="4dp">
<com.android.internal.widget.PreferenceImageView <ImageView
android:id="@android:id/icon" android:id="@android:id/icon"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content"/> android:layout_height="wrap_content" />
</LinearLayout> </LinearLayout>
<com.android.settingslib.widget.LinkTextView <com.android.settingslib.widget.LinkTextView
@@ -50,6 +49,6 @@
android:paddingTop="16dp" android:paddingTop="16dp"
android:maxLines="10" android:maxLines="10"
android:textColor="?android:attr/textColorSecondary" android:textColor="?android:attr/textColorSecondary"
android:ellipsize="marquee"/> android:ellipsize="marquee" />
</LinearLayout> </LinearLayout>

View File

@@ -92,6 +92,8 @@
<attr name="apnPreferenceStyle" format="reference" /> <attr name="apnPreferenceStyle" format="reference" />
<attr name="footerPreferenceStyle" format="reference" />
<!-- For Search --> <!-- For Search -->
<declare-styleable name="Preference"> <declare-styleable name="Preference">
<attr name="keywords" format="string" /> <attr name="keywords" format="string" />

View File

@@ -38,6 +38,11 @@
<item name="android:layout">@layout/apn_preference_layout</item> <item name="android:layout">@layout/apn_preference_layout</item>
</style> </style>
<style name="FooterPreference" parent="SettingsPreference">
<item name="android:layout">@layout/preference_footer</item>
<item name="allowDividerAbove">true</item>
</style>
<style name="EditTextPreference" <style name="EditTextPreference"
parent="@style/Preference.DialogPreference.EditTextPreference.Material"> parent="@style/Preference.DialogPreference.EditTextPreference.Material">
<item name="allowDividerAbove">false</item> <item name="allowDividerAbove">false</item>

View File

@@ -81,6 +81,7 @@
<!-- Parent path frameworks/support/v14/preference/res/values/themes.xml --> <!-- Parent path frameworks/support/v14/preference/res/values/themes.xml -->
<item name="android:scrollbars">vertical</item> <item name="android:scrollbars">vertical</item>
<item name="apnPreferenceStyle">@style/ApnPreference</item> <item name="apnPreferenceStyle">@style/ApnPreference</item>
<item name="footerPreferenceStyle">@style/FooterPreference</item>
<item name="dialogPreferenceStyle">@style/SettingsDialogPreference</item> <item name="dialogPreferenceStyle">@style/SettingsDialogPreference</item>
<item name="dropdownPreferenceStyle">@style/SettingsDropdownPreference</item> <item name="dropdownPreferenceStyle">@style/SettingsDropdownPreference</item>
<item name="editTextPreferenceStyle">@style/EditTextPreference</item> <item name="editTextPreferenceStyle">@style/EditTextPreference</item>

View File

@@ -23,7 +23,8 @@
<Preference <Preference
android:key="emergency_info" android:key="emergency_info"
android:title="@string/emergency_info_title" android:title="@string/emergency_info_title"
android:order="100"/> android:order="100"
settings:allowDividerAbove="true"/>
<PreferenceCategory <PreferenceCategory
android:key="account_configuration_header" android:key="account_configuration_header"

View File

@@ -17,6 +17,7 @@
package com.android.settings.widget; package com.android.settings.widget;
import android.content.Context; import android.content.Context;
import android.support.v4.content.res.TypedArrayUtils;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceViewHolder; import android.support.v7.preference.PreferenceViewHolder;
import android.text.method.LinkMovementMethod; import android.text.method.LinkMovementMethod;
@@ -34,36 +35,24 @@ public class FooterPreference extends Preference {
static final int ORDER_FOOTER = Integer.MAX_VALUE - 1; static final int ORDER_FOOTER = Integer.MAX_VALUE - 1;
static final String KEY_FOOTER = "footer_preference"; static final String KEY_FOOTER = "footer_preference";
public FooterPreference(Context context, AttributeSet attrs,
int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
init();
}
public FooterPreference(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
public FooterPreference(Context context, AttributeSet attrs) { public FooterPreference(Context context, AttributeSet attrs) {
super(context, attrs); super(context, attrs, TypedArrayUtils.getAttr(
context, R.attr.footerPreferenceStyle, android.R.attr.preferenceStyle));
init(); init();
} }
public FooterPreference(Context context) { public FooterPreference(Context context) {
super(context); this(context, null);
init();
} }
@Override @Override
public void onBindViewHolder(PreferenceViewHolder holder) { public void onBindViewHolder(PreferenceViewHolder holder) {
super.onBindViewHolder(holder); super.onBindViewHolder(holder);
TextView title = (TextView) holder.itemView.findViewById(android.R.id.title); TextView title = holder.itemView.findViewById(android.R.id.title);
title.setMovementMethod(new LinkMovementMethod()); title.setMovementMethod(new LinkMovementMethod());
} }
private void init() { private void init() {
setLayoutResource(R.layout.preference_footer);
setIcon(R.drawable.ic_info_outline_24dp); setIcon(R.drawable.ic_info_outline_24dp);
setKey(KEY_FOOTER); setKey(KEY_FOOTER);
setOrder(ORDER_FOOTER); setOrder(ORDER_FOOTER);