Суть проблемы
Обход ограничений YouTube требует регулярной дешифровки сигнатур и n-токенов (SigCipherDecryptor, NTokenDecryptor). Сейчас при запуске сложной дешифровки система отправляет визуальные уведомления (Toasts).
- Минус для UX: Частые всплывающие уведомления во время прослушивания отвлекают пользователя.
- Минус для отладки: Полностью удалять эти уведомления нельзя, так как они служат важной частью логов и помогают понять, почему трек запускается дольше обычного.
Возможное решение (Теория и архитектура)
- Внедрение флага тишины: Добавить булево свойство
IsSilent в модель Notification и сущность базы данных NotificationEntity.
- Разделение логики вывода: Если уведомление помечено как
IsSilent:
- Оно записывается в базу данных через
NotificationRepository (для истории логов).
- Оно не передаётся в
ToastOverlayViewModel (всплывающее окно не показывается).
- Оно не инкрементирует счётчик
UnreadCount в PlayerControlService (колокольчик уведомлений не загорается красным).
- Настройка в UI:
- Добавить в
AudioSettings и AppSettings свойство SilentDecryptionNotifications (по умолчанию true).
- В
SettingsViewModel связать это свойство с чекбоксом на странице настроек звука (AudioPage.axaml).
- При сборке уведомления в дешифраторах проверять эту настройку и выставлять
IsSilent = true.
Суть проблемы
Обход ограничений YouTube требует регулярной дешифровки сигнатур и n-токенов (
SigCipherDecryptor,NTokenDecryptor). Сейчас при запуске сложной дешифровки система отправляет визуальные уведомления (Toasts).Возможное решение (Теория и архитектура)
IsSilentв модельNotificationи сущность базы данныхNotificationEntity.IsSilent:NotificationRepository(для истории логов).ToastOverlayViewModel(всплывающее окно не показывается).UnreadCountвPlayerControlService(колокольчик уведомлений не загорается красным).AudioSettingsиAppSettingsсвойствоSilentDecryptionNotifications(по умолчаниюtrue).SettingsViewModelсвязать это свойство с чекбоксом на странице настроек звука (AudioPage.axaml).IsSilent = true.