1
0
mirror of https://github.com/oliexdev/openScale.git synced 2025-08-25 17:42:29 +02:00

add line/coloumn dependency in chart fragment.

This commit is contained in:
OliE
2014-12-29 16:11:24 +01:00
parent 8306c2c910
commit d6f4ccfb72
6 changed files with 388 additions and 114 deletions

View File

@@ -16,6 +16,11 @@
package com.health.openscale.core; package com.health.openscale.core;
import android.content.Context;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
@@ -27,11 +32,6 @@ import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import android.content.Context;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
public class OpenScale { public class OpenScale {
private static OpenScale instance; private static OpenScale instance;
@@ -144,6 +144,14 @@ public class OpenScale {
scaleDBEntries = scaleDB.getAllDBEntries(); scaleDBEntries = scaleDB.getAllDBEntries();
} }
public int[] getCountsOfMonth(int year) {
return scaleDB.getCountsOfAllMonth(year);
}
public ArrayList<ScaleData> getAllDataOfMonth(int year, int month) {
return scaleDB.getAllDBEntriesOfMonth(year, month);
}
public void startBluetoothServer(String deviceName) { public void startBluetoothServer(String deviceName) {
Log.d("OpenScale", "Bluetooth Server started! I am searching for device ..."); Log.d("OpenScale", "Bluetooth Server started! I am searching for device ...");
@@ -166,9 +174,6 @@ public class OpenScale {
} }
} }
/**
* The Handler that gets information back from the BluetoothChatService
*/
private final Handler btHandler = new Handler() { private final Handler btHandler = new Handler() {
@Override @Override
public void handleMessage(Message msg) { public void handleMessage(Message msg) {

View File

@@ -16,20 +16,20 @@
package com.health.openscale.core; package com.health.openscale.core;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Locale;
import android.content.ContentValues; import android.content.ContentValues;
import android.content.Context; import android.content.Context;
import android.database.Cursor; import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log; import android.util.Log;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
public class ScaleDatabase extends SQLiteOpenHelper { public class ScaleDatabase extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 1; private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "openScaleDatabase.db"; private static final String DATABASE_NAME = "openScaleDatabase.db";
@@ -97,12 +97,105 @@ public class ScaleDatabase extends SQLiteOpenHelper {
} }
} }
public int[] getCountsOfAllMonth(int year) {
int [] numOfMonth = new int[12];
SQLiteDatabase db = getReadableDatabase();
Calendar start_cal = Calendar.getInstance();
Calendar end_cal = Calendar.getInstance();
for (int i=0; i<12; i++) {
start_cal.set(year, i, 1, 0, 0, 0);
end_cal.set(year, i, 1, 0, 0, 0);
end_cal.add(Calendar.MONTH, 1);
Cursor cursorScaleDB = db.query(
TABLE_NAME, // The table to query
new String[]{"count(*)"}, // The columns to return
COLUMN_NAME_DATE_TIME + " >= ? AND " + COLUMN_NAME_DATE_TIME + " < ? ", // The columns for the WHERE clause
new String[]{formatDateTime.format(start_cal.getTime()), formatDateTime.format(end_cal.getTime())}, // The values for the WHERE clause
null, // don't group the rows
null, // don't filter by row groups
null // The sort order
);
cursorScaleDB.moveToFirst();
numOfMonth[i] = cursorScaleDB.getInt(0);
}
return numOfMonth;
}
public ArrayList<ScaleData> getAllDBEntriesOfMonth(int year, int month) {
SQLiteDatabase db = getReadableDatabase();
ArrayList<ScaleData> scaleDBEntries = new ArrayList<ScaleData>();
String[] projection = {
COLUMN_NAME_ID,
COLUMN_NAME_DATE_TIME,
COLUMN_NAME_WEIGHT,
COLUMN_NAME_FAT,
COLUMN_NAME_WATER,
COLUMN_NAME_MUSCLE
};
String sortOrder = COLUMN_NAME_DATE_TIME + " DESC";
Calendar start_cal = Calendar.getInstance();
Calendar end_cal = Calendar.getInstance();
start_cal.set(year, month, 1, 0, 0, 0);
end_cal.set(year, month, 1, 0, 0, 0);
end_cal.add(Calendar.MONTH, 1);
Cursor cursorScaleDB = db.query(
TABLE_NAME, // The table to query
projection, // The columns to return
COLUMN_NAME_DATE_TIME + " >= ? AND " + COLUMN_NAME_DATE_TIME + " < ? ", // The columns for the WHERE clause
new String[]{formatDateTime.format(start_cal.getTime()), formatDateTime.format(end_cal.getTime())}, // The values for the WHERE clause
null, // don't group the rows
null, // don't filter by row groups
sortOrder // The sort order
);
try {
cursorScaleDB.moveToFirst();
while (!cursorScaleDB.isAfterLast()) {
ScaleData dataEntry = new ScaleData();
dataEntry.id = cursorScaleDB.getLong(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_ID));
String date_time = cursorScaleDB.getString(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_DATE_TIME));
dataEntry.weight = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_WEIGHT));
dataEntry.fat = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_FAT));
dataEntry.water = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_WATER));
dataEntry.muscle = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_MUSCLE));
Date date = formatDateTime.parse(date_time);
dataEntry.date_time = date;
scaleDBEntries.add(dataEntry);
cursorScaleDB.moveToNext();
}
} catch (ParseException ex) {
Log.e("ScaleDatabase", "Can't parse the date time string: " + ex.getMessage());
}
catch ( IllegalArgumentException ex) {
Log.e("ScaleDatabase", "Illegal argument while reading from scale database: " + ex.getMessage());
}
return scaleDBEntries;
}
public ArrayList<ScaleData> getAllDBEntries() { public ArrayList<ScaleData> getAllDBEntries() {
SQLiteDatabase db = getReadableDatabase(); SQLiteDatabase db = getReadableDatabase();
ArrayList<ScaleData> scaleDBEntries = new ArrayList<ScaleData>(); ArrayList<ScaleData> scaleDBEntries = new ArrayList<ScaleData>();
// Define a projection that specifies which columns from the database
// you will actually use after this query.
String[] projection = { String[] projection = {
COLUMN_NAME_ID, COLUMN_NAME_ID,
COLUMN_NAME_DATE_TIME, COLUMN_NAME_DATE_TIME,
@@ -112,7 +205,6 @@ public class ScaleDatabase extends SQLiteOpenHelper {
COLUMN_NAME_MUSCLE COLUMN_NAME_MUSCLE
}; };
// How you want the results sorted in the resulting Cursor
String sortOrder = COLUMN_NAME_DATE_TIME + " DESC"; String sortOrder = COLUMN_NAME_DATE_TIME + " DESC";
Cursor cursorScaleDB = db.query( Cursor cursorScaleDB = db.query(

View File

@@ -16,32 +16,51 @@
package com.health.openscale.gui; package com.health.openscale.gui;
import java.text.DateFormat;
import java.util.ArrayList;
import java.util.List;
import lecho.lib.hellocharts.model.Axis;
import lecho.lib.hellocharts.model.AxisValue;
import lecho.lib.hellocharts.model.Line;
import lecho.lib.hellocharts.model.LineChartData;
import lecho.lib.hellocharts.model.PointValue;
import lecho.lib.hellocharts.view.LineChartView;
import android.graphics.Color; import android.graphics.Color;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.TextView;
import com.health.openscale.R; import com.health.openscale.R;
import com.health.openscale.core.OpenScale;
import com.health.openscale.core.ScaleData; import com.health.openscale.core.ScaleData;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.Locale;
import lecho.lib.hellocharts.gesture.ZoomType;
import lecho.lib.hellocharts.model.Axis;
import lecho.lib.hellocharts.model.AxisValue;
import lecho.lib.hellocharts.model.Column;
import lecho.lib.hellocharts.model.ColumnChartData;
import lecho.lib.hellocharts.model.ColumnValue;
import lecho.lib.hellocharts.model.Line;
import lecho.lib.hellocharts.model.LineChartData;
import lecho.lib.hellocharts.model.PointValue;
import lecho.lib.hellocharts.model.SimpleValueFormatter;
import lecho.lib.hellocharts.model.Viewport;
import lecho.lib.hellocharts.util.Utils;
import lecho.lib.hellocharts.view.ColumnChartView;
import lecho.lib.hellocharts.view.LineChartView;
public class GraphFragment extends Fragment implements FragmentUpdateListener { public class GraphFragment extends Fragment implements FragmentUpdateListener {
private View graphView; private View graphView;
private LineChartView chartView; private LineChartView chartTop;
private ColumnChartView chartBottom;
private TextView txtYear;
private OpenScale openScale;
private Calendar yearCal;
public GraphFragment() { public GraphFragment() {
yearCal = Calendar.getInstance();
} }
@Override @Override
@@ -49,7 +68,28 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener {
{ {
graphView = inflater.inflate(R.layout.fragment_graph, container, false); graphView = inflater.inflate(R.layout.fragment_graph, container, false);
chartView = (LineChartView) graphView.findViewById(R.id.data_chart); chartTop = (LineChartView) graphView.findViewById(R.id.chart_top);
chartBottom = (ColumnChartView) graphView.findViewById(R.id.chart_bottom);
txtYear = (TextView) graphView.findViewById(R.id.txtYear);
txtYear.setText(Integer.toString(yearCal.get(Calendar.YEAR)));
graphView.findViewById(R.id.btnLeftYear).setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
yearCal.roll(Calendar.YEAR, false);
txtYear.setText(Integer.toString(yearCal.get(Calendar.YEAR)));
updateOnView(null);
}
});
graphView.findViewById(R.id.btnRightYear).setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
yearCal.roll(Calendar.YEAR, true);
txtYear.setText(Integer.toString(yearCal.get(Calendar.YEAR)));
updateOnView(null);
}
});
openScale = OpenScale.getInstance(graphView.getContext());
return graphView; return graphView;
} }
@@ -57,63 +97,148 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener {
@Override @Override
public void updateOnView(ArrayList<ScaleData> scaleDBEntries) public void updateOnView(ArrayList<ScaleData> scaleDBEntries)
{ {
if (scaleDBEntries.isEmpty()) { generateColumnData();
LineChartData data = new LineChartData();
chartView.setLineChartData(data);
return;
}
List<AxisValue> axisValues = new ArrayList<AxisValue>();
List<PointValue> valuesWeight = new ArrayList<PointValue>();
List<PointValue> valuesFat = new ArrayList<PointValue>();
List<PointValue> valuesWater = new ArrayList<PointValue>();
List<PointValue> valuesMuscle = new ArrayList<PointValue>();
List<Line> lines = new ArrayList<Line>();
for(ScaleData scaleEntry: scaleDBEntries)
{
valuesWeight.add(new PointValue(scaleEntry.date_time.getTime(), scaleEntry.weight));
valuesFat.add(new PointValue(scaleEntry.date_time.getTime(), scaleEntry.fat));
valuesWater.add(new PointValue(scaleEntry.date_time.getTime(), scaleEntry.water));
valuesMuscle.add(new PointValue(scaleEntry.date_time.getTime(), scaleEntry.muscle));
axisValues.add(new AxisValue(scaleEntry.date_time.getTime(), DateFormat.getDateInstance(DateFormat.SHORT).format(scaleEntry.date_time).toCharArray()));
}
Line lineWeight = new Line(valuesWeight).setColor(Color.GREEN);
Line lineFat = new Line(valuesFat).setColor(Color.RED);
Line lineWater = new Line(valuesWater).setColor(Color.BLUE);
Line lineMuscle = new Line(valuesMuscle).setColor(Color.GRAY);
lines.add(lineWeight);
lines.add(lineFat);
lines.add(lineWater);
lines.add(lineMuscle);
lineWeight.setHasLabels(true);
lineWeight.setHasLabelsOnlyForSelected(true);
lineFat.setHasLabelsOnlyForSelected(true);
LineChartData data = new LineChartData();
Axis axisX = new Axis(axisValues);
Axis axisY = new Axis();
axisY.setHasLines(true);
axisX.setName(getResources().getString(R.string.label_x_axis));
axisY.setName(getResources().getString(R.string.label_y_axis));
axisX.setTextColor(Color.BLACK);
axisY.setTextColor(Color.BLACK);
data.setAxisXBottom(axisX);
data.setAxisYLeft(axisY);
data.setLines(lines);
chartView.setLineChartData(data);
} }
private void generateLineData(Calendar cal)
{
ArrayList<ScaleData> scaleDBEntries = openScale.getAllDataOfMonth(yearCal.get(Calendar.YEAR), cal.get(Calendar.MONTH));
SimpleDateFormat day_date = new SimpleDateFormat("dd", Locale.getDefault());
cal.set(Calendar.DAY_OF_MONTH, 1);
int max_days = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
List<AxisValue> axisValues = new ArrayList<AxisValue>();
for (int i=0; i<max_days; i++) {
String day_name = day_date.format(cal.getTime());
axisValues.add(new AxisValue(i, day_name.toCharArray()));
cal.add(Calendar.DAY_OF_MONTH, 1);
}
List<PointValue> valuesWeight = new ArrayList<PointValue>();
List<PointValue> valuesFat = new ArrayList<PointValue>();
List<PointValue> valuesWater = new ArrayList<PointValue>();
List<PointValue> valuesMuscle = new ArrayList<PointValue>();
List<Line> lines = new ArrayList<Line>();
Calendar calDB = Calendar.getInstance();
for(ScaleData scaleEntry: scaleDBEntries)
{
calDB.setTime(scaleEntry.date_time);
valuesWeight.add(new PointValue(calDB.get(Calendar.DAY_OF_MONTH), scaleEntry.weight));
valuesFat.add(new PointValue(calDB.get(Calendar.DAY_OF_MONTH), scaleEntry.fat));
valuesWater.add(new PointValue(calDB.get(Calendar.DAY_OF_MONTH), scaleEntry.water));
valuesMuscle.add(new PointValue(calDB.get(Calendar.DAY_OF_MONTH), scaleEntry.muscle));
}
Line lineWeight = new Line(valuesWeight).
setColor(Utils.COLOR_VIOLET).
setCubic(true).
setHasLabels(true).
setFormatter(new SimpleValueFormatter(1, false, null, null));
Line lineFat = new Line(valuesFat).
setColor(Utils.COLOR_ORANGE).
setCubic(true).
setHasLabels(true).
setFormatter(new SimpleValueFormatter(1, false, null, null));
Line lineWater = new Line(valuesWater).
setColor(Utils.COLOR_BLUE).
setCubic(true).
setHasLabels(true).
setFormatter(new SimpleValueFormatter(1, false, null, null));
Line lineMuscle = new Line(valuesMuscle).
setColor(Utils.COLOR_GREEN).
setCubic(true).
setHasLabels(true).
setFormatter(new SimpleValueFormatter(1, false, null, null));
lines.add(lineWeight);
lines.add(lineFat);
lines.add(lineWater);
lines.add(lineMuscle);
LineChartData lineData = new LineChartData(lines);
lineData.setAxisXBottom(new Axis(axisValues).
setHasLines(true).
setTextColor(Color.BLACK).
setName(getResources().getString(R.string.label_x_axis))
);
lineData.setAxisYLeft(new Axis().
setHasLines(true).
setMaxLabelChars(3).
setTextColor(Color.BLACK).
setName(getResources().getString(R.string.label_y_axis))
);
chartTop.setLineChartData(lineData);
chartTop.setViewportCalculationEnabled(false);
Viewport v = new Viewport(0, 110, max_days, 0);
chartTop.setMaximumViewport(v);
chartTop.setCurrentViewport(v, true);
chartTop.setZoomType(ZoomType.HORIZONTAL);
}
private void generateColumnData()
{
int[] numOfMonth = openScale.getCountsOfMonth(yearCal.get(Calendar.YEAR));
Calendar cal = Calendar.getInstance();
cal.set(Calendar.MONTH, Calendar.JANUARY);
SimpleDateFormat month_date = new SimpleDateFormat("MMM", Locale.getDefault());
List<AxisValue> axisValues = new ArrayList<AxisValue>();
List<Column> columns = new ArrayList<Column>();
for (int i=0; i<12; i++) {
String month_name = month_date.format(cal.getTime());
axisValues.add(new AxisValue(i, month_name.toCharArray()));
List<ColumnValue> values = new ArrayList<ColumnValue>();
values.add(new ColumnValue(numOfMonth[i], Utils.COLORS[i % Utils.COLORS.length]));
columns.add(new Column(values).setHasLabelsOnlyForSelected(true));
cal.add(Calendar.MONTH, 1);
}
ColumnChartData columnData = new ColumnChartData(columns);
columnData.setAxisXBottom(new Axis(axisValues).setHasLines(true).setTextColor(Color.BLACK));
chartBottom.setColumnChartData(columnData);
chartBottom.setValueSelectionEnabled(true);
chartBottom.setZoomType(ZoomType.HORIZONTAL);
chartBottom.setOnValueTouchListener(new ValueTouchListener());
generateLineData(cal);
}
private class ValueTouchListener implements ColumnChartView.ColumnChartOnValueTouchListener {
@Override
public void onValueTouched(int selectedLine, int selectedValue, ColumnValue value) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.MONTH, Calendar.JANUARY);
cal.add(Calendar.MONTH, selectedLine);
generateLineData(cal);
}
@Override
public void onNothingTouched() {
}
}
} }

View File

@@ -15,18 +15,9 @@
*/ */
package com.health.openscale.gui; package com.health.openscale.gui;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import lecho.lib.hellocharts.model.ArcValue;
import lecho.lib.hellocharts.model.PieChartData;
import lecho.lib.hellocharts.util.Utils;
import lecho.lib.hellocharts.view.PieChartView;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@@ -36,6 +27,16 @@ import com.health.openscale.R;
import com.health.openscale.core.OpenScale; import com.health.openscale.core.OpenScale;
import com.health.openscale.core.ScaleData; import com.health.openscale.core.ScaleData;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import lecho.lib.hellocharts.model.ArcValue;
import lecho.lib.hellocharts.model.PieChartData;
import lecho.lib.hellocharts.model.SimpleValueFormatter;
import lecho.lib.hellocharts.util.Utils;
import lecho.lib.hellocharts.view.PieChartView;
public class OverviewFragment extends Fragment implements FragmentUpdateListener { public class OverviewFragment extends Fragment implements FragmentUpdateListener {
private View overviewView; private View overviewView;
private PieChartView pieChart; private PieChartView pieChart;
@@ -83,6 +84,7 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener
PieChartData pieChartData = new PieChartData(arcValues); PieChartData pieChartData = new PieChartData(arcValues);
pieChartData.setHasLabels(true); pieChartData.setHasLabels(true);
pieChartData.setFormatter(new SimpleValueFormatter(1, false, null, " %".toCharArray()));
pieChartData.setHasCenterCircle(true); pieChartData.setHasCenterCircle(true);
pieChartData.setCenterText1(Float.toString(lastEntry.weight) + " " + getResources().getString(R.string.weight_unit)); pieChartData.setCenterText1(Float.toString(lastEntry.weight) + " " + getResources().getString(R.string.weight_unit));
pieChartData.setCenterText1FontSize(35); pieChartData.setCenterText1FontSize(35);

View File

@@ -13,13 +13,63 @@
android:layout_height="fill_parent" android:layout_height="fill_parent"
android:layout_alignParentLeft="true" android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" android:layout_alignParentTop="true"
android:orientation="vertical" > android:orientation="vertical"
android:id="@+id/linearLayout">
<lecho.lib.hellocharts.view.LineChartView <LinearLayout
android:id="@+id/data_chart" android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:gravity="center">
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="20dp"
android:text="&lt;"
android:id="@+id/btnLeftYear"
android:background="@drawable/flat_selector"
android:textColor="@android:color/white" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="year"
android:id="@+id/txtYear"
android:gravity="center"
android:layout_weight="0"
android:textStyle="bold"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="20dp"
android:text=">"
android:id="@+id/btnRightYear"
android:background="@drawable/flat_selector"
android:textColor="@android:color/white"
android:layout_weight="0" />
</LinearLayout>
<lecho.lib.hellocharts.view.LineChartView
android:id="@+id/chart_top"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" /> android:layout_height="0dp"
android:layout_weight="1"
/>
</LinearLayout> <lecho.lib.hellocharts.view.ColumnChartView
android:id="@+id/chart_bottom"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_marginTop="10dp" />
</LinearLayout>
</RelativeLayout> </RelativeLayout>

View File

@@ -2,9 +2,9 @@
<resources> <resources>
<string name="app_name">openScale</string> <string name="app_name">openScale</string>
<string name="title_overview">overview</string> <string name="title_overview">Overview</string>
<string name="title_graph">graph</string> <string name="title_graph">Chart</string>
<string name="title_frag">table</string> <string name="title_frag">Table</string>
<string name="action_settings">Settings</string> <string name="action_settings">Settings</string>
<string name="label_add">Add</string> <string name="label_add">Add</string>
<string name="label_cancel">Cancel</string> <string name="label_cancel">Cancel</string>
@@ -32,7 +32,7 @@
<string name="label_export">Export</string> <string name="label_export">Export</string>
<string name="label_delete_all">Delete all</string> <string name="label_delete_all">Delete all</string>
<string name="label_x_axis">Date</string> <string name="label_x_axis">Day</string>
<string name="label_y_axis">Value</string> <string name="label_y_axis">Value</string>
<string name="error_weight_value_required">Weight value is required!</string> <string name="error_weight_value_required">Weight value is required!</string>