mirror of
https://github.com/topjohnwu/Magisk.git
synced 2025-01-12 15:03:37 +00:00
Fixed updating values with sql
This commit is contained in:
parent
0e6c205732
commit
2fe917ff82
@ -1,5 +1,5 @@
|
|||||||
package com.topjohnwu.magisk.data.database.base
|
package com.topjohnwu.magisk.data.database.base
|
||||||
|
|
||||||
data class MagiskQuery(private val _query: String) {
|
inline class MagiskQuery(private val _query: String) {
|
||||||
val query = "magisk --sqlite '$_query'"
|
val query get() = "magisk --sqlite '$_query'"
|
||||||
}
|
}
|
@ -82,7 +82,7 @@ open class Insert : MagiskQueryBuilder {
|
|||||||
override lateinit var table: String
|
override lateinit var table: String
|
||||||
|
|
||||||
private val keys get() = _values.keys.joinToString(",")
|
private val keys get() = _values.keys.joinToString(",")
|
||||||
private val values get() = _values.values.joinToString(",")
|
private val values get() = _values.values.joinToString(",") { "\"$it\"" }
|
||||||
private var _values: Map<String, String> = mapOf()
|
private var _values: Map<String, String> = mapOf()
|
||||||
|
|
||||||
fun values(vararg pairs: Pair<String, String>) {
|
fun values(vararg pairs: Pair<String, String>) {
|
||||||
|
@ -59,7 +59,7 @@ fun MagiskPolicy.toMap() = mapOf(
|
|||||||
"until" to until,
|
"until" to until,
|
||||||
"logging" to if (logging) 1 else 0,
|
"logging" to if (logging) 1 else 0,
|
||||||
"notification" to if (notification) 1 else 0
|
"notification" to if (notification) 1 else 0
|
||||||
).mapValues { it.toString() }
|
).mapValues { it.value.toString() }
|
||||||
|
|
||||||
@Throws(PackageManager.NameNotFoundException::class)
|
@Throws(PackageManager.NameNotFoundException::class)
|
||||||
fun Map<String, String>.toPolicy(pm: PackageManager): MagiskPolicy {
|
fun Map<String, String>.toPolicy(pm: PackageManager): MagiskPolicy {
|
||||||
|
@ -26,6 +26,13 @@ class PolicyRvItem(val item: MagiskPolicy, val icon: Drawable) : ComparableRvIte
|
|||||||
|
|
||||||
private val rxBus: RxBus by inject()
|
private val rxBus: RxBus by inject()
|
||||||
|
|
||||||
|
private val currentStateItem
|
||||||
|
get() = item.copy(
|
||||||
|
policy = if (isEnabled.value) Policy.ALLOW else Policy.DENY,
|
||||||
|
notification = shouldNotify.value,
|
||||||
|
logging = shouldLog.value
|
||||||
|
)
|
||||||
|
|
||||||
init {
|
init {
|
||||||
isEnabled.addOnPropertyChangedCallback {
|
isEnabled.addOnPropertyChangedCallback {
|
||||||
it ?: return@addOnPropertyChangedCallback
|
it ?: return@addOnPropertyChangedCallback
|
||||||
@ -33,11 +40,11 @@ class PolicyRvItem(val item: MagiskPolicy, val icon: Drawable) : ComparableRvIte
|
|||||||
}
|
}
|
||||||
shouldNotify.addOnPropertyChangedCallback {
|
shouldNotify.addOnPropertyChangedCallback {
|
||||||
it ?: return@addOnPropertyChangedCallback
|
it ?: return@addOnPropertyChangedCallback
|
||||||
rxBus.post(PolicyUpdateEvent.Notification(this@PolicyRvItem, shouldNotify.value))
|
rxBus.post(PolicyUpdateEvent.Notification(currentStateItem))
|
||||||
}
|
}
|
||||||
shouldLog.addOnPropertyChangedCallback {
|
shouldLog.addOnPropertyChangedCallback {
|
||||||
it ?: return@addOnPropertyChangedCallback
|
it ?: return@addOnPropertyChangedCallback
|
||||||
rxBus.post(PolicyUpdateEvent.Log(this@PolicyRvItem, shouldLog.value))
|
rxBus.post(PolicyUpdateEvent.Log(currentStateItem))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package com.topjohnwu.magisk.model.events
|
package com.topjohnwu.magisk.model.events
|
||||||
|
|
||||||
import com.skoumal.teanity.rxbus.RxBus
|
import com.skoumal.teanity.rxbus.RxBus
|
||||||
|
import com.topjohnwu.magisk.model.entity.MagiskPolicy
|
||||||
import com.topjohnwu.magisk.model.entity.recycler.HideProcessRvItem
|
import com.topjohnwu.magisk.model.entity.recycler.HideProcessRvItem
|
||||||
import com.topjohnwu.magisk.model.entity.recycler.ModuleRvItem
|
import com.topjohnwu.magisk.model.entity.recycler.ModuleRvItem
|
||||||
import com.topjohnwu.magisk.model.entity.recycler.PolicyRvItem
|
import com.topjohnwu.magisk.model.entity.recycler.PolicyRvItem
|
||||||
@ -8,9 +9,9 @@ import com.topjohnwu.magisk.model.entity.recycler.PolicyRvItem
|
|||||||
class HideProcessEvent(val item: HideProcessRvItem) : RxBus.Event
|
class HideProcessEvent(val item: HideProcessRvItem) : RxBus.Event
|
||||||
|
|
||||||
class PolicyEnableEvent(val item: PolicyRvItem, val enable: Boolean) : RxBus.Event
|
class PolicyEnableEvent(val item: PolicyRvItem, val enable: Boolean) : RxBus.Event
|
||||||
sealed class PolicyUpdateEvent(val item: PolicyRvItem) : RxBus.Event {
|
sealed class PolicyUpdateEvent(val item: MagiskPolicy) : RxBus.Event {
|
||||||
class Notification(item: PolicyRvItem, val shouldNotify: Boolean) : PolicyUpdateEvent(item)
|
class Notification(item: MagiskPolicy) : PolicyUpdateEvent(item)
|
||||||
class Log(item: PolicyRvItem, val shouldLog: Boolean) : PolicyUpdateEvent(item)
|
class Log(item: MagiskPolicy) : PolicyUpdateEvent(item)
|
||||||
}
|
}
|
||||||
|
|
||||||
class ModuleUpdatedEvent(val item: ModuleRvItem) : RxBus.Event
|
class ModuleUpdatedEvent(val item: ModuleRvItem) : RxBus.Event
|
||||||
|
@ -85,13 +85,13 @@ class SuperuserViewModel(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun updatePolicy(it: PolicyUpdateEvent) = when (it) {
|
private fun updatePolicy(it: PolicyUpdateEvent) = when (it) {
|
||||||
is PolicyUpdateEvent.Notification -> updatePolicy(it.item.item.copy(notification = it.shouldNotify)) {
|
is PolicyUpdateEvent.Notification -> updatePolicy(it.item) {
|
||||||
val textId =
|
val textId =
|
||||||
if (it.notification) R.string.su_snack_notif_on else R.string.su_snack_notif_off
|
if (it.notification) R.string.su_snack_notif_on else R.string.su_snack_notif_off
|
||||||
val text = resources.getString(textId).format(it.appName)
|
val text = resources.getString(textId).format(it.appName)
|
||||||
SnackbarEvent(text).publish()
|
SnackbarEvent(text).publish()
|
||||||
}
|
}
|
||||||
is PolicyUpdateEvent.Log -> updatePolicy(it.item.item.copy(logging = it.shouldLog)) {
|
is PolicyUpdateEvent.Log -> updatePolicy(it.item) {
|
||||||
val textId =
|
val textId =
|
||||||
if (it.logging) R.string.su_snack_log_on else R.string.su_snack_log_off
|
if (it.logging) R.string.su_snack_log_on else R.string.su_snack_log_off
|
||||||
val text = resources.getString(textId).format(it.appName)
|
val text = resources.getString(textId).format(it.appName)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user