diff --git a/paging/src/commonMain/kotlin/com/kuuurt/paging/multiplatform/PagingData.kt b/paging/src/commonMain/kotlin/com/kuuurt/paging/multiplatform/PagingData.kt index b5a37ff..e8f7ae8 100644 --- a/paging/src/commonMain/kotlin/com/kuuurt/paging/multiplatform/PagingData.kt +++ b/paging/src/commonMain/kotlin/com/kuuurt/paging/multiplatform/PagingData.kt @@ -8,7 +8,12 @@ package com.kuuurt.paging.multiplatform * @since 06/11/2020 */ -expect class PagingData +expect class PagingData { + + companion object { + fun empty(): PagingData + } +} expect suspend fun PagingData.filter(predicate: suspend (T) -> Boolean): PagingData diff --git a/paging/src/iosMain/kotlin/com/kuuurt/paging/multiplatform/PagingData.kt b/paging/src/iosMain/kotlin/com/kuuurt/paging/multiplatform/PagingData.kt index 1fffd4a..76fc478 100644 --- a/paging/src/iosMain/kotlin/com/kuuurt/paging/multiplatform/PagingData.kt +++ b/paging/src/iosMain/kotlin/com/kuuurt/paging/multiplatform/PagingData.kt @@ -7,9 +7,15 @@ package com.kuuurt.paging.multiplatform * @since 06/11/2020 */ -actual class PagingData internal constructor(items: List) : List by items +actual class PagingData internal constructor(items: List) : List by items { + actual companion object { + actual fun empty(): PagingData { + return PagingData(emptyList()) + } + } +} -internal fun List.toPagingData(): PagingData = +internal fun List.toPagingData(): PagingData = PagingData(this) actual suspend fun PagingData.filter(predicate: suspend (T) -> Boolean): PagingData { diff --git a/sample/android/src/main/java/com/kuuurt/paging/multiplatform/sample/MainActivity.kt b/sample/android/src/main/java/com/kuuurt/paging/multiplatform/sample/MainActivity.kt index 732d85b..7851989 100644 --- a/sample/android/src/main/java/com/kuuurt/paging/multiplatform/sample/MainActivity.kt +++ b/sample/android/src/main/java/com/kuuurt/paging/multiplatform/sample/MainActivity.kt @@ -4,11 +4,13 @@ import android.os.Bundle import android.util.Log import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.lifecycleScope +import androidx.paging.PagingData import androidx.recyclerview.widget.RecyclerView import com.kuuurt.paging.sample.multiplatform.library.MainViewModel import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach +import kotlinx.coroutines.flow.onEmpty /** * Copyright 2020, Kurt Renzo Acosta, All rights reserved. @@ -41,6 +43,7 @@ class MainActivity : AppCompatActivity(R.layout.activity_main) { .launchIn(lifecycleScope) viewModel.pagingData + .onEmpty { testAdapter.submitData(PagingData.empty()) } .onEach { testAdapter.submitData(it) } .launchIn(lifecycleScope) }