From 1681661d4fdc278e2a24bcf00c31d544bf5aa401 Mon Sep 17 00:00:00 2001 From: Erik Johansson Date: Fri, 23 Mar 2018 23:19:36 +0100 Subject: [PATCH] Move measurement on graph settings to settings class --- .../gui/fragments/GraphFragment.java | 21 ++++++++----------- .../gui/fragments/OverviewFragment.java | 2 +- .../gui/views/FloatMeasurementView.java | 2 +- .../gui/views/MeasurementViewSettings.java | 11 +++++++++- 4 files changed, 21 insertions(+), 15 deletions(-) diff --git a/android_app/app/src/main/java/com/health/openscale/gui/fragments/GraphFragment.java b/android_app/app/src/main/java/com/health/openscale/gui/fragments/GraphFragment.java index 5fbdedb6..65ca0527 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/fragments/GraphFragment.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/fragments/GraphFragment.java @@ -46,6 +46,7 @@ import com.health.openscale.gui.activities.DataEntryActivity; import com.health.openscale.gui.views.BMRMeasurementView; import com.health.openscale.gui.views.FloatMeasurementView; import com.health.openscale.gui.views.MeasurementView; +import com.health.openscale.gui.views.MeasurementViewSettings; import com.health.openscale.gui.views.WeightMeasurementView; import java.text.SimpleDateFormat; @@ -250,7 +251,7 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener { private void addFloatingActionButton(FloatMeasurementView measurementView) { FloatingActionButton actionButton = new FloatingActionButton(getContext()); - actionButton.setTag("actionButton" + measurementView.getName()); + actionButton.setTag(measurementView.getKey()); actionButton.setColorFilter(Color.parseColor("#000000")); actionButton.setImageDrawable(measurementView.getIcon()); actionButton.setClickable(true); @@ -260,11 +261,9 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener { actionButton.setLayoutParams(lay); actionButton.setOnClickListener(new onClickListenerDiagramLines()); - if (prefs.getBoolean(String.valueOf("actionButton" + measurementView.getName()), true)) { - actionButton.setBackgroundTintList(ColorStateList.valueOf(measurementView.getColor())); - } else { - actionButton.setBackgroundTintList(ColorStateList.valueOf(Color.parseColor("#d3d3d3"))); - } + int color = measurementView.getSettings().isInGraph() + ? measurementView.getColor() : Color.parseColor("#d3d3d3"); + actionButton.setBackgroundTintList(ColorStateList.valueOf(color)); floatingActionBar.addView(actionButton); } @@ -386,7 +385,7 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener { if (measurementView.isVisible()) { addFloatingActionButton(measurementView); - if (prefs.getBoolean(String.valueOf("actionButton" + measurementView.getName()), true)) { + if (measurementView.getSettings().isInGraph()) { diagramLineList.add(diagramLine); } } @@ -588,11 +587,9 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); - if (prefs.getBoolean(String.valueOf(actionButton.getTag()), true)) { - prefs.edit().putBoolean(String.valueOf(actionButton.getTag()), false).commit(); - } else { - prefs.edit().putBoolean(String.valueOf(actionButton.getTag()), true).commit(); - } + String key = String.valueOf(actionButton.getTag()); + MeasurementViewSettings settings = new MeasurementViewSettings(prefs, key); + prefs.edit().putBoolean(settings.getInGraphKey(), !settings.isInGraph()).apply(); generateGraphs(); } diff --git a/android_app/app/src/main/java/com/health/openscale/gui/fragments/OverviewFragment.java b/android_app/app/src/main/java/com/health/openscale/gui/fragments/OverviewFragment.java index f1163513..0c2dbd34 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/fragments/OverviewFragment.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/fragments/OverviewFragment.java @@ -228,7 +228,7 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener for (MeasurementView view : measurementViews) { if (!view.isVisible() - || !view.getSettings().isOnOverviewGraph() + || !view.getSettings().isInOverviewGraph() || !(view instanceof FloatMeasurementView)) { continue; } diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/FloatMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/views/FloatMeasurementView.java index 086f8ce9..2a7b8a32 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/FloatMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/views/FloatMeasurementView.java @@ -430,7 +430,7 @@ public abstract class FloatMeasurementView extends MeasurementView { overview.setKey(settings.getInOverviewGraphKey()); overview.setTitle(R.string.label_include_in_overview_graph); overview.setPersistent(true); - overview.setDefaultValue(settings.isOnOverviewGraph()); + overview.setDefaultValue(settings.isInOverviewGraph()); screen.addPreference(overview); if (canConvertPercentageToAbsoluteWeight()) { diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/MeasurementViewSettings.java b/android_app/app/src/main/java/com/health/openscale/gui/views/MeasurementViewSettings.java index ea469750..22c2af43 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/MeasurementViewSettings.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/views/MeasurementViewSettings.java @@ -28,6 +28,7 @@ public class MeasurementViewSettings { private static final String PREFERENCE_SUFFIX_ENABLE = "Enable"; private static final String PREFERENCE_SUFFIX_IN_OVERVIEW_GRAPH = "InOverviewGraph"; + private static final String PREFERENCE_SUFFIX_IN_GRAPH = "InGraph"; private static final String PREFERENCE_SUFFIX_PERCENTAGE_ENABLE = "PercentageEnable"; private static final String PREFERENCE_SUFFIX_ESTIMATE_ENABLE = "EstimateEnable"; private static final String PREFERENCE_SUFFIX_ESTIMATE_FORMULA = "EstimateFormula"; @@ -103,7 +104,7 @@ public class MeasurementViewSettings { return getPreferenceKey(PREFERENCE_SUFFIX_IN_OVERVIEW_GRAPH); } - public boolean isOnOverviewGraph() { + public boolean isInOverviewGraph() { boolean defaultValue; switch (key) { case BMRMeasurementView.KEY: @@ -116,6 +117,14 @@ public class MeasurementViewSettings { return preferences.getBoolean(getInOverviewGraphKey(), defaultValue); } + public String getInGraphKey() { + return getPreferenceKey(PREFERENCE_SUFFIX_IN_GRAPH); + } + + public boolean isInGraph() { + return preferences.getBoolean(getInGraphKey(), true); + } + public String getPercentageEnabledKey() { return getPreferenceKey(PREFERENCE_SUFFIX_PERCENTAGE_ENABLE); }