Always reserve space for preference icons.

This aligns text on preferences on the same screen when some of them
don't have icons.

- Use a custom layout for
  preference
  EditPreference
  switch preference
  VolumeSeekPreference
  DialogPreferencei
  Restricted*Preference
  DropdownPreference

- Moved related style defs into a new file styles_preference.xml,
  because current styles file is too large to read.
- Switch <PreferenceScreen ...> to <Preference ...> for a bunch of
  regular preferences.
- Also removed some dead style.

Bug: 33430928
Test: runtest --path packages/apps/Settings/tests/app/src/com/android/settings/dashboard/PreferenceThemeTest.java

Change-Id: Ic9b75d3f133f2a83cd999297b8596253d4b10161
This commit is contained in:
Fan Zhang
2016-12-09 13:04:24 -08:00
parent 1a71c05c7c
commit 1c118b5f2a
23 changed files with 465 additions and 173 deletions

View File

@@ -51,7 +51,6 @@
<dimen name="divider_height">3dip</dimen>
<dimen name="divider_margin_top">6dip</dimen>
<dimen name="divider_margin_bottom">7dip</dimen>
<dimen name="vert_divider_width">1dip</dimen>
<!-- Size of icons in the top-level of settings -->
<dimen name="header_icon_width">28dp</dimen>

View File

@@ -93,22 +93,6 @@
<item name="android:windowContentOverlay">@null</item>
</style>
<style name="Preference">
<item name="android:layout">@layout/preference_material_settings</item>
</style>
<style name="SyncSwitchPreference" parent="Preference">
<item name="android:widgetLayout">@layout/preference_widget_sync_toggle</item>
</style>
<style name="EditTextPreference" parent="@*android:style/Preference.Material.DialogPreference.EditTextPreference">
<item name="android:dialogLayout">@layout/preference_dialog_edittext</item>
</style>
<style name="PreferenceTheme" parent="@*android:style/PreferenceTheme">
<item name="android:scrollbars">vertical</item>
</style>
<style name="PreferenceHeaderPanelSinglePane">
<item name="android:layout_marginStart">0dp</item>
<item name="android:layout_marginEnd">0dp</item>
@@ -156,18 +140,6 @@
<item name="android:scrollbarStyle">outsideOverlay</item>
</style>
<style name="PreferenceFragmentStyle" parent="@*android:style/PreferenceFragment.Material">
<item name="android:layout">@layout/preference_list_fragment</item>
</style>
<style name="VertDivider">
<item name="android:layout_width">@dimen/vert_divider_width</item>
<item name="android:layout_height">fill_parent</item>
<item name="android:background">@color/divider_color</item>
<item name="android:focusable">false</item>
<item name="android:clickable">false</item>
</style>
<style name="TextAppearance.SetupWizardDescription" parent="@android:style/TextAppearance.Material.Subhead">
</style>
@@ -324,10 +296,6 @@
<!-- Scrollbar style OUTSIDE_OVERLAY -->
<integer name="preference_scrollbar_style">33554432</integer>
<style name="ApnPreference">
<item name="android:layout">@layout/apn_preference_layout</item>
</style>
<style name="AppListSwitchPreference" parent="@*android:style/Preference.Material.DialogPreference">
<item name="android:widgetLayout">@*android:layout/preference_widget_switch</item>
</style>

View File

@@ -0,0 +1,58 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2016 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 file only contains custom attribute and style definition for preferences -->
<!-- Things unrelated to preference framework UI customization should go to other styles files -->
<resources>
<style name="ApnPreference">
<item name="android:layout">@layout/apn_preference_layout</item>
</style>
<style name="EditTextPreference"
parent="@style/Preference.DialogPreference.EditTextPreference.Material">
<item name="android:layout">@layout/preference_material_settings</item>
<item name="android:dialogLayout">@layout/preference_dialog_edittext</item>
</style>
<style name="PreferenceFragmentStyle" parent="@*android:style/PreferenceFragment.Material">
<item name="android:layout">@layout/preference_list_fragment</item>
</style>
<style name="SettingsPreference">
<item name="android:layout">@layout/preference_material_settings</item>
</style>
<style name="SettingsDropdownPreference">
<item name="android:layout">@layout/preference_dropdown_material_settings</item>
</style>
<style name="SettingsDialogPreference" parent="SettingsPreference"/>
<style name="SettingsPreferenceCategory" parent="@style/Preference.Category.Material">
<item name="android:layout">@layout/preference_category_material_settings</item>
</style>
<style name="SettingsSwitchPreference" parent="SettingsPreference">
<item name="widgetLayout">@*android:layout/preference_widget_switch</item>
<item name="switchTextOn">@*android:string/capital_on</item>
<item name="switchTextOff">@*android:string/capital_off</item>
</style>
<style name="SyncSwitchPreference" parent="SettingsPreference">
<item name="android:widgetLayout">@layout/preference_widget_sync_toggle</item>
</style>
</resources>

View File

@@ -88,11 +88,16 @@
</style>
<style name="PreferenceTheme" parent="@style/PreferenceThemeOverlay.v14.Material">
<item name="android:preferenceStyle">@style/Preference</item>
<item name="android:editTextPreferenceStyle">@style/EditTextPreference</item>
<item name="dropdownPreferenceStyle">@style/Preference.DropDown.Material</item>
<item name="android:preferenceFragmentStyle">@style/PreferenceFragmentStyle</item>
<!-- Parent path frameworks/support/v14/preference/res/values/themes.xml -->
<item name="android:scrollbars">vertical</item>
<item name="apnPreferenceStyle">@style/ApnPreference</item>
<item name="dialogPreferenceStyle">@style/SettingsDialogPreference</item>
<item name="dropdownPreferenceStyle">@style/SettingsDropdownPreference</item>
<item name="editTextPreferenceStyle">@style/EditTextPreference</item>
<item name="preferenceCategoryStyle">@style/SettingsPreferenceCategory</item>
<item name="preferenceFragmentStyle">@style/PreferenceFragmentStyle</item>
<item name="preferenceStyle">@style/SettingsPreference</item>
<item name="switchPreferenceStyle">@style/SettingsSwitchPreference</item>
</style>
<style name="PreferenceTheme.SetupWizard" parent="PreferenceTheme">
@@ -124,6 +129,7 @@
<style name="Theme.Settings" parent="Theme.SettingsBase">
<item name="preferenceTheme">@style/PreferenceTheme</item>
<item name="android:listPreferredItemHeight">72dip</item>
<item name="*android:preferenceHeaderPanelStyle">@style/PreferenceHeaderPanelSinglePane</item>
<item name="*android:preferencePanelStyle">@style/PreferencePanelSinglePane</item>
<item name="*android:preferenceListStyle">@style/PreferenceHeaderListSinglePane</item>