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 @@
-
+