Search in sources :

Example 1 with ActivityAmount

use of nodomain.freeyourgadget.gadgetbridge.model.ActivityAmount in project Gadgetbridge by Freeyourgadget.

the class WeekSleepChartFragment method getTotalsForActivityAmounts.

@Override
float[] getTotalsForActivityAmounts(ActivityAmounts activityAmounts) {
    long totalSecondsDeepSleep = 0;
    long totalSecondsLightSleep = 0;
    for (ActivityAmount amount : activityAmounts.getAmounts()) {
        if (amount.getActivityKind() == ActivityKind.TYPE_DEEP_SLEEP) {
            totalSecondsDeepSleep += amount.getTotalSeconds();
        } else if (amount.getActivityKind() == ActivityKind.TYPE_LIGHT_SLEEP) {
            totalSecondsLightSleep += amount.getTotalSeconds();
        }
    }
    int totalMinutesDeepSleep = (int) (totalSecondsDeepSleep / 60);
    int totalMinutesLightSleep = (int) (totalSecondsLightSleep / 60);
    return new float[] { totalMinutesDeepSleep, totalMinutesLightSleep };
}
Also used : ActivityAmount(nodomain.freeyourgadget.gadgetbridge.model.ActivityAmount)

Example 2 with ActivityAmount

use of nodomain.freeyourgadget.gadgetbridge.model.ActivityAmount in project Gadgetbridge by Freeyourgadget.

the class ActivityAnalysis method calculateActivityAmounts.

public ActivityAmounts calculateActivityAmounts(List<? extends ActivitySample> samples) {
    ActivityAmount deepSleep = new ActivityAmount(ActivityKind.TYPE_DEEP_SLEEP);
    ActivityAmount lightSleep = new ActivityAmount(ActivityKind.TYPE_LIGHT_SLEEP);
    ActivityAmount notWorn = new ActivityAmount(ActivityKind.TYPE_NOT_WORN);
    ActivityAmount activity = new ActivityAmount(ActivityKind.TYPE_ACTIVITY);
    ActivityAmount previousAmount = null;
    ActivitySample previousSample = null;
    for (ActivitySample sample : samples) {
        ActivityAmount amount;
        switch(sample.getKind()) {
            case ActivityKind.TYPE_DEEP_SLEEP:
                amount = deepSleep;
                break;
            case ActivityKind.TYPE_LIGHT_SLEEP:
                amount = lightSleep;
                break;
            case ActivityKind.TYPE_NOT_WORN:
                amount = notWorn;
                break;
            case ActivityKind.TYPE_ACTIVITY:
            default:
                amount = activity;
                break;
        }
        int steps = sample.getSteps();
        if (steps > 0) {
            amount.addSteps(steps);
        }
        if (previousSample != null) {
            long timeDifference = sample.getTimestamp() - previousSample.getTimestamp();
            if (previousSample.getRawKind() == sample.getRawKind()) {
                amount.addSeconds(timeDifference);
            } else {
                long sharedTimeDifference = (long) (timeDifference / 2.0f);
                previousAmount.addSeconds(sharedTimeDifference);
                amount.addSeconds(sharedTimeDifference);
            }
            // add time
            if (steps > 0 && sample.getKind() == ActivityKind.TYPE_ACTIVITY) {
                if (steps > maxSpeed) {
                    maxSpeed = steps;
                }
                if (!stats.containsKey(steps)) {
                    // LOG.debug("Adding: " + steps);
                    stats.put(steps, timeDifference);
                } else {
                    long time = stats.get(steps);
                    // LOG.debug("Updating: " + steps + " " + timeDifference + time);
                    stats.put(steps, timeDifference + time);
                }
            }
        }
        amount.setStartDate(sample.getTimestamp());
        amount.setEndDate(sample.getTimestamp());
        previousAmount = amount;
        previousSample = sample;
    }
    ActivityAmounts result = new ActivityAmounts();
    if (deepSleep.getTotalSeconds() > 0) {
        result.addAmount(deepSleep);
    }
    if (lightSleep.getTotalSeconds() > 0) {
        result.addAmount(lightSleep);
    }
    if (activity.getTotalSeconds() > 0) {
        result.addAmount(activity);
    }
    if (notWorn.getTotalSeconds() > 0) {
        result.addAmount(notWorn);
    }
    result.calculatePercentages();
    return result;
}
Also used : ActivitySample(nodomain.freeyourgadget.gadgetbridge.model.ActivitySample) ActivityAmounts(nodomain.freeyourgadget.gadgetbridge.model.ActivityAmounts) ActivityAmount(nodomain.freeyourgadget.gadgetbridge.model.ActivityAmount)

Example 3 with ActivityAmount

use of nodomain.freeyourgadget.gadgetbridge.model.ActivityAmount in project Gadgetbridge by Freeyourgadget.

the class WeekStepsChartFragment method getTotalsForActivityAmounts.

@Override
float[] getTotalsForActivityAmounts(ActivityAmounts activityAmounts) {
    int totalSteps = 0;
    for (ActivityAmount amount : activityAmounts.getAmounts()) {
        totalSteps += amount.getTotalSteps();
        amount.getTotalSteps();
    }
    return new float[] { totalSteps };
}
Also used : ActivityAmount(nodomain.freeyourgadget.gadgetbridge.model.ActivityAmount)

Aggregations

ActivityAmount (nodomain.freeyourgadget.gadgetbridge.model.ActivityAmount)3 ActivityAmounts (nodomain.freeyourgadget.gadgetbridge.model.ActivityAmounts)1 ActivitySample (nodomain.freeyourgadget.gadgetbridge.model.ActivitySample)1