docs(rustore-spec): убрать тумблер записи (мёртвый) + тестер станций под флаг store

This commit is contained in:
nk
2026-06-08 13:33:05 +03:00
parent 4391f3ec33
commit 56d96382fa

View File

@@ -29,10 +29,12 @@ productFlavors {
create("store") {
dimension = "distribution"
buildConfigField("boolean", "ENABLE_SELF_UPDATE", "false")
buildConfigField("boolean", "SHOW_DEV_TOOLS", "false")
}
create("sideload") {
dimension = "distribution"
buildConfigField("boolean", "ENABLE_SELF_UPDATE", "true")
buildConfigField("boolean", "SHOW_DEV_TOOLS", "true")
}
}
```
@@ -154,6 +156,25 @@ api.radiola.nexaweb.su {
- Ссылка на политику конфиденциальности.
- Заметка модератору: пояснения по exact-alarm и battery-optimization.
## G. Чистка экрана настроек (`ui/settings/SettingsScreen.kt`)
### G1. Убрать тумблер «Запись эфира» (обе сборки)
Осиротевшая настройка: флаг `RECORDING_ENABLED` сохраняется, но НИГДЕ не читается
(запись эфира работает через кнопку в плеере и вкладку «Запись» независимо).
Удалить:
- секцию «Запись эфира» в `SettingsScreen.kt` (item с `isRecordingEnabled`/`setRecordingEnabled`);
- `isRecordingEnabled`/`setRecordingEnabled` в `SettingsViewModel`;
- `isRecordingEnabled()`/`setRecordingEnabled()` в `SettingsRepository` (интерфейс) и
`SettingsRepositoryImpl` + ключ `RECORDING_ENABLED` в DataStore.
- Сама фича записи (кнопка плеера, `RecordingRepository`, вкладка) НЕ трогается.
### G2. Скрыть «Тестирование станций» в store-сборке
Диагностический dev-инструмент (прогон всех станций: OK/без метаданных/оффлайн/
ошибки + отчёт с HTTP/ICY). В store не нужен. Обернуть секцию «ТЕСТИРОВАНИЕ
СТАНЦИЙ» (и связанный диалог отчёта) в `if (BuildConfig.SHOW_DEV_TOOLS) { ... }`.
В sideload остаётся как сейчас. Код тестирования (`SettingsViewModel.startTesting`,
`StationTestStatus`) остаётся в `main`, просто не показывается в store.
## Вне области (YAGNI / не сейчас)
- AAB-сборка (подаём APK).
- proguard/minify (оставляем выключенным).
@@ -174,6 +195,8 @@ api.radiola.nexaweb.su {
4. Приложение store-сборки работает против https-API (станции, now-playing, авторизация, Shazam).
5. `https://api.radiola.nexaweb.su/privacy` открывается.
6. Секреты (keystore, пароли) не в git.
7. В store-сборке нет секции «Тестирование станций»; в sideload — есть.
8. Тумблера «Запись эфира» нет ни в одной сборке; запись эфира работает.
## Порядок реализации (для плана)
1. Инфра HTTPS: DNS A-запись → Caddy vhost → проверка TLS (api + downloads + covers).
@@ -181,6 +204,8 @@ api.radiola.nexaweb.su {
3. Gradle: flavors `store`/`sideload` + `signingConfig release` + `.gitignore`.
4. Манифест: `REQUEST_INSTALL_PACKAGES` → sideload sourceSet.
5. Код: gate `checkUpdate()` за `BuildConfig.ENABLE_SELF_UPDATE`; baseUrl/BASE_URL → https.
Чистка настроек: убрать тумблер «Запись эфира» (G1); тестер станций под
`BuildConfig.SHOW_DEV_TOOLS` (G2).
6. Keystore: пользователь генерирует, кладёт `keystore.properties`.
7. Сборка `storeRelease`, проверка критериев готовности.
8. Текст политики конфиденциальности.