Fixed state not being propagated correctly on startup

This commit is contained in:
Viktor De Pasquale 2019-11-29 21:04:47 +01:00
parent 34a0a00e3c
commit 89da45f9ac
2 changed files with 13 additions and 10 deletions

View File

@ -129,6 +129,14 @@ object UpdateChannelUrl : SettingsItem.Input() {
notifyChange(BR.result) notifyChange(BR.result)
} }
init {
updateState()
}
fun updateState() {
isEnabled = UpdateChannel.value == Config.Value.CUSTOM_CHANNEL
}
override fun getView(context: Context) = DialogSettingsUpdateChannelBinding override fun getView(context: Context) = DialogSettingsUpdateChannelBinding
.inflate(LayoutInflater.from(context)).also { it.data = this }.root .inflate(LayoutInflater.from(context)).also { it.data = this }.root
} }

View File

@ -9,7 +9,6 @@ import androidx.databinding.Bindable
import androidx.databinding.ViewDataBinding import androidx.databinding.ViewDataBinding
import androidx.recyclerview.widget.StaggeredGridLayoutManager import androidx.recyclerview.widget.StaggeredGridLayoutManager
import com.topjohnwu.magisk.BR import com.topjohnwu.magisk.BR
import com.topjohnwu.magisk.Config
import com.topjohnwu.magisk.R import com.topjohnwu.magisk.R
import com.topjohnwu.magisk.model.entity.recycler.ObservableItem import com.topjohnwu.magisk.model.entity.recycler.ObservableItem
import com.topjohnwu.magisk.model.events.DieEvent import com.topjohnwu.magisk.model.events.DieEvent
@ -49,18 +48,14 @@ class SettingsViewModel : CompatViewModel(), SettingsItem.Callback {
// use only instances you want, don't declare everything // use only instances you want, don't declare everything
is Theme -> Navigation.theme().publish() is Theme -> Navigation.theme().publish()
is Redesign -> DieEvent().publish() is Redesign -> DieEvent().publish()
is UpdateChannel -> item.openUrlIfNecessary(view) is UpdateChannel -> openUrlIfNecessary(view)
else -> Unit else -> Unit
} }
private fun UpdateChannel.openUrlIfNecessary(view: View) { private fun openUrlIfNecessary(view: View) {
if (value == Config.Value.CUSTOM_CHANNEL) { UpdateChannelUrl.updateState()
if (UpdateChannelUrl.value.isBlank()) { if (UpdateChannelUrl.value.isBlank()) {
UpdateChannelUrl.onPressed(view, this@SettingsViewModel) UpdateChannelUrl.onPressed(view, this@SettingsViewModel)
}
UpdateChannelUrl.isEnabled = true
} else {
UpdateChannelUrl.isEnabled = false
} }
} }