Дельта android-live-albums: android-client (+3 требования: живое обновление списка, догон при переподключении, потеря доступа) и realtime (порядок списка теперь правило отображения клиента). Дельта fix-album-cover-readiness: realtime (+1 требование: album.updated при готовности вариантов фото-обложки).
4.2 KiB
4.2 KiB
Spec Delta
ADDED Requirements
Requirement: Живое обновление списка альбомов
Пока пользователь авторизован, приложение SHALL поддерживать персональный поток и применять события жизненного цикла альбома к локальному кэшу: создавать или заменять альбом по полученному объекту и удалять его по идентификатору, не выполняя дополнительный запрос списка.
Scenario: Альбом создан или изменён в другом месте
- WHEN в персональный поток приходит событие создания или изменения доступного альбома
- THEN альбом появляется в списке или заменяется без запроса списка
Scenario: Неизвестное событие
- WHEN в персональный поток приходит событие, не относящееся к жизненному циклу альбома
- THEN приложение не меняет локальный список
Scenario: Навигация между экранами
- WHEN пользователь переходит с главного экрана на другой экран приложения
- THEN подписка на персональный поток не пересоздаётся
Scenario: Выход из аккаунта
- WHEN пользователь выходит из аккаунта
- THEN подписка на персональный поток закрывается
Requirement: Догон списка при переподключении персонального потока
После восстановления персонального потока приложение SHALL приводить локальный список альбомов в соответствие с серверным снимком, чтобы отразить изменения, пропущенные за время разрыва соединения.
Scenario: Переподключение
- WHEN персональный поток восстановился после разрыва
- THEN приложение перезапрашивает список альбомов, удаляя из кэша альбомы, которых на сервере больше нет
Requirement: Потеря доступа к альбому
Приложение SHALL переставать отображать альбом, удалённый владельцем или ставший недоступным после исключения участника: альбом SHALL исчезать из локального кэша и списка, а экран открытого альбома SHALL возвращаться к списку.
Scenario: Альбом удалён во время просмотра
- WHEN владелец удаляет альбом, пока участник просматривает экран этого альбома
- THEN экран перестаёт показывать альбом и возвращается к списку
Scenario: Участник исключён
- WHEN участника исключают из альбома
- THEN альбом исчезает из его списка, а открытый экран возвращается к списку
Scenario: Экран альбома не открыт
- WHEN альбом удалён, а его экран не открыт
- THEN карточка альбома исчезает из списка
Scenario: Отсутствие альбома в кэше без сети
- WHEN приложение открывает экран альбома, которого нет в кэше, и сеть недоступна
- THEN экран не считается потерявшим доступ и не закрывается сам