diff --git a/BasicRxJavaSample/versions.gradle b/BasicRxJavaSample/versions.gradle index 5dc879294d41d16272c64815eeffd3cb2ef5a369..43897aa89143d46288e9105486d6fec83f7af1b7 100644 --- a/BasicRxJavaSample/versions.gradle +++ b/BasicRxJavaSample/versions.gradle @@ -52,7 +52,7 @@ versions.mockito_android = "2.25.0" versions.mockwebserver = "3.8.1" versions.navigation = "2.3.0-alpha01" versions.okhttp_logging_interceptor = "3.9.0" -versions.paging = "3.1.0-alpha04" +versions.paging = "3.1.0-beta01" versions.recyclerview = "1.2.0-beta01" versions.retrofit = "2.9.0" versions.robolectric = "4.2" diff --git a/BasicRxJavaSampleKotlin/versions.gradle b/BasicRxJavaSampleKotlin/versions.gradle index 5dc879294d41d16272c64815eeffd3cb2ef5a369..43897aa89143d46288e9105486d6fec83f7af1b7 100644 --- a/BasicRxJavaSampleKotlin/versions.gradle +++ b/BasicRxJavaSampleKotlin/versions.gradle @@ -52,7 +52,7 @@ versions.mockito_android = "2.25.0" versions.mockwebserver = "3.8.1" versions.navigation = "2.3.0-alpha01" versions.okhttp_logging_interceptor = "3.9.0" -versions.paging = "3.1.0-alpha04" +versions.paging = "3.1.0-beta01" versions.recyclerview = "1.2.0-beta01" versions.retrofit = "2.9.0" versions.robolectric = "4.2" diff --git a/BasicSample/versions.gradle b/BasicSample/versions.gradle index 5dc879294d41d16272c64815eeffd3cb2ef5a369..43897aa89143d46288e9105486d6fec83f7af1b7 100644 --- a/BasicSample/versions.gradle +++ b/BasicSample/versions.gradle @@ -52,7 +52,7 @@ versions.mockito_android = "2.25.0" versions.mockwebserver = "3.8.1" versions.navigation = "2.3.0-alpha01" versions.okhttp_logging_interceptor = "3.9.0" -versions.paging = "3.1.0-alpha04" +versions.paging = "3.1.0-beta01" versions.recyclerview = "1.2.0-beta01" versions.retrofit = "2.9.0" versions.robolectric = "4.2" diff --git a/GithubBrowserSample/versions.gradle b/GithubBrowserSample/versions.gradle index 5dc879294d41d16272c64815eeffd3cb2ef5a369..43897aa89143d46288e9105486d6fec83f7af1b7 100644 --- a/GithubBrowserSample/versions.gradle +++ b/GithubBrowserSample/versions.gradle @@ -52,7 +52,7 @@ versions.mockito_android = "2.25.0" versions.mockwebserver = "3.8.1" versions.navigation = "2.3.0-alpha01" versions.okhttp_logging_interceptor = "3.9.0" -versions.paging = "3.1.0-alpha04" +versions.paging = "3.1.0-beta01" versions.recyclerview = "1.2.0-beta01" versions.retrofit = "2.9.0" versions.robolectric = "4.2" diff --git a/LiveDataSample/versions.gradle b/LiveDataSample/versions.gradle index 5dc879294d41d16272c64815eeffd3cb2ef5a369..43897aa89143d46288e9105486d6fec83f7af1b7 100644 --- a/LiveDataSample/versions.gradle +++ b/LiveDataSample/versions.gradle @@ -52,7 +52,7 @@ versions.mockito_android = "2.25.0" versions.mockwebserver = "3.8.1" versions.navigation = "2.3.0-alpha01" versions.okhttp_logging_interceptor = "3.9.0" -versions.paging = "3.1.0-alpha04" +versions.paging = "3.1.0-beta01" versions.recyclerview = "1.2.0-beta01" versions.retrofit = "2.9.0" versions.robolectric = "4.2" diff --git a/MADSkillsNavigationSample/versions.gradle b/MADSkillsNavigationSample/versions.gradle index 5dc879294d41d16272c64815eeffd3cb2ef5a369..43897aa89143d46288e9105486d6fec83f7af1b7 100644 --- a/MADSkillsNavigationSample/versions.gradle +++ b/MADSkillsNavigationSample/versions.gradle @@ -52,7 +52,7 @@ versions.mockito_android = "2.25.0" versions.mockwebserver = "3.8.1" versions.navigation = "2.3.0-alpha01" versions.okhttp_logging_interceptor = "3.9.0" -versions.paging = "3.1.0-alpha04" +versions.paging = "3.1.0-beta01" versions.recyclerview = "1.2.0-beta01" versions.retrofit = "2.9.0" versions.robolectric = "4.2" diff --git a/NavigationAdvancedSample/versions.gradle b/NavigationAdvancedSample/versions.gradle index 5dc879294d41d16272c64815eeffd3cb2ef5a369..43897aa89143d46288e9105486d6fec83f7af1b7 100644 --- a/NavigationAdvancedSample/versions.gradle +++ b/NavigationAdvancedSample/versions.gradle @@ -52,7 +52,7 @@ versions.mockito_android = "2.25.0" versions.mockwebserver = "3.8.1" versions.navigation = "2.3.0-alpha01" versions.okhttp_logging_interceptor = "3.9.0" -versions.paging = "3.1.0-alpha04" +versions.paging = "3.1.0-beta01" versions.recyclerview = "1.2.0-beta01" versions.retrofit = "2.9.0" versions.robolectric = "4.2" diff --git a/NavigationBasicSample/versions.gradle b/NavigationBasicSample/versions.gradle index 5dc879294d41d16272c64815eeffd3cb2ef5a369..43897aa89143d46288e9105486d6fec83f7af1b7 100644 --- a/NavigationBasicSample/versions.gradle +++ b/NavigationBasicSample/versions.gradle @@ -52,7 +52,7 @@ versions.mockito_android = "2.25.0" versions.mockwebserver = "3.8.1" versions.navigation = "2.3.0-alpha01" versions.okhttp_logging_interceptor = "3.9.0" -versions.paging = "3.1.0-alpha04" +versions.paging = "3.1.0-beta01" versions.recyclerview = "1.2.0-beta01" versions.retrofit = "2.9.0" versions.robolectric = "4.2" diff --git a/PagingSample/versions.gradle b/PagingSample/versions.gradle index 5dc879294d41d16272c64815eeffd3cb2ef5a369..43897aa89143d46288e9105486d6fec83f7af1b7 100644 --- a/PagingSample/versions.gradle +++ b/PagingSample/versions.gradle @@ -52,7 +52,7 @@ versions.mockito_android = "2.25.0" versions.mockwebserver = "3.8.1" versions.navigation = "2.3.0-alpha01" versions.okhttp_logging_interceptor = "3.9.0" -versions.paging = "3.1.0-alpha04" +versions.paging = "3.1.0-beta01" versions.recyclerview = "1.2.0-beta01" versions.retrofit = "2.9.0" versions.robolectric = "4.2" diff --git a/PagingWithNetworkSample/app/src/main/java/com/android/example/paging/pagingwithnetwork/reddit/ui/RedditActivity.kt b/PagingWithNetworkSample/app/src/main/java/com/android/example/paging/pagingwithnetwork/reddit/ui/RedditActivity.kt index 33dfd9667db9b52810f43c12241b65a938aafe60..47669ae15689b07561c747d28abf1150a7975077 100644 --- a/PagingWithNetworkSample/app/src/main/java/com/android/example/paging/pagingwithnetwork/reddit/ui/RedditActivity.kt +++ b/PagingWithNetworkSample/app/src/main/java/com/android/example/paging/pagingwithnetwork/reddit/ui/RedditActivity.kt @@ -136,7 +136,7 @@ class RedditActivity : AppCompatActivity() { private fun updatedSubredditFromInput() { binding.input.text.trim().toString().let { - if (it.isNotBlank() && model.shouldShowSubreddit(it)) { + if (it.isNotBlank()) { model.showSubreddit(it) } } diff --git a/PagingWithNetworkSample/app/src/main/java/com/android/example/paging/pagingwithnetwork/reddit/ui/SubRedditViewModel.kt b/PagingWithNetworkSample/app/src/main/java/com/android/example/paging/pagingwithnetwork/reddit/ui/SubRedditViewModel.kt index 37811ff7c52c26faf3e8ef70e37acf2e2768996d..f5074ae18eb79a40d3e0d7297aef3c059dfcd3fb 100644 --- a/PagingWithNetworkSample/app/src/main/java/com/android/example/paging/pagingwithnetwork/reddit/ui/SubRedditViewModel.kt +++ b/PagingWithNetworkSample/app/src/main/java/com/android/example/paging/pagingwithnetwork/reddit/ui/SubRedditViewModel.kt @@ -20,14 +20,10 @@ import androidx.lifecycle.SavedStateHandle import androidx.lifecycle.ViewModel import androidx.lifecycle.asFlow import androidx.lifecycle.viewModelScope -import androidx.paging.PagingData import androidx.paging.cachedIn import com.android.example.paging.pagingwithnetwork.reddit.repository.RedditPostRepository -import com.android.example.paging.pagingwithnetwork.reddit.vo.RedditPost import kotlinx.coroutines.ExperimentalCoroutinesApi -import kotlinx.coroutines.FlowPreview -import kotlinx.coroutines.channels.Channel -import kotlinx.coroutines.flow.* +import kotlinx.coroutines.flow.flatMapLatest class SubRedditViewModel( private val repository: RedditPostRepository, @@ -44,28 +40,20 @@ class SubRedditViewModel( } } - private val clearListCh = Channel(Channel.CONFLATED) - - @OptIn(ExperimentalCoroutinesApi::class, FlowPreview::class) - val posts = flowOf( - clearListCh.receiveAsFlow().map { PagingData.empty() }, - savedStateHandle.getLiveData(KEY_SUBREDDIT) - .asFlow() - .flatMapLatest { repository.postsOfSubreddit(it, 30) } - // cachedIn() shares the paging state across multiple consumers of posts, - // e.g. different generations of UI across rotation config change - .cachedIn(viewModelScope) - ).flattenMerge(2) - - fun shouldShowSubreddit( - subreddit: String - ) = savedStateHandle.get(KEY_SUBREDDIT) != subreddit + @OptIn(ExperimentalCoroutinesApi::class) + val posts = savedStateHandle.getLiveData(KEY_SUBREDDIT) + .asFlow() + .flatMapLatest { repository.postsOfSubreddit(it, 30) } + // cachedIn() shares the paging state across multiple consumers of posts, + // e.g. different generations of UI across rotation config change + .cachedIn(viewModelScope) fun showSubreddit(subreddit: String) { if (!shouldShowSubreddit(subreddit)) return - - clearListCh.offer(Unit) - savedStateHandle.set(KEY_SUBREDDIT, subreddit) } + + private fun shouldShowSubreddit(subreddit: String): Boolean { + return savedStateHandle.get(KEY_SUBREDDIT) != subreddit + } } diff --git a/PagingWithNetworkSample/versions.gradle b/PagingWithNetworkSample/versions.gradle index 5dc879294d41d16272c64815eeffd3cb2ef5a369..43897aa89143d46288e9105486d6fec83f7af1b7 100644 --- a/PagingWithNetworkSample/versions.gradle +++ b/PagingWithNetworkSample/versions.gradle @@ -52,7 +52,7 @@ versions.mockito_android = "2.25.0" versions.mockwebserver = "3.8.1" versions.navigation = "2.3.0-alpha01" versions.okhttp_logging_interceptor = "3.9.0" -versions.paging = "3.1.0-alpha04" +versions.paging = "3.1.0-beta01" versions.recyclerview = "1.2.0-beta01" versions.retrofit = "2.9.0" versions.robolectric = "4.2" diff --git a/PersistenceContentProviderSample/versions.gradle b/PersistenceContentProviderSample/versions.gradle index 5dc879294d41d16272c64815eeffd3cb2ef5a369..43897aa89143d46288e9105486d6fec83f7af1b7 100644 --- a/PersistenceContentProviderSample/versions.gradle +++ b/PersistenceContentProviderSample/versions.gradle @@ -52,7 +52,7 @@ versions.mockito_android = "2.25.0" versions.mockwebserver = "3.8.1" versions.navigation = "2.3.0-alpha01" versions.okhttp_logging_interceptor = "3.9.0" -versions.paging = "3.1.0-alpha04" +versions.paging = "3.1.0-beta01" versions.recyclerview = "1.2.0-beta01" versions.retrofit = "2.9.0" versions.robolectric = "4.2" diff --git a/PersistenceMigrationsSample/versions.gradle b/PersistenceMigrationsSample/versions.gradle index 5dc879294d41d16272c64815eeffd3cb2ef5a369..43897aa89143d46288e9105486d6fec83f7af1b7 100644 --- a/PersistenceMigrationsSample/versions.gradle +++ b/PersistenceMigrationsSample/versions.gradle @@ -52,7 +52,7 @@ versions.mockito_android = "2.25.0" versions.mockwebserver = "3.8.1" versions.navigation = "2.3.0-alpha01" versions.okhttp_logging_interceptor = "3.9.0" -versions.paging = "3.1.0-alpha04" +versions.paging = "3.1.0-beta01" versions.recyclerview = "1.2.0-beta01" versions.retrofit = "2.9.0" versions.robolectric = "4.2" diff --git a/ViewBindingSample/versions.gradle b/ViewBindingSample/versions.gradle index 5dc879294d41d16272c64815eeffd3cb2ef5a369..43897aa89143d46288e9105486d6fec83f7af1b7 100644 --- a/ViewBindingSample/versions.gradle +++ b/ViewBindingSample/versions.gradle @@ -52,7 +52,7 @@ versions.mockito_android = "2.25.0" versions.mockwebserver = "3.8.1" versions.navigation = "2.3.0-alpha01" versions.okhttp_logging_interceptor = "3.9.0" -versions.paging = "3.1.0-alpha04" +versions.paging = "3.1.0-beta01" versions.recyclerview = "1.2.0-beta01" versions.retrofit = "2.9.0" versions.robolectric = "4.2" diff --git a/WorkManagerMultiprocessSample/versions.gradle b/WorkManagerMultiprocessSample/versions.gradle index 5dc879294d41d16272c64815eeffd3cb2ef5a369..43897aa89143d46288e9105486d6fec83f7af1b7 100644 --- a/WorkManagerMultiprocessSample/versions.gradle +++ b/WorkManagerMultiprocessSample/versions.gradle @@ -52,7 +52,7 @@ versions.mockito_android = "2.25.0" versions.mockwebserver = "3.8.1" versions.navigation = "2.3.0-alpha01" versions.okhttp_logging_interceptor = "3.9.0" -versions.paging = "3.1.0-alpha04" +versions.paging = "3.1.0-beta01" versions.recyclerview = "1.2.0-beta01" versions.retrofit = "2.9.0" versions.robolectric = "4.2" diff --git a/WorkManagerSample/versions.gradle b/WorkManagerSample/versions.gradle index e5cd59f39ef0556eeae919ed9d14a2de718325a7..43c33125a42b290af06676caa37bb8ec7450addb 100644 --- a/WorkManagerSample/versions.gradle +++ b/WorkManagerSample/versions.gradle @@ -52,7 +52,7 @@ versions.mockito_android = "2.25.0" versions.mockwebserver = "3.8.1" versions.navigation = "2.3.0-alpha01" versions.okhttp_logging_interceptor = "3.9.0" -versions.paging = "3.1.0-alpha04" +versions.paging = "3.1.0-beta01" versions.recyclerview = "1.2.0-beta01" versions.retrofit = "2.9.0" versions.robolectric = "4.2" diff --git a/versions.gradle b/versions.gradle index 5dc879294d41d16272c64815eeffd3cb2ef5a369..43897aa89143d46288e9105486d6fec83f7af1b7 100644 --- a/versions.gradle +++ b/versions.gradle @@ -52,7 +52,7 @@ versions.mockito_android = "2.25.0" versions.mockwebserver = "3.8.1" versions.navigation = "2.3.0-alpha01" versions.okhttp_logging_interceptor = "3.9.0" -versions.paging = "3.1.0-alpha04" +versions.paging = "3.1.0-beta01" versions.recyclerview = "1.2.0-beta01" versions.retrofit = "2.9.0" versions.robolectric = "4.2"