Add moar dividers

Bug: 27834471
Change-Id: I575040edcdf76124f21a667e64762acb86a65cb2
This commit is contained in:
Jason Monk
2016-04-04 13:20:59 -04:00
parent bd5eb1331e
commit 3676b931d9
7 changed files with 101 additions and 19 deletions

View File

@@ -130,4 +130,9 @@
<declare-styleable name="WorkPreference"> <declare-styleable name="WorkPreference">
<attr name="forWork" format="boolean" /> <attr name="forWork" format="boolean" />
</declare-styleable> </declare-styleable>
<declare-styleable name="DividerPreference">
<attr name="allowDividerAbove" format="boolean" />
<attr name="allowDividerBelow" format="boolean" />
</declare-styleable>
</resources> </resources>

View File

@@ -15,6 +15,7 @@
--> -->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res-auto"
android:title="@string/battery_saver" android:title="@string/battery_saver"
android:key="battery_saver"> android:key="battery_saver">
@@ -29,6 +30,7 @@
android:key="description" android:key="description"
android:summary="@*android:string/battery_saver_description" android:summary="@*android:string/battery_saver_description"
android:persistent="false" android:persistent="false"
android:selectable="false" /> android:selectable="false"
settings:allowDividerAbove="true" />
</PreferenceScreen> </PreferenceScreen>

View File

@@ -15,6 +15,7 @@
--> -->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res-auto"
android:title="@string/data_usage_summary_title"> android:title="@string/data_usage_summary_title">
<PreferenceCategory <PreferenceCategory
@@ -25,9 +26,10 @@
android:key="status_header" android:key="status_header"
android:selectable="false" /> android:selectable="false" />
<Preference <com.android.settings.DividerPreference
android:key="limit_summary" android:key="limit_summary"
android:selectable="false" /> android:selectable="false"
settings:allowDividerBelow="true" />
<com.android.settings.datausage.DataSaverPreference <com.android.settings.datausage.DataSaverPreference
android:key="restrict_background" android:key="restrict_background"

View File

@@ -0,0 +1,36 @@
/*
* 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.
*/
package com.android.settings;
import android.content.Context;
import android.support.v7.preference.PreferenceCategory;
import android.support.v7.preference.PreferenceViewHolder;
import android.util.AttributeSet;
/**
* PreferenceCategory that allows a divider above it.
*/
public class DividedCategory extends PreferenceCategory {
public DividedCategory(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public void onBindViewHolder(PreferenceViewHolder holder) {
super.onBindViewHolder(holder);
holder.setDividerAllowedAbove(true);
}
}

View File

@@ -0,0 +1,49 @@
/*
* 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.
*/
package com.android.settings;
import android.content.Context;
import android.content.res.TypedArray;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceViewHolder;
import android.util.AttributeSet;
public class DividerPreference extends Preference {
private Boolean mAllowAbove;
private Boolean mAllowBelow;
public DividerPreference(Context context, AttributeSet attrs) {
super(context, attrs);
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.DividerPreference, 0, 0);
if (a.hasValue(R.styleable.DividerPreference_allowDividerAbove)) {
mAllowAbove = a.getBoolean(R.styleable.DividerPreference_allowDividerAbove, false);
}
if (a.hasValue(R.styleable.DividerPreference_allowDividerBelow)) {
mAllowBelow = a.getBoolean(R.styleable.DividerPreference_allowDividerBelow, false);
}
}
@Override
public void onBindViewHolder(PreferenceViewHolder holder) {
super.onBindViewHolder(holder);
if (mAllowAbove != null) {
holder.setDividerAllowedAbove(mAllowAbove);
}
if (mAllowBelow != null) {
holder.setDividerAllowedBelow(mAllowBelow);
}
}
}

View File

@@ -17,10 +17,10 @@ package com.android.settings.datausage;
import android.content.Context; import android.content.Context;
import android.net.NetworkTemplate; import android.net.NetworkTemplate;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceCategory;
import android.util.AttributeSet; import android.util.AttributeSet;
import com.android.settings.DividedCategory;
public class TemplatePreferenceCategory extends PreferenceCategory implements TemplatePreference { public class TemplatePreferenceCategory extends DividedCategory implements TemplatePreference {
private NetworkTemplate mTemplate; private NetworkTemplate mTemplate;
private int mSubId; private int mSubId;

View File

@@ -21,26 +21,14 @@ import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceViewHolder; import android.support.v7.preference.PreferenceViewHolder;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.widget.TextView; import android.widget.TextView;
import com.android.settings.DividerPreference;
public class WallOfTextPreference extends Preference { public class WallOfTextPreference extends DividerPreference {
public WallOfTextPreference(Context context) {
super(context);
}
public WallOfTextPreference(Context context, AttributeSet attrs) { public WallOfTextPreference(Context context, AttributeSet attrs) {
super(context, attrs); super(context, attrs);
} }
public WallOfTextPreference(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public WallOfTextPreference(Context context, AttributeSet attrs, int defStyleAttr,
int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
@Override @Override
public void onBindViewHolder(PreferenceViewHolder view) { public void onBindViewHolder(PreferenceViewHolder view) {
super.onBindViewHolder(view); super.onBindViewHolder(view);