From a90e0074fc4752a34b3a0ecebcf92db673603334 Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Fri, 3 Mar 2017 17:33:00 +0100 Subject: [PATCH] Change weekly sleep charts to display sleep from 12:00-12:00 instead of 0:00-0:00 --- .../charts/AbstractWeekChartFragment.java | 20 ++++++++++--------- .../activities/charts/ChartsActivity.java | 2 +- .../charts/WeekSleepChartFragment.java | 5 +++++ .../charts/WeekStepsChartFragment.java | 5 +++++ 4 files changed, 22 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/AbstractWeekChartFragment.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/AbstractWeekChartFragment.java index 0cd9a83a..ee16f2dd 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/AbstractWeekChartFragment.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/AbstractWeekChartFragment.java @@ -47,6 +47,8 @@ public abstract class AbstractWeekChartFragment extends AbstractChartFragment { private PieChart mTodayPieChart; private BarChart mWeekChart; + private int mOffsetHours = getOffsetHours(); + @Override protected ChartsData refreshInBackground(ChartsHost chartsHost, DBHandler db, GBDevice device) { Calendar day = Calendar.getInstance(); @@ -213,7 +215,7 @@ public abstract class AbstractWeekChartFragment extends AbstractChartFragment { // chart.getLegend().setTextColor(LEGEND_TEXT_COLOR); } - private List getSamplesOfDay(DBHandler db, Calendar day, GBDevice device) { + private List getSamplesOfDay(DBHandler db, Calendar day, int offsetHours, GBDevice device) { int startTs; int endTs; @@ -221,12 +223,10 @@ public abstract class AbstractWeekChartFragment extends AbstractChartFragment { day.set(Calendar.HOUR_OF_DAY, 0); day.set(Calendar.MINUTE, 0); day.set(Calendar.SECOND, 0); - startTs = (int) (day.getTimeInMillis() / 1000); + day.add(Calendar.HOUR, offsetHours); - day.set(Calendar.HOUR_OF_DAY, 23); - day.set(Calendar.MINUTE, 59); - day.set(Calendar.SECOND, 59); - endTs = (int) (day.getTimeInMillis() / 1000); + startTs = (int) (day.getTimeInMillis() / 1000); + endTs = startTs + 24 * 60 * 60 - 1; return getSamples(db, device, startTs, endTs); } @@ -272,14 +272,14 @@ public abstract class AbstractWeekChartFragment extends AbstractChartFragment { Activity activity = getActivity(); if (activity != null) { activityAmountCache = ((ChartsActivity) activity).mActivityAmountCache; - amounts = (ActivityAmounts) (activityAmountCache.lookup(day.hashCode())); + amounts = (ActivityAmounts) (activityAmountCache.lookup(day.hashCode() ^ mOffsetHours)); } if (amounts == null) { ActivityAnalysis analysis = new ActivityAnalysis(); - amounts = analysis.calculateActivityAmounts(getSamplesOfDay(db, day, device)); + amounts = analysis.calculateActivityAmounts(getSamplesOfDay(db, day, mOffsetHours, device)); if (activityAmountCache != null) { - activityAmountCache.add(day.hashCode(), amounts); + activityAmountCache.add(day.hashCode() ^ mOffsetHours, amounts); } } @@ -288,6 +288,8 @@ public abstract class AbstractWeekChartFragment extends AbstractChartFragment { abstract int getGoal(); + abstract int getOffsetHours(); + abstract float[] getTotalsForActivityAmounts(ActivityAmounts activityAmounts); abstract String formatPieValue(int value); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/ChartsActivity.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/ChartsActivity.java index 02adaeb2..19a42c66 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/ChartsActivity.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/ChartsActivity.java @@ -53,7 +53,7 @@ public class ChartsActivity extends AbstractGBFragmentActivity implements Charts private PagerTabStrip mPagerTabStrip; private ViewPager viewPager; - LimitedQueue mActivityAmountCache = new LimitedQueue(32); + LimitedQueue mActivityAmountCache = new LimitedQueue(60); private static class ShowDurationDialog extends Dialog { private final String mDuration; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/WeekSleepChartFragment.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/WeekSleepChartFragment.java index bf237cb9..1f2fd008 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/WeekSleepChartFragment.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/WeekSleepChartFragment.java @@ -30,6 +30,11 @@ public class WeekSleepChartFragment extends AbstractWeekChartFragment { return 8 * 60; // FIXME } + @Override + int getOffsetHours() { + return -12; + } + @Override float[] getTotalsForActivityAmounts(ActivityAmounts activityAmounts) { long totalSecondsDeepSleep = 0; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/WeekStepsChartFragment.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/WeekStepsChartFragment.java index ea6019f6..23756010 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/WeekStepsChartFragment.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/WeekStepsChartFragment.java @@ -29,6 +29,11 @@ public class WeekStepsChartFragment extends AbstractWeekChartFragment { return -1; } + @Override + int getOffsetHours() { + return 0; + } + @Override float[] getTotalsForActivityAmounts(ActivityAmounts activityAmounts) { int totalSteps = 0;