feat(twitch): settings patch (#1075)

Co-authored-by: oSumAtrIX <johan.melkonyan1@web.de>
This commit is contained in:
Tim Schneeberger
2022-11-28 23:50:04 +01:00
committed by GitHub
co-authored by oSumAtrIX
parent eb505d802a
commit 06098713bb
14 changed files with 332 additions and 14 deletions
@@ -19,8 +19,10 @@ internal data class ArrayResource(
override fun serialize(ownerDocument: Document, resourceCallback: ((IResource) -> Unit)?): Element {
return super.serialize(ownerDocument, resourceCallback).apply {
setAttribute("name", name)
items.forEach { item ->
setAttribute("name", item.also { resourceCallback?.invoke(it) }.name)
resourceCallback?.invoke(item)
this.appendChild(ownerDocument.createElement("item").also { itemNode ->
itemNode.textContent = item.value
@@ -15,7 +15,7 @@ import org.w3c.dom.Element
internal open class PreferenceCategory(
key: String,
title: StringResource,
val preferences: List<BasePreference>
var preferences: List<BasePreference>
) : BasePreference(key, title) {
override val tag: String = "PreferenceCategory"
@@ -17,7 +17,7 @@ import org.w3c.dom.Element
internal open class PreferenceScreen(
key: String,
title: StringResource,
val preferences: List<BasePreference>,
var preferences: List<BasePreference>,
val summary: StringResource? = null
) : BasePreference(key, title) {
override val tag: String = "PreferenceScreen"
@@ -26,6 +26,17 @@ abstract class AbstractSettingsResourcePatch(
private val sourceDirectory: String,
) : ResourcePatch {
override fun execute(context: ResourceContext): PatchResult {
/*
* used for self-restart
*/
context.xmlEditor["AndroidManifest.xml"].use { editor ->
editor.file.getElementsByTagName("manifest").item(0).also {
it.appendChild(it.ownerDocument.createElement("uses-permission").also { element ->
element.setAttribute("android:name", "android.permission.SCHEDULE_EXACT_ALARM")
})
}
}
/* copy preference template from source dir */
context.copyResources(
sourceDirectory,