From 23c8a987c1600c31c80c9303e5e1d84d4850af55 Mon Sep 17 00:00:00 2001 From: Stanisalv Date: Wed, 9 Sep 2020 12:31:48 +0300 Subject: [PATCH 1/2] added paginator full state if itemList < pageSize added paginator full state if itemList < pageSize --- .../main/java/ru/touchin/roboswag/pagination/Paginator.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pagination/src/main/java/ru/touchin/roboswag/pagination/Paginator.kt b/pagination/src/main/java/ru/touchin/roboswag/pagination/Paginator.kt index 164cad6..dc681b9 100644 --- a/pagination/src/main/java/ru/touchin/roboswag/pagination/Paginator.kt +++ b/pagination/src/main/java/ru/touchin/roboswag/pagination/Paginator.kt @@ -10,7 +10,8 @@ import ru.touchin.roboswag.mvi_arch.marker.ViewState class Paginator( private val errorHandleMod: ErrorHandleMod, - private val loadPage: suspend (Int) -> List + private val loadPage: suspend (Int) -> List, + private val pageSize: Int ) : Store(State.Empty) { sealed class Change : StateChange { @@ -89,7 +90,7 @@ class Paginator( } } is State.NewPageProgress<*> -> { - if (items.isEmpty()) { + if (items.isEmpty() || items.size < pageSize) { State.FullData(currentState.pageCount, currentState.data) } else { State.Data(currentState.pageCount + 1, currentState.data + items) From f2c972d69f6fc0b9437c1739aca9b28e8749bd7a Mon Sep 17 00:00:00 2001 From: stanislav Date: Wed, 9 Sep 2020 12:46:29 +0300 Subject: [PATCH 2/2] removed extra condition in paginator --- .../src/main/java/ru/touchin/roboswag/pagination/Paginator.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pagination/src/main/java/ru/touchin/roboswag/pagination/Paginator.kt b/pagination/src/main/java/ru/touchin/roboswag/pagination/Paginator.kt index dc681b9..53b808a 100644 --- a/pagination/src/main/java/ru/touchin/roboswag/pagination/Paginator.kt +++ b/pagination/src/main/java/ru/touchin/roboswag/pagination/Paginator.kt @@ -90,7 +90,7 @@ class Paginator( } } is State.NewPageProgress<*> -> { - if (items.isEmpty() || items.size < pageSize) { + if (items.size < pageSize) { State.FullData(currentState.pageCount, currentState.data) } else { State.Data(currentState.pageCount + 1, currentState.data + items)