Fixed unreasonable change resulting in major breakage all around the app
This commit is contained in:
parent
f11bb609c9
commit
7d6eebdae3
@ -5,7 +5,7 @@ import com.topjohnwu.magisk.extensions.doOnSubscribeUi
|
||||
import com.topjohnwu.magisk.model.events.BackPressEvent
|
||||
import com.topjohnwu.magisk.model.events.PermissionEvent
|
||||
import com.topjohnwu.magisk.model.events.ViewActionEvent
|
||||
import com.topjohnwu.magisk.utils.KObservableField
|
||||
import com.topjohnwu.magisk.model.observer.Observer
|
||||
import io.reactivex.Observable
|
||||
import io.reactivex.subjects.PublishSubject
|
||||
import com.topjohnwu.magisk.Info.isConnected as gIsConnected
|
||||
@ -15,11 +15,7 @@ abstract class BaseViewModel(
|
||||
initialState: State = State.LOADING
|
||||
) : LoadingViewModel(initialState) {
|
||||
|
||||
val isConnected = object : KObservableField<Boolean>(gIsConnected.value, gIsConnected) {
|
||||
override fun get(): Boolean {
|
||||
return gIsConnected.value
|
||||
}
|
||||
}
|
||||
val isConnected = Observer(gIsConnected) { gIsConnected.value }
|
||||
|
||||
fun withView(action: Activity.() -> Unit) {
|
||||
ViewActionEvent(action).publish()
|
||||
|
@ -2,18 +2,30 @@ package com.topjohnwu.magisk.utils
|
||||
|
||||
import androidx.databinding.Observable
|
||||
import androidx.databinding.ObservableField
|
||||
import com.topjohnwu.magisk.model.observer.Observer
|
||||
import java.io.Serializable
|
||||
|
||||
/**
|
||||
* Kotlin version of [ObservableField].
|
||||
* You can define if wrapped type is Nullable or not.
|
||||
* You can use kotlin get/set syntax for value
|
||||
*
|
||||
* ## Notes
|
||||
* This stays final for fuck's sake. Too many things depend on it, so you just cannot go around and
|
||||
* change it randomly. Even though you think you're improving the design, you might be fucking this
|
||||
* up in unimaginable ways. So DON'T TOUCH THIS.
|
||||
*
|
||||
* In order to have value-less observer you need - you guessed it - **a fucking [Observer]**!
|
||||
*/
|
||||
open class KObservableField<T> : ObservableField<T>, Serializable {
|
||||
class KObservableField<T> : ObservableField<T>, Serializable {
|
||||
|
||||
var value: T
|
||||
get() = get()
|
||||
set(value) { set(value) }
|
||||
set(value) {
|
||||
if (field != value) {
|
||||
field = value
|
||||
notifyChange()
|
||||
}
|
||||
}
|
||||
|
||||
constructor(init: T) {
|
||||
value = init
|
||||
@ -23,8 +35,23 @@ open class KObservableField<T> : ObservableField<T>, Serializable {
|
||||
value = init
|
||||
}
|
||||
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
@Deprecated(
|
||||
message = "Needed for data binding, use KObservableField.value syntax from code",
|
||||
replaceWith = ReplaceWith("value")
|
||||
)
|
||||
override fun get(): T {
|
||||
return super.get() as T
|
||||
return value
|
||||
}
|
||||
|
||||
@Deprecated(
|
||||
message = "Needed for data binding, use KObservableField.value = ... syntax from code",
|
||||
replaceWith = ReplaceWith("value = newValue")
|
||||
)
|
||||
override fun set(newValue: T) {
|
||||
value = newValue
|
||||
}
|
||||
|
||||
override fun toString(): String {
|
||||
return "KObservableField(value=$value)"
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user