Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1c118b5f authored by Fan Zhang's avatar Fan Zhang
Browse files

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
parent 1a71c05c
Loading
Loading
Loading
Loading
+51 −0
Original line number Diff line number Diff line
<?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.
  -->

<!-- Based off frameworks/base/core/res/res/layout/preference_category_material.xml
     except that this supports icon -->
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="16dp"
    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
    android:paddingTop="16dp">

    <LinearLayout
        android:id="@+id/icon_container"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="start|center_vertical"
        android:orientation="horizontal">
        <com.android.internal.widget.PreferenceImageView
            android:id="@android:id/icon"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:maxWidth="18dp"
            android:maxHeight="18dp"/>
    </LinearLayout>

    <TextView
        android:id="@android:id/title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textAppearance="@android:style/TextAppearance.Material.Body2"
        android:textColor="?android:attr/textColorPrimary"
        android:paddingStart="60dp"
        android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"/>

</FrameLayout>
 No newline at end of file
+89 −0
Original line number Diff line number Diff line
<?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.
  -->


<!-- Based off frameworks/base/core/res/res/layout/preference_dropdown_material.xml
     except that icon space in this layout is always reserved -->
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?android:attr/listPreferredItemHeightSmall"
    android:gravity="center_vertical"
    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
    android:background="?android:attr/selectableItemBackground"
    android:clipToPadding="false">

    <Spinner
        android:id="@+id/spinner"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:visibility="invisible" />

    <LinearLayout
        android:id="@+id/icon_container"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:minWidth="60dp"
        android:gravity="start|center_vertical"
        android:orientation="horizontal"
        android:paddingEnd="12dp"
        android:paddingTop="4dp"
        android:paddingBottom="4dp">
        <android.support.v7.internal.widget.PreferenceImageView
            android:id="@android:id/icon"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:maxWidth="48dp"
            android:maxHeight="48dp" />
    </LinearLayout>

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:paddingTop="16dp"
        android:paddingBottom="16dp">

        <TextView android:id="@android:id/title"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:singleLine="true"
                  android:textAppearance="@style/Preference_TextAppearanceMaterialSubhead"
                  android:ellipsize="marquee" />

        <TextView android:id="@android:id/summary"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_below="@android:id/title"
                  android:layout_alignLeft="@android:id/title"
                  android:textAppearance="?android:attr/textAppearanceSmall"
                  android:textColor="?android:attr/textColorSecondary"
                  android:maxLines="10" />

    </RelativeLayout>

    <!-- Preference should place its actual preference widget here. -->
    <LinearLayout android:id="@android:id/widget_frame"
                  android:layout_width="wrap_content"
                  android:layout_height="match_parent"
                  android:gravity="end|center_vertical"
                  android:paddingLeft="16dp"
                  android:orientation="vertical" />

</LinearLayout>
 No newline at end of file
+15 −11
Original line number Diff line number Diff line
@@ -16,18 +16,19 @@

<!-- Based off frameworks/base/core/res/res/layout/preference_material.xml
     except that this has the negative margin on the image removed. -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?android:attr/listPreferredItemHeightSmall"
    android:minHeight="?android:attr/listPreferredItemHeight"
    android:gravity="center_vertical"
    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
    android:background="?android:attr/activatedBackgroundIndicator"
    android:background="?android:attr/selectableItemBackground"
    android:clipToPadding="false">

    <LinearLayout
        android:id="@id/icon_frame"
        android:id="@+id/icon_container"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:minWidth="60dp"
@@ -51,14 +52,16 @@
        android:paddingTop="16dp"
        android:paddingBottom="16dp">

        <TextView android:id="@android:id/title"
        <TextView
            android:id="@android:id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:singleLine="true"
            android:textAppearance="?android:attr/textAppearanceListItem"
            android:ellipsize="marquee"/>

        <TextView android:id="@android:id/summary"
        <TextView
            android:id="@android:id/summary"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@android:id/title"
@@ -70,7 +73,8 @@
    </RelativeLayout>

    <!-- Preference should place its actual preference widget here. -->
    <LinearLayout android:id="@android:id/widget_frame"
    <LinearLayout
        android:id="@android:id/widget_frame"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:gravity="end|center_vertical"
+38 −25
Original line number Diff line number Diff line
@@ -14,14 +14,32 @@
     limitations under the License.
-->

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?android:attr/listPreferredItemHeight"
    android:minHeight="?android:attr/listPreferredItemHeightSmall"
    android:gravity="center_vertical"
    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
    android:clickable="false" >
    android:clickable="false"
    android:orientation="horizontal">

    <LinearLayout
        android:id="@+id/icon_container"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:minWidth="44dp"
        android:gravity="start|center_vertical"
        android:orientation="horizontal"
        android:paddingEnd="12dp"
        android:paddingTop="4dp"
        android:paddingBottom="4dp">
        <com.android.internal.widget.PreferenceImageView
            android:id="@android:id/icon"
            android:layout_width="24dp"
            android:layout_height="24dp"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
@@ -33,17 +51,20 @@
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <TextView android:id="@android:id/title"
                android:layout_width="wrap_content"
            <TextView
                android:id="@android:id/title"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:paddingStart="16dp"
                android:singleLine="true"
                android:textAppearance="@android:style/TextAppearance.Material.Subhead"
                android:textColor="?android:attr/textColorPrimary"
                android:ellipsize="marquee"
                android:fadingEdge="horizontal"/>
            <!-- Preference should place its actual preference widget here. -->
            <LinearLayout android:id="@android:id/widget_frame"
            <LinearLayout
                android:id="@android:id/widget_frame"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:gravity="end|center_vertical"
@@ -56,32 +77,24 @@
            android:layout_height="wrap_content"
            android:layout_marginTop="6dp">

            <ImageView
                android:id="@android:id/icon"
                android:layout_gravity="center_vertical|start"
                android:layout_width="24dp"
                android:layout_height="24dp" />

            <SeekBar android:id="@*android:id/seekbar"
                android:layout_marginStart="24dp"
            <SeekBar
                android:id="@*android:id/seekbar"
                android:layout_gravity="center_vertical"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"/>

            <TextView android:id="@+id/suppression_text"
            <TextView
                android:id="@+id/suppression_text"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical|start"
                android:textAlignment="viewStart"
                android:layout_marginStart="24dp"
                android:paddingStart="14dp"
                android:singleLine="true"
                android:ellipsize="end"
                android:textAppearance="@android:style/TextAppearance.Material.Body1"
                android:textColor="?android:attr/textColorSecondary"/>

        </FrameLayout>

    </LinearLayout>

</FrameLayout>
</LinearLayout>
+0 −1
Original line number Diff line number Diff line
@@ -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>
Loading