OSDN Git Service

Add moar dividers
authorJason Monk <jmonk@google.com>
Mon, 4 Apr 2016 17:20:59 +0000 (13:20 -0400)
committerJason Monk <jmonk@google.com>
Mon, 4 Apr 2016 17:20:59 +0000 (13:20 -0400)
Bug: 27834471
Change-Id: I575040edcdf76124f21a667e64762acb86a65cb2

res/values/attrs.xml
res/xml/battery_saver_settings.xml
res/xml/data_usage.xml
src/com/android/settings/DividedCategory.java [new file with mode: 0644]
src/com/android/settings/DividerPreference.java [new file with mode: 0644]
src/com/android/settings/datausage/TemplatePreferenceCategory.java
src/com/android/settings/fuelgauge/WallOfTextPreference.java

index 94d7df8..0a072ae 100644 (file)
     <declare-styleable name="WorkPreference">
         <attr name="forWork" format="boolean" />
     </declare-styleable>
+
+    <declare-styleable name="DividerPreference">
+        <attr name="allowDividerAbove" format="boolean" />
+        <attr name="allowDividerBelow" format="boolean" />
+    </declare-styleable>
 </resources>
index 832da58..630016f 100644 (file)
@@ -15,6 +15,7 @@
 -->
 
 <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:key="battery_saver">
 
@@ -29,6 +30,7 @@
             android:key="description"
             android:summary="@*android:string/battery_saver_description"
             android:persistent="false"
-            android:selectable="false" />
+            android:selectable="false"
+            settings:allowDividerAbove="true" />
 
 </PreferenceScreen>
index 0626da9..95e16ce 100644 (file)
@@ -15,6 +15,7 @@
 -->
 
 <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">
 
     <PreferenceCategory
             android:key="status_header"
             android:selectable="false" />
 
-        <Preference
+        <com.android.settings.DividerPreference
             android:key="limit_summary"
-            android:selectable="false" />
+            android:selectable="false"
+            settings:allowDividerBelow="true" />
 
         <com.android.settings.datausage.DataSaverPreference
             android:key="restrict_background"
diff --git a/src/com/android/settings/DividedCategory.java b/src/com/android/settings/DividedCategory.java
new file mode 100644 (file)
index 0000000..d1c40c8
--- /dev/null
@@ -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);
+    }
+}
diff --git a/src/com/android/settings/DividerPreference.java b/src/com/android/settings/DividerPreference.java
new file mode 100644 (file)
index 0000000..e9ff7a7
--- /dev/null
@@ -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);
+        }
+    }
+}
index 0be5c73..1ce5f1c 100644 (file)
@@ -17,10 +17,10 @@ package com.android.settings.datausage;
 import android.content.Context;
 import android.net.NetworkTemplate;
 import android.support.v7.preference.Preference;
-import android.support.v7.preference.PreferenceCategory;
 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 int mSubId;
index 096f98a..6b29742 100644 (file)
@@ -21,26 +21,14 @@ import android.support.v7.preference.Preference;
 import android.support.v7.preference.PreferenceViewHolder;
 import android.util.AttributeSet;
 import android.widget.TextView;
+import com.android.settings.DividerPreference;
 
-public class WallOfTextPreference extends Preference {
-
-    public WallOfTextPreference(Context context) {
-        super(context);
-    }
+public class WallOfTextPreference extends DividerPreference {
 
     public WallOfTextPreference(Context context, AttributeSet 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
     public void onBindViewHolder(PreferenceViewHolder view) {
         super.onBindViewHolder(view);