mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge
synced 2024-06-24 14:00:48 +02:00
Add new distance icon Distance in meters or km based on distance Remove unnecessary definitions Optimize new drawables Map intensity to min steps
106 lines
3.1 KiB
Java
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);
|
|
}
|
|
|
|
|
|
}
|