From 6159cc13cc392db5bbe689dfd6ac74dff1de2abd Mon Sep 17 00:00:00 2001 From: nk Date: Mon, 8 Jun 2026 13:38:23 +0300 Subject: [PATCH] =?UTF-8?q?docs(rustore-spec):=20=D0=B4=D0=BE=D0=B1=D0=B0?= =?UTF-8?q?=D0=B2=D0=B8=D1=82=D1=8C=20=D0=BA=D0=BD=D0=BE=D0=BF=D0=BA=D1=83?= =?UTF-8?q?=20SOVA=20(=D0=B4=D0=B8=D0=BF-=D0=BB=D0=B8=D0=BD=D0=BA,=20?= =?UTF-8?q?=D1=82=D0=BE=D0=BB=D1=8C=D0=BA=D0=BE=20sideload)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2026-06-08-rustore-release-design.md | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) 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. Текст политики конфиденциальности.