"""Удаляет баннеры рекламы

"disable_ad": {
  "enabled": true
}
"""

__author__ = "Kentai Radiquum <radiquum@gmail.com>"
__version__ = "1.0.0"
import textwrap
from typing import Any, Dict

from pydantic import Field

from utils.config import PatchTemplate
from utils.smali_parser import (find_smali_method_end, find_smali_method_start,
                                get_smali_lines, replace_smali_method_body)


class Patch(PatchTemplate):
    priority: int = Field(frozen=True, exclude=True, default=0)

    def apply(self, base: Dict[str, Any]) -> bool:
        path = "./decompiled/smali_classes3/com/swiftsoft/anixartd/Prefs.smali"
        replacement = [
            f"\t{line}\n"
            for line in textwrap.dedent(
                """\
            .locals 0
            const/4 p0, 0x1
            return p0
        """
            ).splitlines()
        ]

        lines = get_smali_lines(path)
        for index, line in enumerate(lines):
            if line.find("IS_SPONSOR") >= 0:
                method_start = find_smali_method_start(lines, index)
                method_end = find_smali_method_end(lines, index)
                new_content = replace_smali_method_body(
                    lines, method_start, method_end, replacement
                )

                with open(path, "w", encoding="utf-8") as file:
                    file.writelines(new_content)
        return True
