Skip to content

Instantly share code, notes, and snippets.

@marcelpinto
Created April 2, 2019 23:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save marcelpinto/617828e36ee899081f3479d8d1b6f958 to your computer and use it in GitHub Desktop.
Save marcelpinto/617828e36ee899081f3479d8d1b6f958 to your computer and use it in GitHub Desktop.
Gist for ViewData best practice blog - Best way
sealed class MyViewData {
abstract val distance: Int
data class Km(override val distance: Int): MyViewData()
data class Miles(override val distance: Int): MyViewData()
}
class MyViewModel: ViewModel() {
private val _myViewData = MutableLiveData<MyViewData>()
val myViewData: LiveData<MyViewData> = _myViewData
fun updateViewData() {
val value = getDistance()
val distanceUnit = userPref.getDistanceUnit()
_myViewData.value = when (distanceUnit) {
KM -> MyViewData.Km(value)
MILES -> MyViewData.Miles(value)
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment