diff --git a/android_app/app/src/main/java/com/health/openscale/gui/preferences/MeasurementPreferences.java b/android_app/app/src/main/java/com/health/openscale/gui/preferences/MeasurementPreferences.java index 1fe5b0c7..572127e6 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/preferences/MeasurementPreferences.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/preferences/MeasurementPreferences.java @@ -21,6 +21,7 @@ import android.content.DialogInterface; import android.content.SharedPreferences; import android.graphics.Color; import android.graphics.Point; +import android.graphics.PorterDuff; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.preference.CheckBoxPreference; @@ -65,6 +66,9 @@ public class MeasurementPreferences extends PreferenceFragment implements Shared public static final String PREFERENCE_KEY_ESTIMATE_FAT = "estimateFatEnable"; public static final String PREFERENCE_KEY_ESTIMATE_FAT_FORMULA = "estimateFatFormula"; + public static final String PREFERENCE_KEY_RESET_ORDER = "resetOrder"; + public static final String PREFERENCE_KEY_ORDER_CATEGORY = "orderCategory"; + private Preference deleteAll; private PreferenceScreen measurementOrderScreen; @@ -93,15 +97,13 @@ public class MeasurementPreferences extends PreferenceFragment implements Shared deleteAll = (Preference) findPreference(PREFERENCE_KEY_DELETE_ALL); deleteAll.setOnPreferenceClickListener(new onClickListenerDeleteAll()); - final Context context = getActivity().getApplicationContext(); + final Context context = getActivity().getBaseContext(); measurementOrderScreen = (PreferenceScreen) findPreference(MeasurementView.PREF_MEASUREMENT_ORDER); - measurementOrderCategory = new PreferenceCategory(context); - measurementOrderCategory.setTitle(R.string.label_press_hold_reorder); + measurementOrderCategory = (PreferenceCategory) findPreference(PREFERENCE_KEY_ORDER_CATEGORY); measurementOrderCategory.setOrderingAsAdded(true); - Preference resetOrder = new Preference(context); - resetOrder.setTitle(R.string.label_set_default_order); + Preference resetOrder = findPreference(PREFERENCE_KEY_RESET_ORDER); resetOrder.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { @@ -112,8 +114,6 @@ public class MeasurementPreferences extends PreferenceFragment implements Shared return true; } }); - measurementOrderScreen.addPreference(resetOrder); - measurementOrderScreen.addPreference(measurementOrderCategory); updateMeasurementOrderScreen(context, measurementOrderCategory); @@ -335,7 +335,9 @@ public class MeasurementPreferences extends PreferenceFragment implements Shared super(context); parentGroup = parent; measurement = measurementView; - setIcon(measurement.getIcon()); + Drawable icon = measurement.getIcon(); + icon.setColorFilter(measurementView.getForegroundColor(), PorterDuff.Mode.SRC_IN); + setIcon(icon); setTitle(measurement.getName()); } diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/MeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/views/MeasurementView.java index 29bdc05a..5860b4fe 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/MeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/views/MeasurementView.java @@ -75,10 +75,19 @@ public abstract class MeasurementView extends TableLayout { private MeasurementViewUpdateListener updateListener = null; private MeasurementViewMode measurementMode = VIEW; + private static SharedPreferences prefs; + private boolean updateViews = true; public MeasurementView(Context context, String text, Drawable icon) { super(context); + prefs = PreferenceManager.getDefaultSharedPreferences(context); + String app_theme = prefs.getString("app_theme", "Light"); + + if (app_theme.equals("Dark")) { + context.setTheme(R.style.AppTheme_Dark); + } + initView(context); nameView.setText(text); @@ -94,8 +103,6 @@ public abstract class MeasurementView extends TableLayout { sorted.add(new TimeMeasurementView(context)); } - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); - { final List unsorted = new ArrayList<>(); @@ -182,7 +189,7 @@ public abstract class MeasurementView extends TableLayout { iconView.setScaleType(ImageView.ScaleType.CENTER_INSIDE); iconView.setPadding(20,0,20,0); - iconView.setColorFilter(nameView.getCurrentTextColor()); + iconView.setColorFilter(getForegroundColor()); nameView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 15); nameView.setLines(2); @@ -201,7 +208,7 @@ public abstract class MeasurementView extends TableLayout { editModeView.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.ic_editable)); editModeView.setScaleType(ImageView.ScaleType.CENTER_INSIDE); editModeView.setVisibility(View.GONE); - editModeView.setColorFilter(nameView.getCurrentTextColor()); + editModeView.setColorFilter(getForegroundColor()); indicatorView.setLayoutParams(new TableRow.LayoutParams(0, LayoutParams.MATCH_PARENT, 0.01f)); indicatorView.setBackgroundColor(Color.GRAY); @@ -305,6 +312,10 @@ public abstract class MeasurementView extends TableLayout { } } + public int getForegroundColor() { + return valueView.getCurrentTextColor(); + } + protected void showEvaluatorRow(boolean show) { if (show) { evaluatorRow.setVisibility(View.VISIBLE); diff --git a/android_app/app/src/main/res/xml/measurement_preferences.xml b/android_app/app/src/main/res/xml/measurement_preferences.xml index b3e14152..d2ad7288 100644 --- a/android_app/app/src/main/res/xml/measurement_preferences.xml +++ b/android_app/app/src/main/res/xml/measurement_preferences.xml @@ -1,7 +1,10 @@ - + + + +