# CombinedLoadStates

Artifact: [androidx.paging:paging-common](https://developer.android.com/jetpack/androidx/releases/paging) [View Source](https://cs.android.com/search?q=file:androidx/paging/CombinedLoadStates.kt+class:androidx.paging.CombinedLoadStates) Added in [3.0.0](https://developer.android.com/jetpack/androidx/releases/paging#3.0.0)

*** ** * ** ***

<br />

```
public final class CombinedLoadStates
```

<br />

*** ** * ** ***

Collection of pagination `https://developer.android.com/reference/androidx/paging/LoadState`s for both a `https://developer.android.com/reference/androidx/paging/PagingSource`, and `https://developer.android.com/reference/androidx/paging/RemoteMediator`.

Note: The REFRESH`https://developer.android.com/reference/androidx/paging/LoadType#REFRESH` always has `https://developer.android.com/reference/androidx/paging/LoadState#endOfPaginationReached()` set to `false`.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#CombinedLoadStates(androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadStates,androidx.paging.LoadStates)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/paging/LoadState refresh, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/paging/LoadState prepend, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/paging/LoadState append, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/paging/LoadStates source, https://developer.android.com/reference/androidx/paging/LoadStates mediator )` |

| ### Public methods |
|---|---|
| `boolean` | `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#equals(kotlin.Any)(https://developer.android.com/reference/java/lang/Object.html other)` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/paging/LoadState` | `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#getAppend()()` Convenience for combined behavior of `https://developer.android.com/reference/androidx/paging/LoadType#REFRESH` `https://developer.android.com/reference/androidx/paging/LoadState`, which generally defers to `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#(androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadStates,androidx.paging.LoadStates)` if it exists, but if previously was `https://developer.android.com/reference/androidx/paging/LoadState.Loading`, awaits for both `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#(androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadStates,androidx.paging.LoadStates)` and `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#(androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadStates,androidx.paging.LoadStates)` to become `https://developer.android.com/reference/androidx/paging/LoadState.NotLoading` to ensure the remote load was applied. |
| `final https://developer.android.com/reference/androidx/paging/LoadStates` | `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#getMediator()()` `https://developer.android.com/reference/androidx/paging/LoadStates` corresponding to loads from a `https://developer.android.com/reference/androidx/paging/RemoteMediator`, or `null` if `https://developer.android.com/reference/androidx/paging/RemoteMediator` not present. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/paging/LoadState` | `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#getPrepend()()` Convenience for combined behavior of `https://developer.android.com/reference/androidx/paging/LoadType#REFRESH` `https://developer.android.com/reference/androidx/paging/LoadState`, which generally defers to `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#(androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadStates,androidx.paging.LoadStates)` if it exists, but if previously was `https://developer.android.com/reference/androidx/paging/LoadState.Loading`, awaits for both `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#(androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadStates,androidx.paging.LoadStates)` and `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#(androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadStates,androidx.paging.LoadStates)` to become `https://developer.android.com/reference/androidx/paging/LoadState.NotLoading` to ensure the remote load was applied. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/paging/LoadState` | `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#getRefresh()()` Convenience for combined behavior of `https://developer.android.com/reference/androidx/paging/LoadType#REFRESH` `https://developer.android.com/reference/androidx/paging/LoadState`, which generally defers to `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#(androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadStates,androidx.paging.LoadStates)` if it exists, but if previously was `https://developer.android.com/reference/androidx/paging/LoadState.Loading`, awaits for both `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#(androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadStates,androidx.paging.LoadStates)` and `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#(androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadStates,androidx.paging.LoadStates)` to become `https://developer.android.com/reference/androidx/paging/LoadState.NotLoading` to ensure the remote load was applied. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/paging/LoadStates` | `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#getSource()()` `https://developer.android.com/reference/androidx/paging/LoadStates` corresponding to loads from a `https://developer.android.com/reference/androidx/paging/PagingSource`. |
| `final boolean` | `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#hasError()()` Returns true if either `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#source()` or `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#mediator()` has a `https://developer.android.com/reference/androidx/paging/LoadType` that is in `https://developer.android.com/reference/androidx/paging/LoadState.Error` |
| `int` | `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#hashCode()()` |
| `final boolean` | `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#isIdle()()` Returns true when `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#source()` and `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#mediator()` is in `https://developer.android.com/reference/androidx/paging/LoadState.NotLoading` for all `https://developer.android.com/reference/androidx/paging/LoadType` |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#toString()()` |

## Public constructors

### CombinedLoadStates

Added in [3.0.0](https://developer.android.com/jetpack/androidx/releases/paging#3.0.0)

```
public CombinedLoadStates(
    @NonNull LoadState refresh,
    @NonNull LoadState prepend,
    @NonNull LoadState append,
    @NonNull LoadStates source,
    LoadStates mediator
)
```

## Public methods

### equals

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

### getAppend

Added in [3.0.0](https://developer.android.com/jetpack/androidx/releases/paging#3.0.0)

```
public final @NonNull LoadState getAppend()
```

Convenience for combined behavior of `https://developer.android.com/reference/androidx/paging/LoadType#REFRESH` `https://developer.android.com/reference/androidx/paging/LoadState`, which generally defers to `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#(androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadStates,androidx.paging.LoadStates)` if it exists, but if previously was `https://developer.android.com/reference/androidx/paging/LoadState.Loading`, awaits for both `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#(androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadStates,androidx.paging.LoadStates)` and `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#(androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadStates,androidx.paging.LoadStates)` to become `https://developer.android.com/reference/androidx/paging/LoadState.NotLoading` to ensure the remote load was applied.

For use cases that require reacting to `https://developer.android.com/reference/androidx/paging/LoadState` of `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#(androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadStates,androidx.paging.LoadStates)` and `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#(androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadStates,androidx.paging.LoadStates)` specifically, e.g., showing cached data when network loads via `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#(androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadStates,androidx.paging.LoadStates)` fail, `https://developer.android.com/reference/androidx/paging/LoadStates` exposed via `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#(androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadStates,androidx.paging.LoadStates)` and `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#(androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadStates,androidx.paging.LoadStates)` should be used directly.

### getMediator

Added in [3.0.0](https://developer.android.com/jetpack/androidx/releases/paging#3.0.0)

```
public final LoadStates getMediator()
```

`https://developer.android.com/reference/androidx/paging/LoadStates` corresponding to loads from a `https://developer.android.com/reference/androidx/paging/RemoteMediator`, or `null` if `https://developer.android.com/reference/androidx/paging/RemoteMediator` not present.

### getPrepend

Added in [3.0.0](https://developer.android.com/jetpack/androidx/releases/paging#3.0.0)

```
public final @NonNull LoadState getPrepend()
```

Convenience for combined behavior of `https://developer.android.com/reference/androidx/paging/LoadType#REFRESH` `https://developer.android.com/reference/androidx/paging/LoadState`, which generally defers to `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#(androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadStates,androidx.paging.LoadStates)` if it exists, but if previously was `https://developer.android.com/reference/androidx/paging/LoadState.Loading`, awaits for both `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#(androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadStates,androidx.paging.LoadStates)` and `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#(androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadStates,androidx.paging.LoadStates)` to become `https://developer.android.com/reference/androidx/paging/LoadState.NotLoading` to ensure the remote load was applied.

For use cases that require reacting to `https://developer.android.com/reference/androidx/paging/LoadState` of `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#(androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadStates,androidx.paging.LoadStates)` and `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#(androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadStates,androidx.paging.LoadStates)` specifically, e.g., showing cached data when network loads via `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#(androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadStates,androidx.paging.LoadStates)` fail, `https://developer.android.com/reference/androidx/paging/LoadStates` exposed via `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#(androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadStates,androidx.paging.LoadStates)` and `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#(androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadStates,androidx.paging.LoadStates)` should be used directly.

### getRefresh

Added in [3.0.0](https://developer.android.com/jetpack/androidx/releases/paging#3.0.0)

```
public final @NonNull LoadState getRefresh()
```

Convenience for combined behavior of `https://developer.android.com/reference/androidx/paging/LoadType#REFRESH` `https://developer.android.com/reference/androidx/paging/LoadState`, which generally defers to `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#(androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadStates,androidx.paging.LoadStates)` if it exists, but if previously was `https://developer.android.com/reference/androidx/paging/LoadState.Loading`, awaits for both `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#(androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadStates,androidx.paging.LoadStates)` and `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#(androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadStates,androidx.paging.LoadStates)` to become `https://developer.android.com/reference/androidx/paging/LoadState.NotLoading` to ensure the remote load was applied.

For use cases that require reacting to `https://developer.android.com/reference/androidx/paging/LoadState` of `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#(androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadStates,androidx.paging.LoadStates)` and `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#(androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadStates,androidx.paging.LoadStates)` specifically, e.g., showing cached data when network loads via `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#(androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadStates,androidx.paging.LoadStates)` fail, `https://developer.android.com/reference/androidx/paging/LoadStates` exposed via `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#(androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadStates,androidx.paging.LoadStates)` and `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#(androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadState,androidx.paging.LoadStates,androidx.paging.LoadStates)` should be used directly.

### getSource

Added in [3.0.0](https://developer.android.com/jetpack/androidx/releases/paging#3.0.0)

```
public final @NonNull LoadStates getSource()
```

`https://developer.android.com/reference/androidx/paging/LoadStates` corresponding to loads from a `https://developer.android.com/reference/androidx/paging/PagingSource`.

### hasError

Added in [3.3.0](https://developer.android.com/jetpack/androidx/releases/paging#3.3.0)

```
public final boolean hasError()
```

Returns true if either `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#source()` or `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#mediator()` has a `https://developer.android.com/reference/androidx/paging/LoadType` that is in `https://developer.android.com/reference/androidx/paging/LoadState.Error`

### hashCode

```
public int hashCode()
```

### isIdle

Added in [3.3.0](https://developer.android.com/jetpack/androidx/releases/paging#3.3.0)

```
public final boolean isIdle()
```

Returns true when `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#source()` and `https://developer.android.com/reference/androidx/paging/CombinedLoadStates#mediator()` is in `https://developer.android.com/reference/androidx/paging/LoadState.NotLoading` for all `https://developer.android.com/reference/androidx/paging/LoadType`

### toString

```
public @NonNull String toString()
```