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 a0e51ada..98f2d935 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 @@ -43,19 +43,8 @@ import com.health.openscale.core.OpenScale; import com.health.openscale.core.datatypes.ScaleMeasurement; import com.health.openscale.core.utils.PolynomialFitter; import com.health.openscale.gui.activities.DataEntryActivity; -import com.health.openscale.gui.views.BMIMeasurementView; -import com.health.openscale.gui.views.BoneMeasurementView; -import com.health.openscale.gui.views.FatMeasurementView; import com.health.openscale.gui.views.FloatMeasurementView; -import com.health.openscale.gui.views.HipMeasurementView; -import com.health.openscale.gui.views.LBWMeasurementView; import com.health.openscale.gui.views.MeasurementView; -import com.health.openscale.gui.views.MuscleMeasurementView; -import com.health.openscale.gui.views.WHRMeasurementView; -import com.health.openscale.gui.views.WHtRMeasurementView; -import com.health.openscale.gui.views.WaistMeasurementView; -import com.health.openscale.gui.views.WaterMeasurementView; -import com.health.openscale.gui.views.WeightMeasurementView; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -94,7 +83,7 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener { private PopupMenu popup; private SharedPreferences prefs; - private ArrayList measurementViews; + private List measurementViews; private int textColor; @@ -147,20 +136,6 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener { floatingActionBar = (LinearLayout) graphView.findViewById(R.id.floatingActionBar); - measurementViews = new ArrayList<>(); - - measurementViews.add(new WeightMeasurementView(getContext())); - measurementViews.add(new BMIMeasurementView(getContext())); - measurementViews.add(new WaterMeasurementView(getContext())); - measurementViews.add(new MuscleMeasurementView(getContext())); - measurementViews.add(new LBWMeasurementView(getContext())); - measurementViews.add(new FatMeasurementView(getContext())); - measurementViews.add(new BoneMeasurementView(getContext())); - measurementViews.add(new WaistMeasurementView(getContext())); - measurementViews.add(new WHtRMeasurementView(getContext())); - measurementViews.add(new HipMeasurementView(getContext())); - measurementViews.add(new WHRMeasurementView(getContext())); - optionMenu = (ImageView) graphView.findViewById(R.id.optionMenu); optionMenu.setOnClickListener(new View.OnClickListener() { @Override @@ -180,7 +155,7 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener { if (!scaleMeasurementList.isEmpty()) { calLastSelected.setTime(scaleMeasurementList.get(0).getDateTime()); } - updateOnView(null); + generateGraphs(); } }); @@ -195,10 +170,12 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener { if (!scaleMeasurementList.isEmpty()) { calLastSelected.setTime(scaleMeasurementList.get(scaleMeasurementList.size() - 1).getDateTime()); } - updateOnView(null); + generateGraphs(); } }); + measurementViews = MeasurementView.getMeasurementList(getContext()); + popup = new PopupMenu(getContext(), optionMenu); popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @Override 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 7f7eac33..99fd589e 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 @@ -38,20 +38,10 @@ import com.health.openscale.core.datatypes.ScaleMeasurement; import com.health.openscale.core.datatypes.ScaleUser; import com.health.openscale.core.utils.Converters; import com.health.openscale.core.utils.DateTimeHelpers; -import com.health.openscale.gui.views.BMIMeasurementView; -import com.health.openscale.gui.views.BMRMeasurementView; -import com.health.openscale.gui.views.BoneMeasurementView; -import com.health.openscale.gui.views.FatMeasurementView; +import com.health.openscale.gui.views.DateMeasurementView; import com.health.openscale.gui.views.FloatMeasurementView; -import com.health.openscale.gui.views.HipMeasurementView; -import com.health.openscale.gui.views.LBWMeasurementView; import com.health.openscale.gui.views.MeasurementView; -import com.health.openscale.gui.views.MuscleMeasurementView; -import com.health.openscale.gui.views.WHRMeasurementView; -import com.health.openscale.gui.views.WHtRMeasurementView; -import com.health.openscale.gui.views.WaistMeasurementView; -import com.health.openscale.gui.views.WaterMeasurementView; -import com.health.openscale.gui.views.WeightMeasurementView; +import com.health.openscale.gui.views.TimeMeasurementView; import java.text.DateFormat; import java.util.ArrayList; @@ -82,7 +72,7 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener private TableLayout tableOverviewLayout; - private ArrayList measurementViews; + private List measurementViews; private PieChartView pieChartLast; private LineChartView lineChartLast; @@ -120,25 +110,6 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener tableOverviewLayout = (TableLayout)overviewView.findViewById(R.id.tableLayoutMeasurements); - measurementViews = new ArrayList<>(); - - measurementViews.add(new WeightMeasurementView(context)); - measurementViews.add(new BMIMeasurementView(context)); - measurementViews.add(new WaterMeasurementView(context)); - measurementViews.add(new MuscleMeasurementView(context)); - measurementViews.add(new LBWMeasurementView(context)); - measurementViews.add(new FatMeasurementView(context)); - measurementViews.add(new BoneMeasurementView(context)); - measurementViews.add(new WaistMeasurementView(context)); - measurementViews.add(new WHtRMeasurementView(context)); - measurementViews.add(new HipMeasurementView(context)); - measurementViews.add(new WHRMeasurementView(context)); - measurementViews.add(new BMRMeasurementView(context)); - - for (MeasurementView measurement : measurementViews) { - tableOverviewLayout.addView(measurement); - } - pieChartLast = (PieChartView) overviewView.findViewById(R.id.pieChartLast); lineChartLast = (LineChartView) overviewView.findViewById(R.id.lineChartLast); @@ -149,6 +120,12 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener pieChartLast.setOnValueTouchListener(new PieChartLastTouchListener()); pieChartLast.setChartRotationEnabled(false); + measurementViews = MeasurementView.getMeasurementList(getContext()); + + for (MeasurementView measurement : measurementViews) { + tableOverviewLayout.addView(measurement); + } + userSelectedData = null; spinUserAdapter = new ArrayAdapter<>(overviewView.getContext(), R.layout.support_simple_spinner_dropdown_item, new ArrayList()); @@ -162,6 +139,8 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener } }); + prefs = PreferenceManager.getDefaultSharedPreferences(overviewView.getContext()); + OpenScale.getInstance(getContext()).registerFragment(this); return overviewView; @@ -177,8 +156,17 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener lastScaleMeasurement = scaleMeasurementList.get(0); } + ScaleMeasurement[] tupleScaleData = OpenScale.getInstance(context).getTupleScaleData(lastScaleMeasurement.getId()); + ScaleMeasurement prevScaleMeasurement = tupleScaleData[0]; - prefs = PreferenceManager.getDefaultSharedPreferences(overviewView.getContext()); + for (MeasurementView measurement : measurementViews) { + if (measurement instanceof DateMeasurementView || measurement instanceof TimeMeasurementView) { + continue; + } + + measurement.updatePreferences(prefs); + measurement.loadFrom(lastScaleMeasurement, prevScaleMeasurement); + } txtTitleUser.setText(getResources().getString(R.string.label_title_user).toUpperCase()); txtTitleLastMeasurement.setText(getResources().getString(R.string.label_title_last_measurement).toUpperCase()); @@ -186,14 +174,6 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener updateUserSelection(); updateLastPieChart(); updateLastLineChart(scaleMeasurementList); - - ScaleMeasurement[] tupleScaleData = OpenScale.getInstance(context).getTupleScaleData(lastScaleMeasurement.getId()); - ScaleMeasurement prevScaleMeasurement = tupleScaleData[0]; - - for (MeasurementView measurement : measurementViews) { - measurement.updatePreferences(prefs); - measurement.loadFrom(lastScaleMeasurement, prevScaleMeasurement); - } } private void updateUserSelection() { @@ -226,7 +206,6 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener private void updateLastLineChart(List scaleMeasurementList) { - int max_i = 7; if (scaleMeasurementList.size() < 7) { diff --git a/android_app/app/src/main/java/com/health/openscale/gui/fragments/TableFragment.java b/android_app/app/src/main/java/com/health/openscale/gui/fragments/TableFragment.java index 369f7e15..b53fa6a8 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/fragments/TableFragment.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/fragments/TableFragment.java @@ -57,22 +57,7 @@ import com.health.openscale.core.datatypes.ScaleMeasurement; import com.health.openscale.core.datatypes.ScaleUser; import com.health.openscale.gui.activities.DataEntryActivity; import com.health.openscale.gui.utils.PermissionHelper; -import com.health.openscale.gui.views.BMIMeasurementView; -import com.health.openscale.gui.views.BMRMeasurementView; -import com.health.openscale.gui.views.BoneMeasurementView; -import com.health.openscale.gui.views.CommentMeasurementView; -import com.health.openscale.gui.views.DateMeasurementView; -import com.health.openscale.gui.views.FatMeasurementView; -import com.health.openscale.gui.views.HipMeasurementView; -import com.health.openscale.gui.views.LBWMeasurementView; import com.health.openscale.gui.views.MeasurementView; -import com.health.openscale.gui.views.MuscleMeasurementView; -import com.health.openscale.gui.views.TimeMeasurementView; -import com.health.openscale.gui.views.WHRMeasurementView; -import com.health.openscale.gui.views.WHtRMeasurementView; -import com.health.openscale.gui.views.WaistMeasurementView; -import com.health.openscale.gui.views.WaterMeasurementView; -import com.health.openscale.gui.views.WeightMeasurementView; import java.io.File; import java.util.ArrayList; @@ -92,7 +77,7 @@ public class TableFragment extends Fragment implements FragmentUpdateListener { private ImageView optionMenu; private PopupMenu popup; - private ArrayList measurementsList; + private List measurementViews; private int selectedSubpageNr; private static final String SELECTED_SUBPAGE_NR_KEY = "selectedSubpageNr"; @@ -118,28 +103,6 @@ public class TableFragment extends Fragment implements FragmentUpdateListener { optionMenu = (ImageView) tableView.findViewById(R.id.optionMenu); - measurementsList = new ArrayList<>(); - - measurementsList.add(new DateMeasurementView(tableView.getContext())); - measurementsList.add(new TimeMeasurementView(tableView.getContext())); - measurementsList.add(new WeightMeasurementView(tableView.getContext())); - measurementsList.add(new BMIMeasurementView(tableView.getContext())); - measurementsList.add(new WaterMeasurementView(tableView.getContext())); - measurementsList.add(new MuscleMeasurementView(tableView.getContext())); - measurementsList.add(new LBWMeasurementView(tableView.getContext())); - measurementsList.add(new FatMeasurementView(tableView.getContext())); - measurementsList.add(new BoneMeasurementView(tableView.getContext())); - measurementsList.add(new WaistMeasurementView(tableView.getContext())); - measurementsList.add(new WHtRMeasurementView(tableView.getContext())); - measurementsList.add(new HipMeasurementView(tableView.getContext())); - measurementsList.add(new WHRMeasurementView(tableView.getContext())); - measurementsList.add(new BMRMeasurementView(tableView.getContext())); - measurementsList.add(new CommentMeasurementView(tableView.getContext())); - - for (MeasurementView measurement : measurementsList) { - measurement.setUpdateViews(false); - } - prefs = PreferenceManager.getDefaultSharedPreferences(tableView.getContext()); if (savedInstanceState == null) { @@ -149,6 +112,12 @@ public class TableFragment extends Fragment implements FragmentUpdateListener { selectedSubpageNr = savedInstanceState.getInt(SELECTED_SUBPAGE_NR_KEY); } + measurementViews = MeasurementView.getMeasurementList(getContext()); + + for (MeasurementView measurement : measurementViews) { + measurement.setUpdateViews(false); + } + optionMenu.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -248,7 +217,7 @@ public class TableFragment extends Fragment implements FragmentUpdateListener { tableHeaderView.removeAllViews(); ArrayList visibleMeasurements = new ArrayList<>(); - for (MeasurementView measurement : measurementsList) { + for (MeasurementView measurement : measurementViews) { measurement.updatePreferences(prefs); if (measurement.isVisible()) { 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 0d6ed42f..7d4c7e2a 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 @@ -43,6 +43,9 @@ import com.health.openscale.core.datatypes.ScaleMeasurement; import com.health.openscale.core.datatypes.ScaleUser; import com.health.openscale.core.evaluation.EvaluationResult; +import java.util.ArrayList; +import java.util.List; + import lecho.lib.hellocharts.util.ChartUtils; import static com.health.openscale.gui.views.MeasurementView.MeasurementViewMode.ADD; @@ -77,6 +80,28 @@ public abstract class MeasurementView extends TableLayout { iconView.setImageDrawable(icon); } + public static final List getMeasurementList(Context context) { + final List measurementViews = new ArrayList<>(); + + measurementViews.add(new DateMeasurementView(context)); + measurementViews.add(new TimeMeasurementView(context)); + measurementViews.add(new WeightMeasurementView(context)); + measurementViews.add(new BMIMeasurementView(context)); + measurementViews.add(new WaterMeasurementView(context)); + measurementViews.add(new MuscleMeasurementView(context)); + measurementViews.add(new LBWMeasurementView(context)); + measurementViews.add(new FatMeasurementView(context)); + measurementViews.add(new BoneMeasurementView(context)); + measurementViews.add(new WaistMeasurementView(context)); + measurementViews.add(new WHtRMeasurementView(context)); + measurementViews.add(new HipMeasurementView(context)); + measurementViews.add(new WHRMeasurementView(context)); + measurementViews.add(new BMRMeasurementView(context)); + measurementViews.add(new CommentMeasurementView(context)); + + return measurementViews; + } + private void initView(Context context) { measurementRow = new TableRow(context);