From 532b80ea849a552ceb50e4d8cd75c7ab76e6e7f4 Mon Sep 17 00:00:00 2001 From: vanitasvitae Date: Tue, 25 Oct 2016 21:29:16 +0200 Subject: [PATCH] Added ThemedVisibilityPreference and set it in NavSlider Preference Screen --- .../diaspora_android/data/AppSettings.java | 9 ++--- .../ui/ThemedCheckBoxPreference.java | 1 + .../ui/ThemedVisibilityPreference.java | 36 +++++++++++++++++++ .../drawable/ic_visibility_off_black_24px.xml | 19 ++++++++++ .../drawable/ic_visibility_on_black_24px.xml | 15 ++++++++ .../res/drawable/ic_visibility_selector.xml | 7 ++++ .../xml/preferences__sub_navslider_vis.xml | 22 ++++++------ 7 files changed, 94 insertions(+), 15 deletions(-) create mode 100644 app/src/main/java/com/github/dfa/diaspora_android/ui/ThemedVisibilityPreference.java create mode 100644 app/src/main/res/drawable/ic_visibility_off_black_24px.xml create mode 100644 app/src/main/res/drawable/ic_visibility_on_black_24px.xml create mode 100644 app/src/main/res/drawable/ic_visibility_selector.xml diff --git a/app/src/main/java/com/github/dfa/diaspora_android/data/AppSettings.java b/app/src/main/java/com/github/dfa/diaspora_android/data/AppSettings.java index 2361722c..dd24f4ca 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/data/AppSettings.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/data/AppSettings.java @@ -272,16 +272,17 @@ public class AppSettings { */ public int getProxyHttpPort() { try { - return getInt(prefApp, R.string.pref_key__http_proxy_port, 0); - } catch(Exception _anything){ - //TODO: Backward Compatibility for older versions. REMOVE after App v1.7.0 String str = getString(prefApp, R.string.pref_key__http_proxy_port, "0"); return Integer.parseInt(str); + } catch (ClassCastException e) { + int port = getInt(prefApp, R.string.pref_key__http_proxy_port, 0); + setProxyHttpPort(port); + return port; } } public void setProxyHttpPort(int value) { - setInt(prefApp, R.string.pref_key__http_proxy_port, value); + setString(prefApp, R.string.pref_key__http_proxy_port, Integer.toString(value)); } public ProxyHandler.ProxySettings getProxySettings() { diff --git a/app/src/main/java/com/github/dfa/diaspora_android/ui/ThemedCheckBoxPreference.java b/app/src/main/java/com/github/dfa/diaspora_android/ui/ThemedCheckBoxPreference.java index 9c042dd1..40f04946 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/ui/ThemedCheckBoxPreference.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/ui/ThemedCheckBoxPreference.java @@ -7,6 +7,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.CheckBox; +import com.github.dfa.diaspora_android.R; import com.github.dfa.diaspora_android.data.AppSettings; import com.github.dfa.diaspora_android.util.theming.ThemeHelper; diff --git a/app/src/main/java/com/github/dfa/diaspora_android/ui/ThemedVisibilityPreference.java b/app/src/main/java/com/github/dfa/diaspora_android/ui/ThemedVisibilityPreference.java new file mode 100644 index 00000000..ae1cb482 --- /dev/null +++ b/app/src/main/java/com/github/dfa/diaspora_android/ui/ThemedVisibilityPreference.java @@ -0,0 +1,36 @@ +package com.github.dfa.diaspora_android.ui; + +import android.content.Context; +import android.util.AttributeSet; +import android.widget.CheckBox; + +import com.github.dfa.diaspora_android.R; +import com.github.dfa.diaspora_android.data.AppSettings; +import com.github.dfa.diaspora_android.util.theming.ThemeHelper; + +/** + * ThemedCheckBoxPreference with visibility icons instead of checkbox. TODO: Make more flexible? + * Created by vanitas on 25.10.16. + */ + +public class ThemedVisibilityPreference extends ThemedCheckBoxPreference { + public ThemedVisibilityPreference(Context context) { + super(context); + } + + public ThemedVisibilityPreference(Context context, AttributeSet attrs) { + super(context, attrs); + } + + public ThemedVisibilityPreference(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + } + + @Override + public void setColors() { + CheckBox checkBox = (CheckBox) rootLayout.findViewById(android.R.id.checkbox); + checkBox.setButtonDrawable(R.drawable.ic_visibility_selector); + ThemeHelper.getInstance(new AppSettings(getContext())); + ThemeHelper.updateCheckBoxColor(checkBox); + } +} diff --git a/app/src/main/res/drawable/ic_visibility_off_black_24px.xml b/app/src/main/res/drawable/ic_visibility_off_black_24px.xml new file mode 100644 index 00000000..1eeca64f --- /dev/null +++ b/app/src/main/res/drawable/ic_visibility_off_black_24px.xml @@ -0,0 +1,19 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_visibility_on_black_24px.xml b/app/src/main/res/drawable/ic_visibility_on_black_24px.xml new file mode 100644 index 00000000..b4bf03e5 --- /dev/null +++ b/app/src/main/res/drawable/ic_visibility_on_black_24px.xml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_visibility_selector.xml b/app/src/main/res/drawable/ic_visibility_selector.xml new file mode 100644 index 00000000..891267a1 --- /dev/null +++ b/app/src/main/res/drawable/ic_visibility_selector.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/xml/preferences__sub_navslider_vis.xml b/app/src/main/res/xml/preferences__sub_navslider_vis.xml index ac52fcde..5a8395b3 100644 --- a/app/src/main/res/xml/preferences__sub_navslider_vis.xml +++ b/app/src/main/res/xml/preferences__sub_navslider_vis.xml @@ -5,47 +5,47 @@ android:key="@string/pref_key__title__visibility_nav" android:title="@string/pref_cat__visibility_nav_items"> - - - - - - - - - - -