This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
sealed class MVIJetpackComposeViewState { | |
@Composable | |
abstract fun buildUI() | |
object Loading : MyViewState() { | |
@Composable | |
override fun buildUI() { | |
// Loading which is not provided yet | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
sealed class MyViewState { | |
class Error(val cause: String): MyViewState() | |
object Loading: MyViewState() | |
class DataLoaded(data: Data): MyViewState() | |
} | |
[...MyView...] | |
fun render(viewState: MyViewState) { | |
when (viewState) { | |
MyViewState.Error -> { // handle error state |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Created by Luca Nicoletti | |
* © 17/10/2018 | |
* Copied from: https://gist.github.com/nesquena/d09dc68ff07e845cc622; added some little edits for Kotlin | |
*/ | |
abstract class EndlessRecyclerViewScrollListener(private var visibleThreshold: Int = 5): RecyclerView.OnScrollListener() { | |
private var currentPage = 0 | |
private var previousTotalItemCount = 0 | |
private var loading = true |
NewerOlder