forked from upstream-mirrors/OpenTracks
57 lines
1.2 KiB
Java
57 lines
1.2 KiB
Java
package de.dennisguse.opentracks.data.models;
|
|
|
|
import androidx.annotation.NonNull;
|
|
|
|
import java.time.Duration;
|
|
import java.util.Objects;
|
|
|
|
public class Cadence {
|
|
|
|
public static Cadence of(float value, Duration duration) {
|
|
if (duration.isZero()) {
|
|
return zero();
|
|
}
|
|
|
|
return new Cadence(value / (duration.toMillis() / (float) Duration.ofMinutes(1).toMillis()));
|
|
}
|
|
|
|
public static Cadence of(float value_rpm) {
|
|
return new Cadence(value_rpm);
|
|
}
|
|
|
|
public static Cadence zero() {
|
|
return of(0.0f);
|
|
}
|
|
|
|
private final float value_rpm;
|
|
|
|
private Cadence(float value) {
|
|
this.value_rpm = value;
|
|
}
|
|
|
|
public float getRPM() {
|
|
return value_rpm;
|
|
}
|
|
|
|
@Override
|
|
public boolean equals(Object o) {
|
|
if (this == o) return true;
|
|
if (o == null || getClass() != o.getClass()) return false;
|
|
Cadence cadence = (Cadence) o;
|
|
return Float.compare(cadence.value_rpm, value_rpm) == 0;
|
|
}
|
|
|
|
@Override
|
|
public int hashCode() {
|
|
return Objects.hash(value_rpm);
|
|
}
|
|
|
|
@NonNull
|
|
@Override
|
|
public String toString() {
|
|
return "Cadence{" +
|
|
"value=" + value_rpm + " rpm" +
|
|
'}';
|
|
}
|
|
}
|