docs(rustore-spec): добавить кнопку SOVA (дип-линк, только sideload)
This commit is contained in:
@@ -175,6 +175,36 @@ api.radiola.nexaweb.su {
|
|||||||
В sideload остаётся как сейчас. Код тестирования (`SettingsViewModel.startTesting`,
|
В sideload остаётся как сейчас. Код тестирования (`SettingsViewModel.startTesting`,
|
||||||
`StationTestStatus`) остаётся в `main`, просто не показывается в store.
|
`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", <url>, 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 / не сейчас)
|
## Вне области (YAGNI / не сейчас)
|
||||||
- AAB-сборка (подаём APK).
|
- AAB-сборка (подаём APK).
|
||||||
- proguard/minify (оставляем выключенным).
|
- proguard/minify (оставляем выключенным).
|
||||||
@@ -206,6 +236,8 @@ api.radiola.nexaweb.su {
|
|||||||
5. Код: gate `checkUpdate()` за `BuildConfig.ENABLE_SELF_UPDATE`; baseUrl/BASE_URL → https.
|
5. Код: gate `checkUpdate()` за `BuildConfig.ENABLE_SELF_UPDATE`; baseUrl/BASE_URL → https.
|
||||||
Чистка настроек: убрать тумблер «Запись эфира» (G1); тестер станций под
|
Чистка настроек: убрать тумблер «Запись эфира» (G1); тестер станций под
|
||||||
`BuildConfig.SHOW_DEV_TOOLS` (G2).
|
`BuildConfig.SHOW_DEV_TOOLS` (G2).
|
||||||
|
Кнопка SOVA (H): расширить `DeeplinkService`/`DeeplinkNavigator` (packageName),
|
||||||
|
добавить SOVA, отфильтровать в store. Пакет/схему уточнить на телефоне.
|
||||||
6. Keystore: пользователь генерирует, кладёт `keystore.properties`.
|
6. Keystore: пользователь генерирует, кладёт `keystore.properties`.
|
||||||
7. Сборка `storeRelease`, проверка критериев готовности.
|
7. Сборка `storeRelease`, проверка критериев готовности.
|
||||||
8. Текст политики конфиденциальности.
|
8. Текст политики конфиденциальности.
|
||||||
|
|||||||
Reference in New Issue
Block a user