diff --git a/docs/superpowers/specs/2026-06-08-rustore-release-design.md b/docs/superpowers/specs/2026-06-08-rustore-release-design.md index 7e97dbe..a3f9225 100644 --- a/docs/superpowers/specs/2026-06-08-rustore-release-design.md +++ b/docs/superpowers/specs/2026-06-08-rustore-release-design.md @@ -175,6 +175,36 @@ api.radiola.nexaweb.su { В sideload остаётся как сейчас. Код тестирования (`SettingsViewModel.startTesting`, `StationTestStatus`) остаётся в `main`, просто не показывается в store. +## H. Кнопка дип-линк-поиска в SOVA V RE (только sideload) + +SOVA V RE — неофициальный мод клиента ВК (на базе VK 6.12), которым пользователь +пользуется лично. **В RuStore-сборку кнопку НЕ включаем** (риск отклонения за +продвижение пиратского мода) — показываем только в sideload-флейворе (тем же +flavor-механизмом, что и dev-tools/тестер: фильтруем список сервисов). + +### Архитектура (расширение дип-линков) +Сейчас `DeeplinkService` = `(serviceId, displayName, searchUrlTemplate)`, +`DeeplinkNavigator.openSearch` строит web-URL и открывает через системный chooser. +Для стороннего приложения нужно открывать **напрямую в его пакете**: +- Добавить в `DeeplinkService` опциональное поле `packageName: String? = null`. +- `DeeplinkNavigator`: если `packageName != null` и приложение установлено — + `intent.setPackage(packageName)` (открыть прямо в нём); если не установлено — + фолбэк (chooser/web ВК) или Toast «Установите SOVA». Для остальных сервисов + поведение не меняется (`packageName == null`). +- Добавить запись `SOVA("sova", "SOVA", , packageName=<пакет SOVA>)`. + +### Что уточнить на этапе реализации (нужен телефон по adb) +- **Точный пакет** SOVA (`pm list packages -3` на телефоне). Как мод VK 6.12 — + вероятно `com.vkontakte.android` или вариант. +- **Какой URL/схему** SOVA перехватывает как поиск музыки (мод VK обычно ловит + `https://vk.com/...` и `vk://`). Проверить на устройстве, что кнопка реально + открывает поиск в SOVA, а не главный экран. Шаблон поиска подобрать по факту. + +### Гейтинг по флейвору +В store-сборке `SOVA` отфильтровывается из списка сервисов (и в настройках, и в +ряду кнопок плеера). В sideload — присутствует. Механизм — `BuildConfig` флаг +флейвора (как у dev-tools). + ## Вне области (YAGNI / не сейчас) - AAB-сборка (подаём APK). - proguard/minify (оставляем выключенным). @@ -206,6 +236,8 @@ api.radiola.nexaweb.su { 5. Код: gate `checkUpdate()` за `BuildConfig.ENABLE_SELF_UPDATE`; baseUrl/BASE_URL → https. Чистка настроек: убрать тумблер «Запись эфира» (G1); тестер станций под `BuildConfig.SHOW_DEV_TOOLS` (G2). + Кнопка SOVA (H): расширить `DeeplinkService`/`DeeplinkNavigator` (packageName), + добавить SOVA, отфильтровать в store. Пакет/схему уточнить на телефоне. 6. Keystore: пользователь генерирует, кладёт `keystore.properties`. 7. Сборка `storeRelease`, проверка критериев готовности. 8. Текст политики конфиденциальности.