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

Commit f9499b36 authored by Fabrice Di Meglio's avatar Fabrice Di Meglio
Browse files

Add PreferenceFragment styling

- add the capability to specify a specific layout for PreferenceFragment

Change-Id: I2fa36b8fa8110e6cbc8006e1d000dc90ae6a5f0b
parent f16c5e7a
Loading
Loading
Loading
Loading
+15 −2
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.app.Activity;
import android.app.Fragment;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.TypedArray;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
@@ -110,6 +111,8 @@ public abstract class PreferenceFragment extends Fragment implements
    private boolean mHavePrefs;
    private boolean mInitDone;

    private int mLayoutResId = com.android.internal.R.layout.preference_list_fragment;

    /**
     * The starting request code given out to preference framework.
     */
@@ -159,8 +162,18 @@ public abstract class PreferenceFragment extends Fragment implements
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        return inflater.inflate(com.android.internal.R.layout.preference_list_fragment, container,
                false);

        TypedArray a = getActivity().obtainStyledAttributes(null,
                com.android.internal.R.styleable.PreferenceFragment,
                com.android.internal.R.attr.preferenceFragmentStyle,
                0);

        mLayoutResId = a.getResourceId(com.android.internal.R.styleable.PreferenceFragment_layout,
                mLayoutResId);

        a.recycle();

        return inflater.inflate(mLayoutResId, container, false);
    }

    @Override
+82 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 2014, 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.
*/
-->

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:background="@android:color/transparent"
    android:layout_removeBorders="true">

    <ListView android:id="@android:id/list"
        style="?attr/preferenceFragmentListStyle"
        android:layout_width="match_parent"
        android:layout_height="0px"
        android:layout_weight="1"
        android:paddingTop="0dip"
        android:paddingBottom="@dimen/preference_fragment_padding_bottom"
        android:scrollbarStyle="@integer/preference_fragment_scrollbarStyle"
        android:clipToPadding="false"
        android:drawSelectorOnTop="false"
        android:cacheColorHint="@android:color/transparent"
        android:scrollbarAlwaysDrawVerticalTrack="true" />

    <TextView android:id="@android:id/empty"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:padding="@dimen/preference_fragment_padding_side"
        android:gravity="center"
        android:visibility="gone" />

    <RelativeLayout android:id="@+id/button_bar"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:layout_weight="0"
        android:visibility="gone">

        <Button android:id="@+id/back_button"
            android:layout_width="150dip"
            android:layout_height="wrap_content"
            android:layout_margin="5dip"
            android:layout_alignParentStart="true"
            android:text="@string/back_button_label"
        />
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true">

            <Button android:id="@+id/skip_button"
                android:layout_width="150dip"
                android:layout_height="wrap_content"
                android:layout_margin="5dip"
                android:text="@string/skip_button_label"
                android:visibility="gone"
            />

            <Button android:id="@+id/next_button"
                android:layout_width="150dip"
                android:layout_height="wrap_content"
                android:layout_margin="5dip"
                android:text="@string/next_button_label"
            />
        </LinearLayout>
    </RelativeLayout>
</LinearLayout>
+6 −0
Original line number Diff line number Diff line
@@ -6905,6 +6905,12 @@
        <attr name="layout" />
    </declare-styleable>

    <!-- Base attributes available to PreferenceFragment. -->
    <declare-styleable name="PreferenceFragment">
        <!-- The layout for the PreferenceFragment. This should rarely need to be changed -->
        <attr name="layout" />
    </declare-styleable>

    <!-- Use <code>tts-engine</code> as the root tag of the XML resource that
         describes a text to speech engine implemented as a subclass of
         {@link android.speech.tts.TextToSpeechService}.
+3 −2
Original line number Diff line number Diff line
@@ -950,8 +950,9 @@ please see styles_device_defaults.xml.
    </style>

    <style name="PreferenceFragment">
        <item name="paddingStart">0dp</item>
        <item name="paddingEnd">0dp</item>
        <item name="android:layout">@android:layout/preference_list_fragment</item>
        <item name="android:paddingStart">0dp</item>
        <item name="android:paddingEnd">0dp</item>
    </style>

    <style name="Preference.Information">
+1 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ please see styles_device_defaults.xml.
    </style>

    <style name="PreferenceFragment.Material">
        <item name="layout">@android:layout/preference_list_fragment_material</item>
        <item name="paddingStart">@dimen/preference_fragment_padding_side_material</item>
        <item name="paddingEnd">@dimen/preference_fragment_padding_side_material</item>
    </style>
Loading