1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-11-28 04:46:51 +01:00

Fix trailing activity 0 duration

Hide intensity if not present in data
This commit is contained in:
vanous 2020-10-14 20:02:01 +02:00
parent a5c5629a44
commit 92407d3490
3 changed files with 26 additions and 8 deletions

View File

@ -63,7 +63,7 @@ public class ActivityListingAdapter extends AbstractActivityListingAdapter<StepA
}
@Override
public Boolean hasHR(StepAnalysis.StepSession item) {
public boolean hasHR(StepAnalysis.StepSession item) {
if (item.getHeartRateAverage() > 0) {
return true;
} else {
@ -71,6 +71,15 @@ public class ActivityListingAdapter extends AbstractActivityListingAdapter<StepA
}
}
@Override
public boolean hasIntensity(StepAnalysis.StepSession item) {
if (item.getIntensity() > 0) {
return true;
} else {
return false;
}
}
@Override
protected int getIcon(StepAnalysis.StepSession item) {
int activityKind = item.getActivityKind();

View File

@ -64,7 +64,8 @@ public class StepAnalysis {
for (ActivitySample sample : samples) {
if (sample.getKind() != ActivityKind.TYPE_SLEEP) { //anything but sleep counts
if (sample.getKind() != ActivityKind.TYPE_SLEEP //anything but sleep counts
&& !(sample instanceof TrailingActivitySample)) { //trailing samples have wrong date and make trailing activity have 0 duration
if (sample.getHeartRate() != 255 && sample.getHeartRate() != -1) {
heartRateToAdd = sample.getHeartRate();
activeHrSamplesToAdd = 1;
@ -122,7 +123,8 @@ public class StepAnalysis {
previousSample = sample;
}
}
//make sure we show the last portion of the data as well in case no further activity is recorded yet
//trailing activity: make sure we show the last portion of the data as well in case no further activity is recorded yet
if (sessionStart != null && previousSample != null) {
int current = previousSample.getTimestamp();
int starting = (int) (sessionStart.getTime() / 1000);
@ -131,7 +133,6 @@ public class StepAnalysis {
if (session_length >= MIN_SESSION_LENGTH) {
int heartRateAverage = activeHrSamplesForAverage > 0 ? heartRateForAverage / activeHrSamplesForAverage : 0;
float distance = (float) (activeSteps * STEP_SIZE);
sessionEnd = getDateFromSample(previousSample);
activityKind = detect_activity_kind(session_length, activeSteps, heartRateAverage, activeIntensity);
result.add(new StepSession(sessionStart, sessionEnd, activeSteps, heartRateAverage, activeIntensity, distance, activityKind));

View File

@ -36,8 +36,6 @@ import java.util.List;
import nodomain.freeyourgadget.gadgetbridge.R;
import static nodomain.freeyourgadget.gadgetbridge.activities.charts.ActivityAnalysis.LOG;
/**
* Adapter for displaying generic ItemWithDetails instances.
*/
@ -108,9 +106,17 @@ public abstract class AbstractActivityListingAdapter<T> extends ArrayAdapter<T>
hrLayout.setVisibility(View.VISIBLE);
}
if (!hasIntensity(item)) {
intensityLayout.setVisibility(View.GONE);
} else {
intensityLayout.setVisibility(View.VISIBLE);
}
activityIcon.setImageResource(getIcon(item));
if (position % 2 == 0) {parentLayout.setBackgroundColor(alternateColor);}
if (position % 2 == 0) {
parentLayout.setBackgroundColor(alternateColor);
}
return view;
}
@ -131,7 +137,9 @@ public abstract class AbstractActivityListingAdapter<T> extends ArrayAdapter<T>
protected abstract String getDurationLabel(T item);
protected abstract Boolean hasHR(T item);
protected abstract boolean hasHR(T item);
protected abstract boolean hasIntensity(T item);
@DrawableRes
protected abstract int getIcon(T item);