-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MutableLiveDataKtx is not subtype of MutableLiveData #22
Comments
Hi @opryzhek Thanks for your question. Code duplication is one of the thing I would like to avoid in the first place. I will look into it to see if there are any other approaches. |
I've run through the code and found out that all extension methods like package com.ronasit.apptemplate.ui
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
interface ILiveDataKtx<T> {
val safeValue: T?
fun getValue(): T
}
open class LiveDataKtx<T> : LiveData<T>(), ILiveDataKtx<T> {
override val safeValue: T? get() = super.getValue()
@Suppress("RedundantOverride")
override fun setValue(value: T) {
super.setValue(value)
}
@Suppress("UNCHECKED_CAST")
override fun getValue(): T {
return super.getValue() as T
}
@Suppress("RedundantOverride")
override fun postValue(value: T) {
super.postValue(value)
}
}
open class MutableLiveDataKtx<T>: MutableLiveData<T>(), ILiveDataKtx<T> {
override val safeValue: T? get() = super.getValue()
@Suppress("UNCHECKED_CAST")
override fun getValue(): T {
return super.getValue() as T
}
@Suppress("RedundantOverride")
override fun setValue(value: T) {
super.setValue(value)
}
@Suppress("RedundantOverride")
override fun postValue(value: T) {
super.postValue(value)
}
}
|
There are places where
MutableLiveData
is required, for example in two way data binding. It may be better to makeMutableLiveDataKtx
a subtype ofMutableLiveData
as these dependencies are hard to change. Downside of this will be code duplication and the fact thatMutableLiveDataKtx
would not be subtype ofLiveDataKtx
anymore. I can make a pull request if you consider this as a good idea.The text was updated successfully, but these errors were encountered: