[go: nahoru, domu]

blob: b61a87537f73b96ac0905841f53586cd57ea9375 [file] [log] [blame]
package androidx.health.services.client.data
import androidx.health.services.client.proto.DataProto
/**
* Batching mode during an active exercise when the device is in a non-interactive power state, used
* in [ExerciseConfig]. Not applicable when device is in interactive state because exercise updates
* will be streaming.
*/
public class BatchingMode
internal constructor(
/** Unique identifier for the [BatchingMode], as an `int`. */
internal val id: Int,
) {
internal constructor(
proto: DataProto.BatchingMode
) : this(
proto.number,
)
override fun equals(other: Any?): Boolean {
if (this === other) return true
if (other !is BatchingMode) return false
if (id != other.id) return false
return true
}
override fun hashCode(): Int {
return id
}
internal fun toProto(): DataProto.BatchingMode =
DataProto.BatchingMode.forNumber(id) ?: DataProto.BatchingMode.BATCHING_MODE_UNKNOWN
public companion object {
/**
* Deliver smaller and more frequent batches of [DataType.HEART_RATE_BPM] when the device is
* not interactive (e.g. screen is off).
*
* This setting significantly increases power consumption, and is intended to be used by
* apps which need to send data to a separate device (e.g. a connected phone or TV) for
* real-time visualisation. It has no effect if the device is interactive.
*
* The exact power/performance tradeoff of this mode is device implementation dependent and
* batched updates may be aligned with other wake ups but target five second updates.
*/
@JvmField public val HEART_RATE_5_SECONDS: BatchingMode = BatchingMode(1)
@JvmStatic
internal fun fromProto(proto: DataProto.BatchingMode): BatchingMode =
BatchingMode(proto.number)
}
}