From 8938b0c9a6d290a06ce238e90b43cb978b6fe938 Mon Sep 17 00:00:00 2001 From: Alinson Xavier Date: Tue, 19 Apr 2016 07:49:06 -0400 Subject: [PATCH] Improve settings screen --- app/build.gradle | 2 +- .../org/isoron/uhabits/AboutActivity.java | 14 ++-------- .../java/org/isoron/uhabits/BaseActivity.java | 20 ++++++++++++++ .../org/isoron/uhabits/SettingsActivity.java | 5 ++++ .../org/isoron/uhabits/ShowHabitActivity.java | 16 +----------- .../uhabits/fragments/SettingsFragment.java | 14 +++++++--- .../res/layout/preference_category_custom.xml | 26 +++++++++++++++++++ app/src/main/res/values/styles.xml | 10 +++++-- 8 files changed, 73 insertions(+), 34 deletions(-) create mode 100644 app/src/main/res/layout/preference_category_custom.xml diff --git a/app/build.gradle b/app/build.gradle index eda6a834c..c13674861 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -35,7 +35,7 @@ dependencies { compile 'com.android.support:support-v4:23.2.1' compile 'com.android.support:appcompat-v7:23.2.1' compile 'com.android.support:design:23.2.1' - compile 'com.android.support:preference-v7:23.2.1' + compile 'com.android.support:preference-v14:23.2.1' compile 'com.github.paolorotolo:appintro:3.4.0' compile 'org.apmem.tools:layouts:1.10@aar' compile 'com.opencsv:opencsv:3.7' diff --git a/app/src/main/java/org/isoron/uhabits/AboutActivity.java b/app/src/main/java/org/isoron/uhabits/AboutActivity.java index ec1be869b..279a96d45 100644 --- a/app/src/main/java/org/isoron/uhabits/AboutActivity.java +++ b/app/src/main/java/org/isoron/uhabits/AboutActivity.java @@ -20,15 +20,11 @@ package org.isoron.uhabits; import android.content.Intent; -import android.graphics.Color; -import android.graphics.drawable.ColorDrawable; import android.net.Uri; import android.os.Bundle; -import android.support.v7.app.ActionBar; import android.view.View; import android.widget.TextView; -import org.isoron.uhabits.helpers.ColorHelper; import org.isoron.uhabits.helpers.UIHelper; public class AboutActivity extends BaseActivity implements View.OnClickListener @@ -42,14 +38,8 @@ public class AboutActivity extends BaseActivity implements View.OnClickListener setContentView(R.layout.about); setupSupportActionBar(true); - if (android.os.Build.VERSION.SDK_INT >= 21 && !UIHelper.isNightMode()) - { - int color = UIHelper.getStyledColor(this, R.attr.aboutScreenColor); - int darkerColor = ColorHelper.mixColors(color, Color.BLACK, 0.75f); - ActionBar actionBar = getSupportActionBar(); - if(actionBar != null) actionBar.setBackgroundDrawable(new ColorDrawable(color)); - getWindow().setStatusBarColor(darkerColor); - } + int color = UIHelper.getStyledColor(this, R.attr.aboutScreenColor); + setupActionBarColor(color); TextView tvVersion = (TextView) findViewById(R.id.tvVersion); TextView tvRate = (TextView) findViewById(R.id.tvRate); diff --git a/app/src/main/java/org/isoron/uhabits/BaseActivity.java b/app/src/main/java/org/isoron/uhabits/BaseActivity.java index e2ff85c67..7f0e2f797 100644 --- a/app/src/main/java/org/isoron/uhabits/BaseActivity.java +++ b/app/src/main/java/org/isoron/uhabits/BaseActivity.java @@ -20,6 +20,8 @@ package org.isoron.uhabits; import android.app.backup.BackupManager; +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; import android.os.AsyncTask; import android.os.Build; import android.os.Bundle; @@ -29,6 +31,7 @@ import android.support.v7.widget.Toolbar; import android.widget.Toast; import org.isoron.uhabits.commands.Command; +import org.isoron.uhabits.helpers.ColorHelper; import org.isoron.uhabits.helpers.UIHelper; import java.util.LinkedList; @@ -162,4 +165,21 @@ abstract public class BaseActivity extends AppCompatActivity implements Thread.U else System.exit(1); } + + protected void setupActionBarColor(int color) + { + ActionBar actionBar = getSupportActionBar(); + if(actionBar == null) return; + + if (!UIHelper.getStyledBoolean(this, R.attr.useHabitColorAsPrimary)) return; + + ColorDrawable drawable = new ColorDrawable(color); + actionBar.setBackgroundDrawable(drawable); + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) + { + int darkerColor = ColorHelper.mixColors(color, Color.BLACK, 0.75f); + getWindow().setStatusBarColor(darkerColor); + } + } } diff --git a/app/src/main/java/org/isoron/uhabits/SettingsActivity.java b/app/src/main/java/org/isoron/uhabits/SettingsActivity.java index 1702a44c6..579e7a7a6 100644 --- a/app/src/main/java/org/isoron/uhabits/SettingsActivity.java +++ b/app/src/main/java/org/isoron/uhabits/SettingsActivity.java @@ -21,6 +21,8 @@ package org.isoron.uhabits; import android.os.Bundle; +import org.isoron.uhabits.helpers.UIHelper; + public class SettingsActivity extends BaseActivity { @Override @@ -29,5 +31,8 @@ public class SettingsActivity extends BaseActivity super.onCreate(savedInstanceState); setContentView(R.layout.settings_activity); setupSupportActionBar(true); + + int color = UIHelper.getStyledColor(this, R.attr.aboutScreenColor); + setupActionBarColor(color); } } diff --git a/app/src/main/java/org/isoron/uhabits/ShowHabitActivity.java b/app/src/main/java/org/isoron/uhabits/ShowHabitActivity.java index d72ed67a8..8be54b586 100644 --- a/app/src/main/java/org/isoron/uhabits/ShowHabitActivity.java +++ b/app/src/main/java/org/isoron/uhabits/ShowHabitActivity.java @@ -20,15 +20,11 @@ package org.isoron.uhabits; import android.content.ContentUris; -import android.graphics.Color; -import android.graphics.drawable.ColorDrawable; import android.net.Uri; -import android.os.Build; import android.os.Bundle; import android.support.v7.app.ActionBar; import org.isoron.uhabits.helpers.ColorHelper; -import org.isoron.uhabits.helpers.UIHelper; import org.isoron.uhabits.models.Habit; public class ShowHabitActivity extends BaseActivity @@ -58,17 +54,7 @@ public class ShowHabitActivity extends BaseActivity actionBar.setTitle(habit.name); - if (!UIHelper.getStyledBoolean(this, R.attr.useHabitColorAsPrimary)) return; - - int color = ColorHelper.getColor(this, habit.color); - ColorDrawable drawable = new ColorDrawable(color); - actionBar.setBackgroundDrawable(drawable); - - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) - { - int darkerColor = ColorHelper.mixColors(color, Color.BLACK, 0.75f); - getWindow().setStatusBarColor(darkerColor); - } + setupActionBarColor(ColorHelper.getColor(this, habit.color)); } public Habit getHabit() diff --git a/app/src/main/java/org/isoron/uhabits/fragments/SettingsFragment.java b/app/src/main/java/org/isoron/uhabits/fragments/SettingsFragment.java index 0c4491b34..7679a3c71 100644 --- a/app/src/main/java/org/isoron/uhabits/fragments/SettingsFragment.java +++ b/app/src/main/java/org/isoron/uhabits/fragments/SettingsFragment.java @@ -22,15 +22,15 @@ package org.isoron.uhabits.fragments; import android.app.backup.BackupManager; import android.content.SharedPreferences; import android.os.Bundle; -import android.preference.Preference; -import android.preference.PreferenceCategory; -import android.preference.PreferenceFragment; +import android.support.v7.preference.Preference; +import android.support.v7.preference.PreferenceCategory; +import android.support.v7.preference.PreferenceFragmentCompat; import org.isoron.uhabits.MainActivity; import org.isoron.uhabits.R; import org.isoron.uhabits.helpers.UIHelper; -public class SettingsFragment extends PreferenceFragment +public class SettingsFragment extends PreferenceFragmentCompat implements SharedPreferences.OnSharedPreferenceChangeListener { @Override @@ -48,6 +48,12 @@ public class SettingsFragment extends PreferenceFragment removePreference("translate", "linksCategory"); } + @Override + public void onCreatePreferences(Bundle bundle, String s) + { + + } + private void removePreference(String preferenceKey, String categoryKey) { PreferenceCategory cat = (PreferenceCategory) findPreference(categoryKey); diff --git a/app/src/main/res/layout/preference_category_custom.xml b/app/src/main/res/layout/preference_category_custom.xml new file mode 100644 index 000000000..5b1e58947 --- /dev/null +++ b/app/src/main/res/layout/preference_category_custom.xml @@ -0,0 +1,26 @@ + + + + diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 281275c0c..4128ac50f 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -19,6 +19,7 @@ - +