mirror of
https://github.com/topjohnwu/Magisk.git
synced 2025-12-31 07:36:47 +00:00
Added basic preferences to settings
This commit is contained in:
@@ -85,4 +85,14 @@ class BackPressEvent : ViewEvent(), ActivityExecutor {
|
||||
}
|
||||
}
|
||||
|
||||
class DieEvent : ViewEvent()
|
||||
class DieEvent : ViewEvent(), ActivityExecutor {
|
||||
override fun invoke(activity: AppCompatActivity) {
|
||||
activity.finish()
|
||||
}
|
||||
}
|
||||
|
||||
class RecreateEvent : ViewEvent(), ActivityExecutor {
|
||||
override fun invoke(activity: AppCompatActivity) {
|
||||
activity.recreate()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.topjohnwu.magisk.redesign.settings
|
||||
|
||||
import android.graphics.Insets
|
||||
import com.topjohnwu.magisk.R
|
||||
import com.topjohnwu.magisk.databinding.FragmentSettingsMd2Binding
|
||||
import com.topjohnwu.magisk.redesign.compat.CompatFragment
|
||||
@@ -10,4 +11,12 @@ class SettingsFragment : CompatFragment<SettingsViewModel, FragmentSettingsMd2Bi
|
||||
override val layoutRes = R.layout.fragment_settings_md2
|
||||
override val viewModel by viewModel<SettingsViewModel>()
|
||||
|
||||
override fun consumeSystemWindowInsets(insets: Insets) = insets
|
||||
|
||||
override fun onStart() {
|
||||
super.onStart()
|
||||
|
||||
activity.title = resources.getString(R.string.section_settings)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,30 @@
|
||||
package com.topjohnwu.magisk.redesign.settings
|
||||
|
||||
import com.topjohnwu.magisk.Config
|
||||
import com.topjohnwu.magisk.extensions.addOnPropertyChangedCallback
|
||||
import com.topjohnwu.magisk.extensions.toggle
|
||||
import com.topjohnwu.magisk.model.events.DieEvent
|
||||
import com.topjohnwu.magisk.model.events.RecreateEvent
|
||||
import com.topjohnwu.magisk.redesign.compat.CompatViewModel
|
||||
import com.topjohnwu.magisk.utils.KObservableField
|
||||
|
||||
class SettingsViewModel : CompatViewModel()
|
||||
class SettingsViewModel : CompatViewModel() {
|
||||
|
||||
val redesign = KObservableField(Config.redesign)
|
||||
val darkTheme = KObservableField(Config.darkTheme)
|
||||
|
||||
init {
|
||||
//todo make observable preference
|
||||
redesign.addOnPropertyChangedCallback {
|
||||
Config.redesign = redesign.value
|
||||
DieEvent().publish()
|
||||
}
|
||||
darkTheme.addOnPropertyChangedCallback {
|
||||
Config.darkTheme = darkTheme.value
|
||||
RecreateEvent().publish()
|
||||
}
|
||||
}
|
||||
|
||||
fun toggle(item: KObservableField<Boolean>) = item.toggle()
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user