1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-06-24 14:00:48 +02:00
Gadgetbridge/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/ActivityListingAdapter.java
vanous e7b5053b13 Add Step length preference to About you
Add new distance icon
Distance in meters or km based on distance
Remove unnecessary definitions
Optimize new drawables
Map intensity to min steps
2020-10-16 21:07:57 +02:00

106 lines
3.1 KiB
Java

package nodomain.freeyourgadget.gadgetbridge.activities.charts;
import android.content.Context;
import java.text.DecimalFormat;
import java.util.Date;
import java.util.concurrent.TimeUnit;
import nodomain.freeyourgadget.gadgetbridge.adapter.AbstractActivityListingAdapter;
import nodomain.freeyourgadget.gadgetbridge.model.ActivityKind;
import nodomain.freeyourgadget.gadgetbridge.util.DateTimeUtils;
public class ActivityListingAdapter extends AbstractActivityListingAdapter<StepAnalysis.StepSession> {
public ActivityListingAdapter(Context context) {
super(context);
}
@Override
protected String getTimeFrom(StepAnalysis.StepSession item) {
Date time = item.getStepStart();
return DateTimeUtils.formatTime(time.getHours(), time.getMinutes());
}
@Override
protected String getTimeTo(StepAnalysis.StepSession item) {
Date time = item.getStepEnd();
return DateTimeUtils.formatTime(time.getHours(), time.getMinutes());
}
@Override
protected String getActivityName(StepAnalysis.StepSession item) {
return ActivityKind.asString(item.getActivityKind(), getContext());
}
@Override
protected String getStepLabel(StepAnalysis.StepSession item) {
return String.valueOf(item.getSteps());
}
@Override
protected String getDistanceLabel(StepAnalysis.StepSession item) {
float distance = item.getDistance();
String unit = "###m";
if (distance > 2000) {
distance = distance / 1000;
unit = "###.#km";
}
DecimalFormat df = new DecimalFormat(unit);
//DecimalFormatSymbols symbols = df.getDecimalFormatSymbols();
//symbols.setGroupingSeparator(' ');
return df.format(distance);
}
@Override
protected String getHrLabel(StepAnalysis.StepSession item) {
return String.valueOf(item.getHeartRateAverage());
}
@Override
protected String getIntensityLabel(StepAnalysis.StepSession item) {
DecimalFormat df = new DecimalFormat("###.#");
return df.format(item.getIntensity());
}
@Override
protected String getDurationLabel(StepAnalysis.StepSession item) {
long duration = item.getStepEnd().getTime() - item.getStepStart().getTime();
return DateTimeUtils.formatDurationHoursMinutes(duration, TimeUnit.MILLISECONDS);
}
@Override
public boolean hasHR(StepAnalysis.StepSession item) {
if (item.getHeartRateAverage() > 0) {
return true;
} else {
return false;
}
}
@Override
public boolean hasIntensity(StepAnalysis.StepSession item) {
if (item.getIntensity() > 0) {
return true;
} else {
return false;
}
}
@Override
protected boolean hasDistance(StepAnalysis.StepSession item) {
if (item.getDistance() > 0) {
return true;
} else {
return false;
}
}
@Override
protected int getIcon(StepAnalysis.StepSession item) {
int activityKind = item.getActivityKind();
return ActivityKind.getIconId(activityKind);
}
}