# AggregateGroupByDurationRequest

Artifact: [androidx.health.connect:connect-client](https://developer.android.com/jetpack/androidx/releases/health-connect) [View Source](https://cs.android.com/search?q=file:androidx/health/connect/client/request/AggregateGroupByDurationRequest.kt+class:androidx.health.connect.client.request.AggregateGroupByDurationRequest) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/health-connect#1.1.0)

*** ** * ** ***

<br />

```
public final class AggregateGroupByDurationRequest
```

<br />

*** ** * ** ***

Request object to read time bucketed aggregations for given `https://developer.android.com/reference/androidx/health/connect/client/aggregate/AggregateMetric`s in Android Health Platform.

`https://developer.android.com/reference/androidx/health/connect/client/request/AggregateGroupByDurationRequest#(kotlin.collections.Set,androidx.health.connect.client.time.TimeRangeFilter,java.time.Duration,kotlin.collections.Set)` contains a `https://developer.android.com/reference/java/time/Duration.html` of fixed physical time intervals, such as per hour, per ten minutes or so. Prefer `https://developer.android.com/reference/androidx/health/connect/client/request/AggregateGroupByPeriodRequest`, if you would like variable length time intervals, such as per day, which may or may not include DST (23 or 25 hour).

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/health/connect/client/request/AggregateGroupByDurationRequest#AggregateGroupByDurationRequest(kotlin.collections.Set,androidx.health.connect.client.time.TimeRangeFilter,java.time.Duration,kotlin.collections.Set)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Set.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/health/connect/client/aggregate/AggregateMetric<@https://developer.android.com/reference/androidx/annotation/NonNull ?>> metrics, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/health/connect/client/time/TimeRangeFilter timeRangeFilter, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/time/Duration.html timeRangeSlicer, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Set.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/health/connect/client/records/metadata/DataOrigin> dataOriginFilter )` |

| ### Public methods |
|---|---|
| `boolean` | `https://developer.android.com/reference/androidx/health/connect/client/request/AggregateGroupByDurationRequest#equals(kotlin.Any)(https://developer.android.com/reference/java/lang/Object.html other)` |
| `int` | `https://developer.android.com/reference/androidx/health/connect/client/request/AggregateGroupByDurationRequest#hashCode()()` |

## Public constructors

### AggregateGroupByDurationRequest

```
public AggregateGroupByDurationRequest(
    @NonNull Set<@NonNull AggregateMetric<@NonNull ?>> metrics,
    @NonNull TimeRangeFilter timeRangeFilter,
    @NonNull Duration timeRangeSlicer,
    @NonNull Set<@NonNull DataOrigin> dataOriginFilter
)
```

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Set.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/health/connect/client/aggregate/AggregateMetric<@https://developer.android.com/reference/androidx/annotation/NonNull ?>> metrics` | Set of `https://developer.android.com/reference/androidx/health/connect/client/aggregate/AggregateMetric`s to aggregate. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/health/connect/client/time/TimeRangeFilter timeRangeFilter` | The `https://developer.android.com/reference/androidx/health/connect/client/time/TimeRangeFilter` to read from. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/time/Duration.html timeRangeSlicer` | The bucket size of each returned aggregate row. `https://developer.android.com/reference/androidx/health/connect/client/request/AggregateGroupByDurationRequest#timeRangeFilter()` will be sliced into several equal-sized time buckets (except for the last one). |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Set.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/health/connect/client/records/metadata/DataOrigin> dataOriginFilter` | Set of `https://developer.android.com/reference/androidx/health/connect/client/records/metadata/DataOrigin`s to read from, or empty for no filter. |

## Public methods

### equals

```
public boolean equals(Object other)
```

### hashCode

```
public int hashCode()
```