From 60a355e5fa6504ba16c19be3fb9b579149adebd3 Mon Sep 17 00:00:00 2001 From: str4d Date: Wed, 3 Jun 2015 12:44:12 +0000 Subject: [PATCH] Move Preferences to Iconics --- .../bote/android/util/IconicsPreference.java | 44 ++++++++++++++++ app/src/main/res/values/attrs.xml | 10 +++- app/src/main/res/values/colors.xml | 1 + app/src/main/res/values/dimens.xml | 2 + app/src/main/res/xml/settings.xml | 51 ++++++++++++------- 5 files changed, 87 insertions(+), 21 deletions(-) create mode 100644 app/src/main/java/i2p/bote/android/util/IconicsPreference.java diff --git a/app/src/main/java/i2p/bote/android/util/IconicsPreference.java b/app/src/main/java/i2p/bote/android/util/IconicsPreference.java new file mode 100644 index 0000000..a21e114 --- /dev/null +++ b/app/src/main/java/i2p/bote/android/util/IconicsPreference.java @@ -0,0 +1,44 @@ +package i2p.bote.android.util; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.content.res.TypedArray; +import android.os.Build; +import android.preference.Preference; +import android.util.AttributeSet; + +import com.mikepenz.iconics.IconicsDrawable; + +import i2p.bote.android.R; + +public class IconicsPreference extends Preference { + public IconicsPreference(Context context, AttributeSet attrs) { + this(context, attrs, 0); + } + + @SuppressLint("NewApi") + public IconicsPreference(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs); + + // Icons only work on API 11+ + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) + return; + + TypedArray a = context.obtainStyledAttributes(attrs, + R.styleable.IconicsPreference, defStyle, 0); + String iconName = a.getString(R.styleable.IconicsPreference_ip_icon); + if (iconName == null) + return; + + IconicsDrawable icon = new IconicsDrawable(context, iconName); + int color = a.getColor(R.styleable.IconicsPreference_ip_color, 0); + if (color != 0) + icon.color(color); + int size = a.getDimensionPixelSize(R.styleable.IconicsPreference_ip_size, 0); + if (size != 0) + icon.sizePx(size); + + a.recycle(); + setIcon(icon); + } +} diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml index 7ce840e..0e2ce7a 100644 --- a/app/src/main/res/values/attrs.xml +++ b/app/src/main/res/values/attrs.xml @@ -1,12 +1,18 @@ + + + + + + - - + + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 153e61a..c737436 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -17,4 +17,5 @@ #B2000000 + @android:color/black diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index c18e9d6..4bb8d72 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -37,4 +37,6 @@ 200dp 300dp + + 30dp diff --git a/app/src/main/res/xml/settings.xml b/app/src/main/res/xml/settings.xml index 1d9ed3b..531a504 100644 --- a/app/src/main/res/xml/settings.xml +++ b/app/src/main/res/xml/settings.xml @@ -1,27 +1,40 @@ - - + - + - + - + - + - + + android:title="@string/settings_label_advanced" + app:ip_color="@color/pref_icon" + app:ip_icon="gmd-settings" + app:ip_size="@dimen/pref_icon"/> \ No newline at end of file