Changing LazyPagingItem's inital LoadState refresh to Loading
Rather than LazyPagingItem having the inital LoadState
refresh being set to LoadState.NotLoading, we want it
to be LoadState.Loading
RelNote: "`LazyPagingItems` now sets the initial
`loadState` to have a `LoadState.Loading` refresh."
Test: lazyPagingInitialLoadState
Fixes: 224855902
Change-Id: I55043244f92c8029e4667df2e23c5813dcf2f729
diff --git a/paging/paging-compose/src/androidTest/java/androidx/paging/compose/LazyPagingItemsTest.kt b/paging/paging-compose/src/androidTest/java/androidx/paging/compose/LazyPagingItemsTest.kt
index 085686c..f81ba41 100644
--- a/paging/paging-compose/src/androidTest/java/androidx/paging/compose/LazyPagingItemsTest.kt
+++ b/paging/paging-compose/src/androidTest/java/androidx/paging/compose/LazyPagingItemsTest.kt
@@ -22,7 +22,6 @@
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.LazyRow
import androidx.compose.foundation.text.BasicText
-import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.testTag
@@ -32,6 +31,9 @@
import androidx.compose.ui.test.onNodeWithTag
import androidx.compose.ui.test.onNodeWithText
import androidx.compose.ui.unit.dp
+import androidx.paging.CombinedLoadStates
+import androidx.paging.LoadState
+import androidx.paging.LoadStates
import androidx.paging.Pager
import androidx.paging.PagingConfig
import androidx.paging.PagingSource
@@ -39,7 +41,6 @@
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.FlakyTest
import androidx.test.filters.LargeTest
-
import com.google.common.truth.Truth.assertThat
import org.junit.Rule
import org.junit.Test
@@ -69,6 +70,32 @@
}
@Test
+ fun lazyPagingInitialLoadState() {
+ val pager = createPager()
+ val loadStates: MutableList<CombinedLoadStates> = mutableListOf()
+ rule.setContent {
+ val lazyPagingItems = pager.flow.collectAsLazyPagingItems()
+ loadStates.add(lazyPagingItems.loadState)
+ }
+
+ rule.waitForIdle()
+
+ val expected = CombinedLoadStates(
+ refresh = LoadState.Loading,
+ prepend = LoadState.NotLoading(false),
+ append = LoadState.NotLoading(false),
+ source = LoadStates(
+ LoadState.Loading,
+ LoadState.NotLoading(false),
+ LoadState.NotLoading(false)
+ ),
+ mediator = null
+ )
+ assertThat(loadStates).isNotEmpty()
+ assertThat(loadStates.first()).isEqualTo(expected)
+ }
+
+ @Test
fun lazyPagingColumnShowsItems() {
val pager = createPager()
rule.setContent {
diff --git a/paging/paging-compose/src/main/java/androidx/paging/compose/LazyPagingItems.kt b/paging/paging-compose/src/main/java/androidx/paging/compose/LazyPagingItems.kt
index cca39c2..713fe38 100644
--- a/paging/paging-compose/src/main/java/androidx/paging/compose/LazyPagingItems.kt
+++ b/paging/paging-compose/src/main/java/androidx/paging/compose/LazyPagingItems.kt
@@ -196,7 +196,7 @@
private val IncompleteLoadState = LoadState.NotLoading(false)
private val InitialLoadStates = LoadStates(
- IncompleteLoadState,
+ LoadState.Loading,
IncompleteLoadState,
IncompleteLoadState
)