Merge pull request #152 from TouchInstinct/hotfix/pagination-date

return lost commit Paginator
This commit is contained in:
RationalEgoism 2020-08-27 10:32:33 +03:00 committed by GitHub
commit c9cbfcb59b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 15 deletions

View File

@ -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<Any>, false)
adapter.update(state.data as List<Any>, PaginationAdapter.UpdateState.Common)
}
is Paginator.State.Refresh<*> -> {
adapter.update(state.data as List<Any>, false)
adapter.update(state.data as List<Any>, PaginationAdapter.UpdateState.Common)
}
is Paginator.State.NewPageProgress<*> -> {
adapter.update(state.data as List<Any>, true)
adapter.update(state.data as List<Any>, PaginationAdapter.UpdateState.Progress)
}
is Paginator.State.FullData<*> -> {
adapter.update(state.data as List<Any>, false)
adapter.update(state.data as List<Any>, PaginationAdapter.UpdateState.Common)
}
}
}

View File

@ -30,7 +30,7 @@ class Paginator<Item>(
object Empty : State()
object EmptyProgress : State()
data class EmptyError(val error: Throwable) : State()
data class Data<T>(val pageCount: Int = 0, val data: List<T>) : State()
data class Data<T>(val pageCount: Int = 0, val data: List<T>, val error: Throwable? = null) : State()
data class Refresh<T>(val pageCount: Int, val data: List<T>) : State()
data class NewPageProgress<T>(val pageCount: Int, val data: List<T>) : State()
data class FullData<T>(val pageCount: Int, val data: List<T>) : State()
@ -108,7 +108,11 @@ class Paginator<Item>(
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<Item>(
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
)
}
}
}