"""
        Изменяет имя пакета в apk, удаляет вход по google и vk

"package_name": {
  "enabled": true,
  "new_package_name": "com.wowlikon.anixart"
}
"""

priority = -1

# imports
import os
from lxml import etree


# Patch
def rename_dir(src, dst):
    os.makedirs(os.path.dirname(dst), exist_ok=True)
    os.rename(src, dst)


def apply(config: dict) -> bool:
    for root, dirs, files in os.walk("./decompiled"):
        for filename in files:
            file_path = os.path.join(root, filename)

            if os.path.isfile(file_path):
                try:
                    with open(file_path, "r", encoding="utf-8") as file:
                        file_contents = file.read()

                    new_contents = file_contents.replace(
                        "com.swiftsoft.anixartd", config["new_package_name"]
                    )
                    new_contents = new_contents.replace(
                        "com/swiftsoft/anixartd",
                        config["new_package_name"].replace(".", "/"),
                    )
                    with open(file_path, "w", encoding="utf-8") as file:
                        file.write(new_contents)
                except:
                    pass

    if os.path.exists("./decompiled/smali/com/swiftsoft/anixartd"):
        rename_dir(
            "./decompiled/smali/com/swiftsoft/anixartd",
            os.path.join(
                "./decompiled", "smali", config["new_package_name"].replace(".", "/")
            ),
        )
    if os.path.exists("./decompiled/smali_classes2/com/swiftsoft/anixartd"):
        rename_dir(
            "./decompiled/smali_classes2/com/swiftsoft/anixartd",
            os.path.join(
                "./decompiled",
                "smali_classes2",
                config["new_package_name"].replace(".", "/"),
            ),
        )
    if os.path.exists("./decompiled/smali_classes4/com/swiftsoft"):
        rename_dir(
            "./decompiled/smali_classes4/com/swiftsoft",
            os.path.join(
                "./decompiled",
                "smali_classes4",
                "/".join(config["new_package_name"].split(".")[:-1]),
            ),
        )

    # rename_dir(
    #    "./decompiled/smali_classes3/com/swiftsoft/anixartd",
    #    os.path.join(
    #        "./decompiled",
    #        "smali_classes3",
    #        config["new_package_name"].replace(".", "/"),
    #    ),
    # )

    for root, dirs, files in os.walk("./decompiled/smali_classes4/"):
        for filename in files:
            file_path = os.path.join(root, filename)

            if os.path.isfile(file_path):
                try:
                    with open(file_path, "r", encoding="utf-8") as file:
                        file_contents = file.read()

                    new_contents = file_contents.replace(
                        "com/swiftsoft",
                        "/".join(config["new_package_name"].split(".")[:-1]),
                    )
                    with open(file_path, "w", encoding="utf-8") as file:
                        file.write(new_contents)
                except:
                    pass

    file_path = "./decompiled/res/layout/fragment_sign_in.xml"
    parser = etree.XMLParser(remove_blank_text=True)
    tree = etree.parse(file_path, parser)
    root = tree.getroot()

    last_linear = root.xpath("//LinearLayout/LinearLayout[4]")[0]
    last_linear.set(f"{{{config['xml_ns']['android']}}}visibility", "gone")

    tree.write(file_path, pretty_print=True, xml_declaration=True, encoding="utf-8")

    return True


# smali_classes2/com/wowlikon/anixart/utils/DeviceInfoUtil.smali: const-string v3, "\u0411\u0430\u0433-\u0440\u0435\u043f\u043e\u0440\u0442 9.0 BETA 5 (25062213)"
