mirror of
https://github.com/oliexdev/openScale.git
synced 2025-08-23 16:53:04 +02:00
@@ -32,7 +32,7 @@ public class CsvHelper {
|
|||||||
csvProcessor.writeAll(writer, measurements, true);
|
csvProcessor.writeAll(writer, measurements, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
static private String[] getOldStyleHeaders(String sampleLine) {
|
private static String[] getOldStyleHeaders(String sampleLine) {
|
||||||
final String[] fields = sampleLine.split(",", -1);
|
final String[] fields = sampleLine.split(",", -1);
|
||||||
|
|
||||||
// Return an array with header fields so that all the headers that actually are
|
// Return an array with header fields so that all the headers that actually are
|
||||||
|
@@ -135,6 +135,24 @@ public class DataEntryActivity extends Activity {
|
|||||||
updateOnView();
|
updateOnView();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onRestoreInstanceState(Bundle savedInstanceState) {
|
||||||
|
super.onRestoreInstanceState(savedInstanceState);
|
||||||
|
|
||||||
|
for (MeasurementView measurement : dataEntryMeasurements) {
|
||||||
|
measurement.restoreState(savedInstanceState);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onSaveInstanceState(Bundle outState) {
|
||||||
|
super.onSaveInstanceState(outState);
|
||||||
|
|
||||||
|
for (MeasurementView measurement : dataEntryMeasurements) {
|
||||||
|
measurement.saveState(outState);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void updateOnView()
|
private void updateOnView()
|
||||||
{
|
{
|
||||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
||||||
|
@@ -88,7 +88,9 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener {
|
|||||||
private Calendar calYears;
|
private Calendar calYears;
|
||||||
private Calendar calLastSelected;
|
private Calendar calLastSelected;
|
||||||
|
|
||||||
private List<ScaleMeasurement> scaleMeasurementList;
|
private static String CAL_YEARS_KEY = "calYears";
|
||||||
|
private static String CAL_LAST_SELECTED_KEY = "calLastSelected";
|
||||||
|
|
||||||
private List<ScaleMeasurement> pointIndexScaleMeasurementList;
|
private List<ScaleMeasurement> pointIndexScaleMeasurementList;
|
||||||
|
|
||||||
public GraphFragment() {
|
public GraphFragment() {
|
||||||
@@ -101,10 +103,16 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener {
|
|||||||
{
|
{
|
||||||
openScale = OpenScale.getInstance(getContext());
|
openScale = OpenScale.getInstance(getContext());
|
||||||
|
|
||||||
scaleMeasurementList = openScale.getScaleMeasurementList();
|
if (savedInstanceState == null) {
|
||||||
if (!scaleMeasurementList.isEmpty()) {
|
List<ScaleMeasurement> scaleMeasurementList = openScale.getScaleMeasurementList();
|
||||||
calYears.setTime(scaleMeasurementList.get(0).getDateTime());
|
if (!scaleMeasurementList.isEmpty()) {
|
||||||
calLastSelected.setTime(scaleMeasurementList.get(0).getDateTime());
|
calYears.setTime(scaleMeasurementList.get(0).getDateTime());
|
||||||
|
calLastSelected.setTime(scaleMeasurementList.get(0).getDateTime());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
calYears.setTimeInMillis(savedInstanceState.getLong(CAL_YEARS_KEY));
|
||||||
|
calLastSelected.setTimeInMillis(savedInstanceState.getLong(CAL_LAST_SELECTED_KEY));
|
||||||
}
|
}
|
||||||
|
|
||||||
graphView = inflater.inflate(R.layout.fragment_graph, container, false);
|
graphView = inflater.inflate(R.layout.fragment_graph, container, false);
|
||||||
@@ -179,6 +187,12 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener {
|
|||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
calYears.roll(Calendar.YEAR, false);
|
calYears.roll(Calendar.YEAR, false);
|
||||||
txtYear.setText(Integer.toString(calYears.get(Calendar.YEAR)));
|
txtYear.setText(Integer.toString(calYears.get(Calendar.YEAR)));
|
||||||
|
|
||||||
|
List<ScaleMeasurement> scaleMeasurementList =
|
||||||
|
OpenScale.getInstance(getContext()).getScaleDataOfYear(calYears.get(Calendar.YEAR));
|
||||||
|
if (!scaleMeasurementList.isEmpty()) {
|
||||||
|
calLastSelected.setTime(scaleMeasurementList.get(0).getDateTime());
|
||||||
|
}
|
||||||
updateOnView(null);
|
updateOnView(null);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -188,6 +202,12 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener {
|
|||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
calYears.roll(Calendar.YEAR, true);
|
calYears.roll(Calendar.YEAR, true);
|
||||||
txtYear.setText(Integer.toString(calYears.get(Calendar.YEAR)));
|
txtYear.setText(Integer.toString(calYears.get(Calendar.YEAR)));
|
||||||
|
|
||||||
|
List<ScaleMeasurement> scaleMeasurementList =
|
||||||
|
OpenScale.getInstance(getContext()).getScaleDataOfYear(calYears.get(Calendar.YEAR));
|
||||||
|
if (!scaleMeasurementList.isEmpty()) {
|
||||||
|
calLastSelected.setTime(scaleMeasurementList.get(scaleMeasurementList.size() - 1).getDateTime());
|
||||||
|
}
|
||||||
updateOnView(null);
|
updateOnView(null);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -197,6 +217,14 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener {
|
|||||||
return graphView;
|
return graphView;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSaveInstanceState(Bundle outState) {
|
||||||
|
super.onSaveInstanceState(outState);
|
||||||
|
|
||||||
|
outState.putLong(CAL_YEARS_KEY, calYears.getTimeInMillis());
|
||||||
|
outState.putLong(CAL_LAST_SELECTED_KEY, calLastSelected.getTimeInMillis());
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateOnView(List<ScaleMeasurement> scaleMeasurementList)
|
public void updateOnView(List<ScaleMeasurement> scaleMeasurementList)
|
||||||
{
|
{
|
||||||
@@ -226,7 +254,7 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void generateLineData(int field)
|
private void generateLineData(int field, List<ScaleMeasurement> scaleMeasurementList)
|
||||||
{
|
{
|
||||||
SimpleDateFormat day_date = new SimpleDateFormat("D", Locale.getDefault());
|
SimpleDateFormat day_date = new SimpleDateFormat("D", Locale.getDefault());
|
||||||
|
|
||||||
@@ -493,7 +521,7 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener {
|
|||||||
int firstYear = selectedYear;
|
int firstYear = selectedYear;
|
||||||
int lastYear = selectedYear;
|
int lastYear = selectedYear;
|
||||||
|
|
||||||
scaleMeasurementList = openScale.getScaleMeasurementList();
|
List<ScaleMeasurement> scaleMeasurementList = openScale.getScaleMeasurementList();
|
||||||
if (!scaleMeasurementList.isEmpty()) {
|
if (!scaleMeasurementList.isEmpty()) {
|
||||||
Calendar cal = Calendar.getInstance();
|
Calendar cal = Calendar.getInstance();
|
||||||
|
|
||||||
@@ -522,7 +550,7 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener {
|
|||||||
generateColumnData();
|
generateColumnData();
|
||||||
scaleMeasurementList = openScale.getScaleDataOfMonth(selectedYear, calLastSelected.get(Calendar.MONTH));
|
scaleMeasurementList = openScale.getScaleDataOfMonth(selectedYear, calLastSelected.get(Calendar.MONTH));
|
||||||
|
|
||||||
generateLineData(Calendar.DAY_OF_MONTH);
|
generateLineData(Calendar.DAY_OF_MONTH, scaleMeasurementList);
|
||||||
// show only yearly diagram and hide monthly diagram
|
// show only yearly diagram and hide monthly diagram
|
||||||
} else {
|
} else {
|
||||||
chartTop.setVisibility(View.GONE);
|
chartTop.setVisibility(View.GONE);
|
||||||
@@ -530,7 +558,7 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener {
|
|||||||
|
|
||||||
scaleMeasurementList = openScale.getScaleDataOfYear(selectedYear);
|
scaleMeasurementList = openScale.getScaleDataOfYear(selectedYear);
|
||||||
|
|
||||||
generateLineData(Calendar.DAY_OF_YEAR);
|
generateLineData(Calendar.DAY_OF_YEAR, scaleMeasurementList);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -543,8 +571,9 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener {
|
|||||||
|
|
||||||
calLastSelected = cal;
|
calLastSelected = cal;
|
||||||
|
|
||||||
scaleMeasurementList = openScale.getScaleDataOfMonth(calYears.get(Calendar.YEAR), calLastSelected.get(Calendar.MONTH));
|
List<ScaleMeasurement> scaleMeasurementList =
|
||||||
generateLineData(Calendar.DAY_OF_MONTH);
|
openScale.getScaleDataOfMonth(calYears.get(Calendar.YEAR), calLastSelected.get(Calendar.MONTH));
|
||||||
|
generateLineData(Calendar.DAY_OF_MONTH, scaleMeasurementList);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -82,6 +82,7 @@ public class TableFragment extends Fragment implements FragmentUpdateListener {
|
|||||||
private ArrayList <MeasurementView> measurementsList;
|
private ArrayList <MeasurementView> measurementsList;
|
||||||
|
|
||||||
private int selectedSubpageNr;
|
private int selectedSubpageNr;
|
||||||
|
private static String SELECTED_SUBPAGE_NR_KEY = "selectedSubpageNr";
|
||||||
|
|
||||||
public TableFragment() {
|
public TableFragment() {
|
||||||
|
|
||||||
@@ -120,13 +121,24 @@ public class TableFragment extends Fragment implements FragmentUpdateListener {
|
|||||||
|
|
||||||
prefs = PreferenceManager.getDefaultSharedPreferences(tableView.getContext());
|
prefs = PreferenceManager.getDefaultSharedPreferences(tableView.getContext());
|
||||||
|
|
||||||
|
if (savedInstanceState == null) {
|
||||||
|
selectedSubpageNr = 0;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
selectedSubpageNr = savedInstanceState.getInt(SELECTED_SUBPAGE_NR_KEY);
|
||||||
|
}
|
||||||
|
|
||||||
OpenScale.getInstance(getContext()).registerFragment(this);
|
OpenScale.getInstance(getContext()).registerFragment(this);
|
||||||
|
|
||||||
selectedSubpageNr = 0;
|
|
||||||
|
|
||||||
return tableView;
|
return tableView;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSaveInstanceState(Bundle outState) {
|
||||||
|
super.onSaveInstanceState(outState);
|
||||||
|
outState.putInt(SELECTED_SUBPAGE_NR_KEY, selectedSubpageNr);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateOnView(List<ScaleMeasurement> scaleMeasurementList)
|
public void updateOnView(List<ScaleMeasurement> scaleMeasurementList)
|
||||||
{
|
{
|
||||||
|
@@ -17,6 +17,7 @@ package com.health.openscale.gui.views;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
|
import android.os.Bundle;
|
||||||
import android.support.v4.content.ContextCompat;
|
import android.support.v4.content.ContextCompat;
|
||||||
import android.text.InputType;
|
import android.text.InputType;
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
@@ -26,6 +27,7 @@ import com.health.openscale.core.datatypes.ScaleMeasurement;
|
|||||||
|
|
||||||
public class CommentMeasurementView extends MeasurementView {
|
public class CommentMeasurementView extends MeasurementView {
|
||||||
private String comment;
|
private String comment;
|
||||||
|
private static String COMMENT_KEY = "comment";
|
||||||
|
|
||||||
public CommentMeasurementView(Context context) {
|
public CommentMeasurementView(Context context) {
|
||||||
super(context, context.getResources().getString(R.string.label_comment), ContextCompat.getDrawable(context, R.drawable.ic_comment));
|
super(context, context.getResources().getString(R.string.label_comment), ContextCompat.getDrawable(context, R.drawable.ic_comment));
|
||||||
@@ -48,6 +50,16 @@ public class CommentMeasurementView extends MeasurementView {
|
|||||||
measurement.setComment(comment);
|
measurement.setComment(comment);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void restoreState(Bundle state) {
|
||||||
|
setValue(state.getString(COMMENT_KEY), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void saveState(Bundle state) {
|
||||||
|
state.putString(COMMENT_KEY, comment);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updatePreferences(SharedPreferences preferences) {
|
public void updatePreferences(SharedPreferences preferences) {
|
||||||
// Empty
|
// Empty
|
||||||
|
@@ -19,6 +19,7 @@ import android.app.AlertDialog;
|
|||||||
import android.app.DatePickerDialog;
|
import android.app.DatePickerDialog;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
|
import android.os.Bundle;
|
||||||
import android.support.v4.content.ContextCompat;
|
import android.support.v4.content.ContextCompat;
|
||||||
import android.widget.DatePicker;
|
import android.widget.DatePicker;
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
@@ -33,6 +34,7 @@ import java.util.Date;
|
|||||||
public class DateMeasurementView extends MeasurementView {
|
public class DateMeasurementView extends MeasurementView {
|
||||||
private static DateFormat dateFormat = DateFormat.getDateInstance();
|
private static DateFormat dateFormat = DateFormat.getDateInstance();
|
||||||
private Date date;
|
private Date date;
|
||||||
|
private static String DATE_KEY = "date";
|
||||||
|
|
||||||
public DateMeasurementView(Context context) {
|
public DateMeasurementView(Context context) {
|
||||||
super(context, context.getResources().getString(R.string.label_date), ContextCompat.getDrawable(context, R.drawable.ic_lastmonth));
|
super(context, context.getResources().getString(R.string.label_date), ContextCompat.getDrawable(context, R.drawable.ic_lastmonth));
|
||||||
@@ -64,6 +66,16 @@ public class DateMeasurementView extends MeasurementView {
|
|||||||
measurement.setDateTime(target.getTime());
|
measurement.setDateTime(target.getTime());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void restoreState(Bundle state) {
|
||||||
|
setValue(new Date(state.getLong(DATE_KEY)), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void saveState(Bundle state) {
|
||||||
|
state.putLong(DATE_KEY, date.getTime());
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updatePreferences(SharedPreferences preferences) {
|
public void updatePreferences(SharedPreferences preferences) {
|
||||||
// Empty
|
// Empty
|
||||||
|
@@ -19,6 +19,7 @@ package com.health.openscale.gui.views;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.text.InputType;
|
import android.text.InputType;
|
||||||
import android.text.SpannableStringBuilder;
|
import android.text.SpannableStringBuilder;
|
||||||
@@ -228,6 +229,16 @@ public abstract class FloatMeasurementView extends MeasurementView {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void restoreState(Bundle state) {
|
||||||
|
setValue(state.getFloat(nameText), previousValue, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void saveState(Bundle state) {
|
||||||
|
state.putFloat(nameText, value);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getValueAsString() {
|
public String getValueAsString() {
|
||||||
if (useAutoValue()) {
|
if (useAutoValue()) {
|
||||||
|
@@ -21,6 +21,7 @@ import android.content.DialogInterface;
|
|||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
|
import android.os.Bundle;
|
||||||
import android.support.v4.content.ContextCompat;
|
import android.support.v4.content.ContextCompat;
|
||||||
import android.util.TypedValue;
|
import android.util.TypedValue;
|
||||||
import android.view.Gravity;
|
import android.view.Gravity;
|
||||||
@@ -151,6 +152,9 @@ public abstract class MeasurementView extends TableLayout {
|
|||||||
public abstract void loadFrom(ScaleMeasurement measurement, ScaleMeasurement previousMeasurement);
|
public abstract void loadFrom(ScaleMeasurement measurement, ScaleMeasurement previousMeasurement);
|
||||||
public abstract void saveTo(ScaleMeasurement measurement);
|
public abstract void saveTo(ScaleMeasurement measurement);
|
||||||
|
|
||||||
|
public abstract void restoreState(Bundle state);
|
||||||
|
public abstract void saveState(Bundle state);
|
||||||
|
|
||||||
public abstract void updatePreferences(SharedPreferences preferences);
|
public abstract void updatePreferences(SharedPreferences preferences);
|
||||||
|
|
||||||
public abstract String getValueAsString();
|
public abstract String getValueAsString();
|
||||||
|
@@ -19,6 +19,7 @@ import android.app.AlertDialog;
|
|||||||
import android.app.TimePickerDialog;
|
import android.app.TimePickerDialog;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
|
import android.os.Bundle;
|
||||||
import android.support.v4.content.ContextCompat;
|
import android.support.v4.content.ContextCompat;
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
import android.widget.TimePicker;
|
import android.widget.TimePicker;
|
||||||
@@ -33,6 +34,7 @@ import java.util.Date;
|
|||||||
public class TimeMeasurementView extends MeasurementView {
|
public class TimeMeasurementView extends MeasurementView {
|
||||||
private DateFormat timeFormat;
|
private DateFormat timeFormat;
|
||||||
private Date time;
|
private Date time;
|
||||||
|
private static String TIME_KEY = "time";
|
||||||
|
|
||||||
public TimeMeasurementView(Context context) {
|
public TimeMeasurementView(Context context) {
|
||||||
super(context, context.getResources().getString(R.string.label_time), ContextCompat.getDrawable(context, R.drawable.ic_daysleft));
|
super(context, context.getResources().getString(R.string.label_time), ContextCompat.getDrawable(context, R.drawable.ic_daysleft));
|
||||||
@@ -67,6 +69,16 @@ public class TimeMeasurementView extends MeasurementView {
|
|||||||
measurement.setDateTime(target.getTime());
|
measurement.setDateTime(target.getTime());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void restoreState(Bundle state) {
|
||||||
|
setValue(new Date(state.getLong(TIME_KEY)), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void saveState(Bundle state) {
|
||||||
|
state.putLong(TIME_KEY, time.getTime());
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updatePreferences(SharedPreferences preferences) {
|
public void updatePreferences(SharedPreferences preferences) {
|
||||||
// Empty
|
// Empty
|
||||||
|
Reference in New Issue
Block a user