Merge "Exposed HeartRateSeries and SeriesRecord" into androidx-main
diff --git a/health/health-connect-client/api/current.txt b/health/health-connect-client/api/current.txt
index fa18e8b..2b75ef7 100644
--- a/health/health-connect-client/api/current.txt
+++ b/health/health-connect-client/api/current.txt
@@ -333,6 +333,30 @@
public static final class ElevationGained.Companion {
}
+ public final class HeartRate {
+ ctor public HeartRate(java.time.Instant time, long beatsPerMinute);
+ method public long getBeatsPerMinute();
+ method public java.time.Instant getTime();
+ property public final long beatsPerMinute;
+ property public final java.time.Instant time;
+ }
+
+ public final class HeartRateSeries implements androidx.health.connect.client.records.Record {
+ ctor public HeartRateSeries(java.time.Instant startTime, java.time.ZoneOffset? startZoneOffset, java.time.Instant endTime, java.time.ZoneOffset? endZoneOffset, java.util.List<androidx.health.connect.client.records.HeartRate> samples, optional androidx.health.connect.client.metadata.Metadata metadata);
+ method public java.time.Instant getEndTime();
+ method public java.time.ZoneOffset? getEndZoneOffset();
+ method public androidx.health.connect.client.metadata.Metadata getMetadata();
+ method public java.util.List<androidx.health.connect.client.records.HeartRate> getSamples();
+ method public java.time.Instant getStartTime();
+ method public java.time.ZoneOffset? getStartZoneOffset();
+ property public java.time.Instant endTime;
+ property public java.time.ZoneOffset? endZoneOffset;
+ property public androidx.health.connect.client.metadata.Metadata metadata;
+ property public java.util.List<androidx.health.connect.client.records.HeartRate> samples;
+ property public java.time.Instant startTime;
+ property public java.time.ZoneOffset? startZoneOffset;
+ }
+
public final class Height implements androidx.health.connect.client.records.Record {
ctor public Height(double heightMeters, java.time.Instant time, java.time.ZoneOffset? zoneOffset, optional androidx.health.connect.client.metadata.Metadata metadata);
method public double getHeightMeters();
diff --git a/health/health-connect-client/api/public_plus_experimental_current.txt b/health/health-connect-client/api/public_plus_experimental_current.txt
index fa18e8b..2b75ef7 100644
--- a/health/health-connect-client/api/public_plus_experimental_current.txt
+++ b/health/health-connect-client/api/public_plus_experimental_current.txt
@@ -333,6 +333,30 @@
public static final class ElevationGained.Companion {
}
+ public final class HeartRate {
+ ctor public HeartRate(java.time.Instant time, long beatsPerMinute);
+ method public long getBeatsPerMinute();
+ method public java.time.Instant getTime();
+ property public final long beatsPerMinute;
+ property public final java.time.Instant time;
+ }
+
+ public final class HeartRateSeries implements androidx.health.connect.client.records.Record {
+ ctor public HeartRateSeries(java.time.Instant startTime, java.time.ZoneOffset? startZoneOffset, java.time.Instant endTime, java.time.ZoneOffset? endZoneOffset, java.util.List<androidx.health.connect.client.records.HeartRate> samples, optional androidx.health.connect.client.metadata.Metadata metadata);
+ method public java.time.Instant getEndTime();
+ method public java.time.ZoneOffset? getEndZoneOffset();
+ method public androidx.health.connect.client.metadata.Metadata getMetadata();
+ method public java.util.List<androidx.health.connect.client.records.HeartRate> getSamples();
+ method public java.time.Instant getStartTime();
+ method public java.time.ZoneOffset? getStartZoneOffset();
+ property public java.time.Instant endTime;
+ property public java.time.ZoneOffset? endZoneOffset;
+ property public androidx.health.connect.client.metadata.Metadata metadata;
+ property public java.util.List<androidx.health.connect.client.records.HeartRate> samples;
+ property public java.time.Instant startTime;
+ property public java.time.ZoneOffset? startZoneOffset;
+ }
+
public final class Height implements androidx.health.connect.client.records.Record {
ctor public Height(double heightMeters, java.time.Instant time, java.time.ZoneOffset? zoneOffset, optional androidx.health.connect.client.metadata.Metadata metadata);
method public double getHeightMeters();
diff --git a/health/health-connect-client/api/restricted_current.txt b/health/health-connect-client/api/restricted_current.txt
index 0b35453..e07f699 100644
--- a/health/health-connect-client/api/restricted_current.txt
+++ b/health/health-connect-client/api/restricted_current.txt
@@ -333,6 +333,30 @@
public static final class ElevationGained.Companion {
}
+ public final class HeartRate {
+ ctor public HeartRate(java.time.Instant time, long beatsPerMinute);
+ method public long getBeatsPerMinute();
+ method public java.time.Instant getTime();
+ property public final long beatsPerMinute;
+ property public final java.time.Instant time;
+ }
+
+ public final class HeartRateSeries implements androidx.health.connect.client.records.SeriesRecord<androidx.health.connect.client.records.HeartRate> {
+ ctor public HeartRateSeries(java.time.Instant startTime, java.time.ZoneOffset? startZoneOffset, java.time.Instant endTime, java.time.ZoneOffset? endZoneOffset, java.util.List<androidx.health.connect.client.records.HeartRate> samples, optional androidx.health.connect.client.metadata.Metadata metadata);
+ method public java.time.Instant getEndTime();
+ method public java.time.ZoneOffset? getEndZoneOffset();
+ method public androidx.health.connect.client.metadata.Metadata getMetadata();
+ method public java.util.List<androidx.health.connect.client.records.HeartRate> getSamples();
+ method public java.time.Instant getStartTime();
+ method public java.time.ZoneOffset? getStartZoneOffset();
+ property public java.time.Instant endTime;
+ property public java.time.ZoneOffset? endZoneOffset;
+ property public androidx.health.connect.client.metadata.Metadata metadata;
+ property public java.util.List<androidx.health.connect.client.records.HeartRate> samples;
+ property public java.time.Instant startTime;
+ property public java.time.ZoneOffset? startZoneOffset;
+ }
+
public final class Height implements androidx.health.connect.client.records.InstantaneousRecord {
ctor public Height(double heightMeters, java.time.Instant time, java.time.ZoneOffset? zoneOffset, optional androidx.health.connect.client.metadata.Metadata metadata);
method public double getHeightMeters();
@@ -393,6 +417,11 @@
property public abstract androidx.health.connect.client.metadata.Metadata metadata;
}
+ @kotlin.PublishedApi internal interface SeriesRecord<T> extends androidx.health.connect.client.records.IntervalRecord {
+ method public java.util.List<T> getSamples();
+ property public abstract java.util.List<T> samples;
+ }
+
public final class Steps implements androidx.health.connect.client.records.IntervalRecord {
ctor public Steps(long count, java.time.Instant startTime, java.time.ZoneOffset? startZoneOffset, java.time.Instant endTime, java.time.ZoneOffset? endZoneOffset, optional androidx.health.connect.client.metadata.Metadata metadata);
method public long getCount();
diff --git a/health/health-connect-client/src/main/java/androidx/health/connect/client/records/HeartRateSeries.kt b/health/health-connect-client/src/main/java/androidx/health/connect/client/records/HeartRateSeries.kt
index 981f549..95201d1 100644
--- a/health/health-connect-client/src/main/java/androidx/health/connect/client/records/HeartRateSeries.kt
+++ b/health/health-connect-client/src/main/java/androidx/health/connect/client/records/HeartRateSeries.kt
@@ -15,14 +15,12 @@
*/
package androidx.health.connect.client.records
-import androidx.annotation.RestrictTo
import androidx.health.connect.client.aggregate.AggregateMetric
import androidx.health.connect.client.metadata.Metadata
import java.time.Instant
import java.time.ZoneOffset
/** Captures the user's heart rate. Each record represents a series of measurements. */
-@RestrictTo(RestrictTo.Scope.LIBRARY) // Will be made public after API reviews
public class HeartRateSeries(
override val startTime: Instant,
override val startZoneOffset: ZoneOffset?,
@@ -100,7 +98,6 @@
*
* @param beatsPerMinute Heart beats per minute. Validation range: 1-300.
*/
-@RestrictTo(RestrictTo.Scope.LIBRARY) // Will be made public after API reviews
public class HeartRate(
val time: Instant,
val beatsPerMinute: Long,
diff --git a/health/health-connect-client/src/main/java/androidx/health/connect/client/records/SeriesRecord.kt b/health/health-connect-client/src/main/java/androidx/health/connect/client/records/SeriesRecord.kt
index 9fb8ee6..b98d9e5 100644
--- a/health/health-connect-client/src/main/java/androidx/health/connect/client/records/SeriesRecord.kt
+++ b/health/health-connect-client/src/main/java/androidx/health/connect/client/records/SeriesRecord.kt
@@ -17,6 +17,7 @@
/** A record that contains a series of measurements. */
// Consider exposing this one and other similar interfaces!
+@PublishedApi
internal interface SeriesRecord<out T : Any> : IntervalRecord {
val samples: List<T>