"""Добавляет пользовательские скорости воспроизведения видео

"custom_speed": {
  "enabled": true,
  "speeds": [9.0]
}
"""

__author__ = "wowlikon <wowlikon@gmail.com>"
__version__ = "1.0.0"
from typing import Any, Dict, List

from pydantic import Field

from utils.config import PatchTemplate
from utils.public import insert_after_id, insert_after_public
from utils.smali_parser import float_to_hex


class Patch(PatchTemplate):
    priority: int = Field(frozen=True, exclude=True, default=0)
    speeds: List[float] = Field(
        [9.0], description="Список пользовательских скоростей воспроизведения"
    )

    def apply(self, base: Dict[str, Any]) -> bool:
        assert float_to_hex(1.5) == "0x3fc00000"

        last = "speed75"
        for speed in self.speeds:
            insert_after_public(last, f"speed{int(float(speed)*10)}")
            insert_after_id(last, f"speed{int(float(speed)*10)}")
            last = f"speed{int(float(speed)*10)}"

        return False
