diff --git a/pagination/src/main/java/ru/touchin/roboswag/pagination/PaginationView.kt b/pagination/src/main/java/ru/touchin/roboswag/pagination/PaginationView.kt index b206ce4..d6d686a 100644 --- a/pagination/src/main/java/ru/touchin/roboswag/pagination/PaginationView.kt +++ b/pagination/src/main/java/ru/touchin/roboswag/pagination/PaginationView.kt @@ -47,26 +47,20 @@ class PaginationView @JvmOverloads constructor( adapter.fullData = state === Paginator.State.Empty || state is Paginator.State.FullData<*> when (state) { - is Paginator.State.Empty -> { - adapter.update(emptyList(), false) - } - is Paginator.State.EmptyProgress -> { - adapter.update(emptyList(), false) - } - is Paginator.State.EmptyError -> { - adapter.update(emptyList(), false) + is Paginator.State.EmptyError, Paginator.State.Empty, Paginator.State.EmptyProgress -> { + adapter.update(emptyList(), PaginationAdapter.UpdateState.Common) } is Paginator.State.Data<*> -> { - adapter.update(state.data as List, false) + adapter.update(state.data as List, PaginationAdapter.UpdateState.Common) } is Paginator.State.Refresh<*> -> { - adapter.update(state.data as List, false) + adapter.update(state.data as List, PaginationAdapter.UpdateState.Common) } is Paginator.State.NewPageProgress<*> -> { - adapter.update(state.data as List, true) + adapter.update(state.data as List, PaginationAdapter.UpdateState.Progress) } is Paginator.State.FullData<*> -> { - adapter.update(state.data as List, false) + adapter.update(state.data as List, PaginationAdapter.UpdateState.Common) } } } 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 a20340e..164cad6 100644 --- a/pagination/src/main/java/ru/touchin/roboswag/pagination/Paginator.kt +++ b/pagination/src/main/java/ru/touchin/roboswag/pagination/Paginator.kt @@ -30,7 +30,7 @@ class Paginator( object Empty : State() object EmptyProgress : State() data class EmptyError(val error: Throwable) : State() - data class Data(val pageCount: Int = 0, val data: List) : State() + data class Data(val pageCount: Int = 0, val data: List, val error: Throwable? = null) : State() data class Refresh(val pageCount: Int, val data: List) : State() data class NewPageProgress(val pageCount: Int, val data: List) : State() data class FullData(val pageCount: Int, val data: List) : State() @@ -108,7 +108,11 @@ class Paginator( State.Data(currentState.pageCount, currentState.data) } is ErrorHandleMod.ErrorItem -> { - State.Data(currentState.pageCount, currentState.data + ErrorItem) + State.Data( + pageCount = currentState.pageCount, + data = currentState.data, + error = change.error + ) } } } @@ -119,7 +123,11 @@ class Paginator( State.Data(currentState.pageCount, currentState.data) } is ErrorHandleMod.ErrorItem -> { - State.Data(currentState.pageCount, currentState.data + ErrorItem) + State.Data( + pageCount = currentState.pageCount, + data = currentState.data, + error = change.error + ) } } }