PagingState

public final class PagingState<Key extends Object, Value extends Object>


Snapshot state of Paging system including the loaded pages, the last accessed anchorPosition, and the config used.

Summary

Public fields

final @Nullable Integer

Most recently accessed index in the list, including placeholders.

final @NonNull PagingConfig

PagingConfig that was given when initializing the PagingData stream.

final @NonNull List<@NonNull PagingSource.LoadResult.Page<@NonNull Key, @NonNull Value>>

Loaded pages of data in the list.

Public constructors

<Key extends Object, Value extends Object> PagingState(
    @NonNull List<@NonNull PagingSource.LoadResult.Page<@NonNull Key, @NonNull Value>> pages,
    @Nullable Integer anchorPosition,
    @NonNull PagingConfig config,
    @IntRange(from = 0) int leadingPlaceholderCount
)

Public methods

final @Nullable Value
closestItemToPosition(int anchorPosition)

Coerces anchorPosition to closest loaded value in pages.

final @Nullable PagingSource.LoadResult.Page<@NonNull Key, @NonNull Value>
closestPageToPosition(int anchorPosition)

Coerces an index in the list, including placeholders, to closest loaded page in pages.

boolean
final @Nullable Value
int
final boolean
final @Nullable Value
@NonNull String

Public fields

anchorPosition

@Nullable
public final @Nullable Integer anchorPosition

Most recently accessed index in the list, including placeholders.

null if no access in the PagingData has been made yet. E.g., if this snapshot was generated before or during the first load.

config

@NonNull
public final @NonNull PagingConfig config

PagingConfig that was given when initializing the PagingData stream.

pages

@NonNull
public final @NonNull List<@NonNull PagingSource.LoadResult.Page<@NonNull Key, @NonNull Value>> pages

Loaded pages of data in the list.

Public constructors

PagingState

@NonNull
public final <Key extends Object, Value extends Object> PagingState(
    @NonNull List<@NonNull PagingSource.LoadResult.Page<@NonNull Key, @NonNull Value>> pages,
    @Nullable Integer anchorPosition,
    @NonNull PagingConfig config,
    @IntRange(from = 0) int leadingPlaceholderCount
)

Public methods

closestItemToPosition

@Nullable
public final Value closestItemToPosition(int anchorPosition)

Coerces anchorPosition to closest loaded value in pages.

This function can be called with anchorPosition to fetch the loaded item that is closest to the last accessed index in the list.

Parameters
int anchorPosition

Index in the list, including placeholders.

Returns
Value

The closest loaded Value in pages to the provided anchorPosition. null if all loaded pages are empty.

closestPageToPosition

@Nullable
public final PagingSource.LoadResult.Page<@NonNull Key, @NonNull Value> closestPageToPosition(int anchorPosition)

Coerces an index in the list, including placeholders, to closest loaded page in pages.

This function can be called with anchorPosition to fetch the loaded page that is closest to the last accessed index in the list.

Parameters
int anchorPosition

Index in the list, including placeholders.

Returns
PagingSource.LoadResult.Page<@NonNull Key, @NonNull Value>

The closest loaded Value in pages to the provided anchorPosition. null if all loaded pages are empty.

equals

@NonNull
public boolean equals(@Nullable Object other)

firstItemOrNull

@Nullable
public final Value firstItemOrNull()
Returns
Value

The first loaded item in the list or null if all loaded pages are empty or no pages were loaded when this PagingState was created.

hashCode

@NonNull
public int hashCode()

isEmpty

@NonNull
public final boolean isEmpty()
Returns
boolean

true if all loaded pages are empty or no pages were loaded when this PagingState was created, false otherwise.

lastItemOrNull

@Nullable
public final Value lastItemOrNull()
Returns
Value

The last loaded item in the list or null if all loaded pages are empty or no pages were loaded when this PagingState was created.

toString

@NonNull
public String toString()