исправления ошибок, добавление патча настроек
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
# Change application theme
|
||||
|
||||
from lxml import etree
|
||||
|
||||
|
||||
# Generate PreferenceCategory
|
||||
def make_category(ns, name, items):
|
||||
cat = etree.Element("PreferenceCategory", nsmap=ns)
|
||||
cat.set(f"{{{ns['android']}}}title", name)
|
||||
cat.set(f"{{{ns['app']}}}iconSpaceReserved", "false")
|
||||
|
||||
for item in items:
|
||||
pref = etree.SubElement(cat, "Preference", nsmap=ns)
|
||||
pref.set(f"{{{ns['android']}}}title", item["title"])
|
||||
pref.set(f"{{{ns['android']}}}summary", item["description"])
|
||||
pref.set(f"{{{ns['app']}}}icon", item["icon"])
|
||||
pref.set(f"{{{ns['app']}}}iconSpaceReserved", item["icon_space_reserved"])
|
||||
|
||||
intent = etree.SubElement(pref, "intent", nsmap=ns)
|
||||
intent.set(f"{{{ns['android']}}}action", "android.intent.action.VIEW")
|
||||
intent.set(f"{{{ns['android']}}}data", item["url"])
|
||||
intent.set(f"{{{ns['app']}}}iconSpaceReserved", item["icon_space_reserved"])
|
||||
|
||||
return cat
|
||||
|
||||
def apply(config: dict) -> bool:
|
||||
file_path = "./decompiled/res/xml/preference_main.xml"
|
||||
parser = etree.XMLParser(remove_blank_text=True)
|
||||
tree = etree.parse(file_path, parser)
|
||||
root = tree.getroot()
|
||||
|
||||
# Insert new PreferenceCategory before the last element
|
||||
last = root[-1] # last element
|
||||
pos = root.index(last)
|
||||
for section, items in config["settings_urls"].items():
|
||||
root.insert(pos, make_category(config["xml_ns"], section, items))
|
||||
pos += 1
|
||||
|
||||
# Save back
|
||||
tree.write(file_path, pretty_print=True, xml_declaration=True, encoding="utf-8")
|
||||
return True
|
||||
Reference in New Issue
Block a user