From b1cf867410ada0ff6b8a9e160e1bc2b8ebdb31fa Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Thu, 9 Jun 2016 09:17:55 +0200 Subject: [PATCH] some graph adjustments --- .../androidaps/db/DatabaseHelper.java | 4 +-- .../plugins/Overview/OverviewFragment.java | 27 ++++++++++++++----- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/db/DatabaseHelper.java b/app/src/main/java/info/nightscout/androidaps/db/DatabaseHelper.java index 8c594c9bb3..a0632068cd 100644 --- a/app/src/main/java/info/nightscout/androidaps/db/DatabaseHelper.java +++ b/app/src/main/java/info/nightscout/androidaps/db/DatabaseHelper.java @@ -143,7 +143,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper { return null; } - public List get12HoursOfBg() { + public List getHoursOfBg(int hoursToFetch) { try { Dao daoBgreadings = getDaoBgReadings(); List bgReadings; @@ -151,7 +151,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper { queryBuilder.orderBy("timeIndex", false); Where where = queryBuilder.where(); long now = new Date().getTime(); - long dayAgo = now - 12 * 60 * 60 * 1000l; + long dayAgo = now - hoursToFetch * 60 * 60 * 1000l; where.ge("timeIndex", (long) Math.ceil(dayAgo / 60000d)); PreparedQuery preparedQuery = queryBuilder.prepare(); bgReadings = daoBgreadings.query(preparedQuery); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java index e95d8b5164..1a221cfe0c 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java @@ -4,6 +4,7 @@ import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.support.v4.app.Fragment; +import android.support.v4.app.ShareCompat; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -17,6 +18,8 @@ import com.squareup.otto.Subscribe; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.text.SimpleDateFormat; +import java.util.Calendar; import java.util.List; import info.nightscout.androidaps.MainApp; @@ -76,10 +79,15 @@ public class OverviewFragment extends Fragment { if (bgGraph == null) return; - List bgReadingsArray = MainApp.getDbHelper().get12HoursOfBg(); + int hoursToFetch = 6; + + List bgReadingsArray = MainApp.getDbHelper().getHoursOfBg(hoursToFetch); BgReading[] bgReadings = new BgReading[bgReadingsArray.size()]; bgReadings = bgReadingsArray.toArray(bgReadings); + if (bgReadings.length == 0) + return; + PointsGraphSeries series = new PointsGraphSeries(bgReadings); bgGraph.addSeries(series); series.setShape(PointsGraphSeries.Shape.POINT); @@ -87,16 +95,23 @@ public class OverviewFragment extends Fragment { series.setColor(Color.GREEN); // set date label formatter - bgGraph.getGridLabelRenderer().setLabelFormatter(new DateAsXAxisLabelFormatter(getActivity(), android.text.format.DateFormat.getTimeFormat(getActivity()))); - bgGraph.getGridLabelRenderer().setNumVerticalLabels(5); // only 4 because of the space - //bgGraph.getGridLabelRenderer().setNumHorizontalLabels(3); // only 4 because of the space + bgGraph.getGridLabelRenderer().setLabelFormatter(new DateAsXAxisLabelFormatter(getActivity(), new SimpleDateFormat("HH"))); + bgGraph.getGridLabelRenderer().setNumVerticalLabels(11); // only 5 because of the space + bgGraph.getGridLabelRenderer().setNumHorizontalLabels(7); // only 7 because of the space + // allign to hours + Calendar calendar = Calendar.getInstance(); + calendar.setTimeInMillis(bgReadings[0].timestamp); + calendar.set(Calendar.SECOND, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.add(Calendar.HOUR, 1); // set manual x bounds to have nice steps - bgGraph.getViewport().setMaxX(bgReadings[0].timestamp); - bgGraph.getViewport().setMinX(bgReadings[bgReadings.length-1].timestamp); + bgGraph.getViewport().setMaxX(calendar.getTimeInMillis()); + bgGraph.getViewport().setMinX(calendar.getTimeInMillis() - hoursToFetch * 60 * 60 * 1000l); bgGraph.getViewport().setXAxisBoundsManual(true); // set manual y bounds to have nice steps + // TODO: MGDL support bgGraph.getViewport().setMaxY(20); bgGraph.getViewport().setMinY(0); bgGraph.getViewport().setYAxisBoundsManual(true);