2015-08-03 23:09:49 +02:00
|
|
|
package nodomain.freeyourgadget.gadgetbridge.impl;
|
2015-05-30 17:28:03 +02:00
|
|
|
|
2015-08-03 23:09:49 +02:00
|
|
|
import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider;
|
2015-07-27 23:49:53 +02:00
|
|
|
import nodomain.freeyourgadget.gadgetbridge.model.ActivitySample;
|
2016-02-26 00:30:57 +01:00
|
|
|
import nodomain.freeyourgadget.gadgetbridge.util.DateTimeUtils;
|
2015-05-30 21:52:29 +02:00
|
|
|
|
2015-07-27 23:49:53 +02:00
|
|
|
public class GBActivitySample implements ActivitySample {
|
2015-05-30 17:28:03 +02:00
|
|
|
private final int timestamp;
|
2015-07-27 23:49:53 +02:00
|
|
|
private final SampleProvider provider;
|
2016-02-29 20:54:39 +01:00
|
|
|
private final int intensity;
|
|
|
|
private final int steps;
|
|
|
|
private final int type;
|
|
|
|
private final int customValue;
|
2015-05-30 17:28:03 +02:00
|
|
|
|
2016-02-29 20:54:39 +01:00
|
|
|
public GBActivitySample(SampleProvider provider, int timestamp, int intensity, int steps, int type) {
|
|
|
|
this(provider, timestamp, intensity, steps, type, 0);
|
2016-02-26 00:30:57 +01:00
|
|
|
}
|
|
|
|
|
2016-02-29 20:54:39 +01:00
|
|
|
public GBActivitySample(SampleProvider provider, int timestamp, int intensity, int steps, int type, int customValue) {
|
2015-05-30 17:28:03 +02:00
|
|
|
this.timestamp = timestamp;
|
|
|
|
this.provider = provider;
|
|
|
|
this.intensity = intensity;
|
|
|
|
this.steps = steps;
|
2016-02-29 20:54:39 +01:00
|
|
|
this.customValue = customValue;
|
2015-05-30 17:28:03 +02:00
|
|
|
this.type = type;
|
2015-09-09 20:46:50 +02:00
|
|
|
validate();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void validate() {
|
|
|
|
if (steps < 0) {
|
2016-02-26 00:30:57 +01:00
|
|
|
throw new IllegalArgumentException("steps must be >= 0");
|
2015-09-09 20:46:50 +02:00
|
|
|
}
|
|
|
|
if (intensity < 0) {
|
2016-02-26 00:30:57 +01:00
|
|
|
throw new IllegalArgumentException("intensity must be >= 0");
|
2015-09-09 20:46:50 +02:00
|
|
|
}
|
|
|
|
if (timestamp < 0) {
|
2016-02-26 00:30:57 +01:00
|
|
|
throw new IllegalArgumentException("timestamp must be >= 0");
|
|
|
|
}
|
2016-02-29 20:54:39 +01:00
|
|
|
if (customValue < 0) {
|
|
|
|
throw new IllegalArgumentException("customValue must be >= 0");
|
2015-09-09 20:46:50 +02:00
|
|
|
}
|
2015-05-30 17:28:03 +02:00
|
|
|
}
|
|
|
|
|
2015-07-27 23:49:53 +02:00
|
|
|
@Override
|
2015-05-30 17:28:03 +02:00
|
|
|
public int getTimestamp() {
|
|
|
|
return timestamp;
|
|
|
|
}
|
|
|
|
|
2015-07-27 23:49:53 +02:00
|
|
|
@Override
|
|
|
|
public SampleProvider getProvider() {
|
2015-05-30 17:28:03 +02:00
|
|
|
return provider;
|
|
|
|
}
|
|
|
|
|
2015-07-27 23:49:53 +02:00
|
|
|
@Override
|
2016-02-29 20:54:39 +01:00
|
|
|
public int getRawIntensity() {
|
2015-05-30 17:28:03 +02:00
|
|
|
return intensity;
|
|
|
|
}
|
|
|
|
|
2015-07-27 23:49:53 +02:00
|
|
|
@Override
|
|
|
|
public float getIntensity() {
|
|
|
|
return getProvider().normalizeIntensity(getRawIntensity());
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2016-02-29 20:54:39 +01:00
|
|
|
public int getSteps() {
|
2015-05-30 17:28:03 +02:00
|
|
|
return steps;
|
|
|
|
}
|
|
|
|
|
2015-07-27 23:49:53 +02:00
|
|
|
@Override
|
2016-02-29 20:54:39 +01:00
|
|
|
public int getRawKind() {
|
2015-05-30 17:28:03 +02:00
|
|
|
return type;
|
|
|
|
}
|
|
|
|
|
2015-07-27 23:49:53 +02:00
|
|
|
@Override
|
|
|
|
public int getKind() {
|
|
|
|
return getProvider().normalizeType(getRawKind());
|
|
|
|
}
|
2016-02-26 00:30:57 +01:00
|
|
|
|
|
|
|
@Override
|
|
|
|
public String toString() {
|
|
|
|
return "GBActivitySample{" +
|
|
|
|
"timestamp=" + DateTimeUtils.formatDateTime(DateTimeUtils.parseTimeStamp(timestamp)) +
|
|
|
|
", intensity=" + getIntensity() +
|
|
|
|
", steps=" + getSteps() +
|
|
|
|
", type=" + getKind() +
|
|
|
|
'}';
|
|
|
|
}
|
2015-05-30 17:28:03 +02:00
|
|
|
}
|