feat(mobile): offline downloads, persistent event queue and offline start (M5)
ci / contract / contract (сгенерированный код совпадает с openapi.yaml) (push) Successful in 1m7s
ci / docker / docker (образы собираются — их сервер собирает сам при обновлении) (push) Canceled after 4m15s
ci / ts / ts (packages + web) (push) Canceled after 17m42s
ci / mobile / mobile (Metro-бандл Android) (push) Canceled after 18m52s

- Downloads queue (2 parallel, Wi-Fi only by default) stores files under
  the app's document directory and track metadata in SQLite; Collection
  gets a Downloads tab, album and player screens get download buttons.
- Player plays downloaded files and local covers; My Wave falls back to
  a shuffle of downloaded tracks when the server is unreachable.
- Playback events that fail on the network are kept in SQLite and sent
  when the connection returns.
- AuthSession can open offline with the cached user and fetches an
  access token before the first request once online.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
mrleo1nidandClaude Opus 5.5 committed 2026-10-20 13:02:47 +03:00
1 parent 765345e0f4
commit be34ee5361
22 files changed
+881 -387

No files matched your search

+17 -1
View File
@@ -215,6 +215,22 @@
"update_bad_checksum": "Файл повреждён — попробуйте ещё раз",
"update_failed": "Не удалось скачать обновление",
"update_allow": "Разрешите установку из этого приложения в настройках Android",
"update_open_settings": "Открыть настройки"
"update_open_settings": "Открыть настройки",
"dl_title": "Скачанное",
"dl_download": "Скачать",
"dl_remove": "Удалить с устройства",
"dl_album": "Скачать альбом",
"dl_all_likes": "Скачать все лайки",
"dl_wifi_only": "Скачивать только по Wi-Fi",
"dl_auto_likes": "Скачивать новые лайки",
"dl_usage": "Занято {{used}} МБ · свободно в телефоне {{free}} ГБ",
"dl_pending_one": "В очереди {{count}} трек",
"dl_pending_few": "В очереди {{count}} трека",
"dl_pending_many": "В очереди {{count}} треков",
"dl_pending_other": "В очереди {{count}} трека",
"dl_waiting_wifi": "Загрузки ждут Wi-Fi ({{count}})",
"dl_waiting_network": "Загрузки ждут сеть ({{count}})",
"dl_retry": "Повторить неудачные",
"dl_empty": "Скачивайте треки, альбомы и лайки — они будут доступны без сети"
}
}