Merge commit '327f820' into develop
This commit is contained in:
+15
@@ -80,3 +80,18 @@ SHALL выполняться свайпом.
|
||||
|
||||
- **WHEN** пользователь переходит на другой элемент и возвращается к увеличенному изображению
|
||||
- **THEN** изображение показывается во вписанном виде
|
||||
|
||||
### Requirement: Индикатор загрузки оригинала
|
||||
|
||||
Пока оригинал изображения загружается после входа в зум, приложение SHALL показывать индикатор
|
||||
загрузки в правом верхнем углу области просмотра.
|
||||
|
||||
#### Scenario: Оригинал загружается
|
||||
|
||||
- **WHEN** пользователь входит в зум, и оригинал ещё загружается
|
||||
- **THEN** в правом верхнем углу показывается индикатор загрузки
|
||||
|
||||
#### Scenario: Загрузка завершена
|
||||
|
||||
- **WHEN** оригинал загружен или недоступен
|
||||
- **THEN** индикатор загрузки скрыт
|
||||
+7
-2
@@ -16,9 +16,14 @@
|
||||
- [x] 2.2 Подключить zoomable-обёртку в ветку изображения `MediaPage`; проверить тестом, что при
|
||||
переходе на другой элемент и обратно изображение показывается во вписанном виде
|
||||
|
||||
## 3. Integration verification
|
||||
## 3. Loading indicator
|
||||
|
||||
- [x] 3.1 Прогнать `./gradlew test` и `./gradlew lintDebug`; на эмуляторе вручную проверить pinch,
|
||||
- [x] 3.1 Показывать индикатор загрузки в правом верхнем углу, пока грузится оригинал при зуме;
|
||||
проверить тестом условие показа и что вписанный вид индикатор не показывает
|
||||
|
||||
## 4. Integration verification
|
||||
|
||||
- [x] 4.1 Прогнать `./gradlew test` и `./gradlew lintDebug`; на эмуляторе вручную проверить pinch,
|
||||
панорамирование, double-tap, предел 200%, а также что видео и панорама не затронуты
|
||||
|
||||
## Workflow follow-up
|
||||
@@ -109,9 +109,9 @@ SHALL подгружать следующую страницу при дости
|
||||
|
||||
### Requirement: Просмотр медиа на весь экран
|
||||
|
||||
Полноэкранный просмотр SHALL поддерживать изображение, видео с постером и управлением
|
||||
воспроизведением, а также панораму 360; навигация между элементами альбома SHALL
|
||||
выполняться свайпом.
|
||||
Полноэкранный просмотр SHALL поддерживать изображение с зумом пальцами, видео с постером
|
||||
и управлением воспроизведением, а также панораму 360; навигация между элементами альбома
|
||||
SHALL выполняться свайпом.
|
||||
|
||||
#### Scenario: Свайп между элементами
|
||||
|
||||
@@ -229,3 +229,79 @@ SHALL подгружать следующую страницу при дости
|
||||
|
||||
- **WHEN** сервер возвращает ошибку с `code` и `message`
|
||||
- **THEN** приложение показывает сообщение, при необходимости адаптированное под язык интерфейса
|
||||
|
||||
### Requirement: Зум изображения жестами
|
||||
|
||||
Полноэкранный просмотр изображения SHALL поддерживать увеличение и уменьшение щипком
|
||||
(pinch), а при увеличенном изображении — панорамирование перетаскиванием.
|
||||
|
||||
#### Scenario: Щипок увеличивает изображение
|
||||
|
||||
- **WHEN** пользователь разводит пальцы на изображении
|
||||
- **THEN** изображение увеличивается относительно вписанного вида
|
||||
|
||||
#### Scenario: Панорамирование при увеличении
|
||||
|
||||
- **WHEN** изображение увеличено, и пользователь перетаскивает его пальцем
|
||||
- **THEN** видимая область изображения смещается, а границы изображения не отрываются от краёв области просмотра
|
||||
|
||||
### Requirement: Двойной тап переключает вписанный вид и 100%
|
||||
|
||||
Двойной тап по изображению SHALL переключать вписанный вид и масштаб 100% натурального
|
||||
размера с якорем в точку нажатия.
|
||||
|
||||
#### Scenario: Вход в 100% из вписанного вида
|
||||
|
||||
- **WHEN** изображение показано вписанным, и пользователь делает двойной тап
|
||||
- **THEN** изображение показывается в масштабе 100% натурального размера с центром в точке нажатия
|
||||
|
||||
#### Scenario: Возврат во вписанный вид
|
||||
|
||||
- **WHEN** изображение увеличено, и пользователь делает двойной тап
|
||||
- **THEN** изображение возвращается во вписанный вид
|
||||
|
||||
### Requirement: Предел зума по натуральному размеру
|
||||
|
||||
Зум изображения SHALL ограничиваться снизу вписанным видом, а сверху — 200% натурального
|
||||
размера изображения; при входе в зум SHALL догружаться оригинал изображения.
|
||||
|
||||
#### Scenario: Верхний предел
|
||||
|
||||
- **WHEN** пользователь продолжает увеличивать изображение за 200% натурального размера
|
||||
- **THEN** масштаб останавливается на 200%, изображение не увеличивается дальше
|
||||
|
||||
#### Scenario: Оригинал при увеличении
|
||||
|
||||
- **WHEN** пользователь входит в зум
|
||||
- **THEN** догружается оригинал изображения и подменяет превью по факту загрузки
|
||||
|
||||
### Requirement: Навигация и сброс при зуме
|
||||
|
||||
Пока изображение увеличено, горизонтальный свайп SHALL NOT листать альбом, а жест SHALL
|
||||
отдаваться панорамированию; при переходе на другой элемент просмотра зум SHALL сбрасываться
|
||||
во вписанный вид.
|
||||
|
||||
#### Scenario: Свайп не листает увеличенное изображение
|
||||
|
||||
- **WHEN** изображение увеличено, и пользователь свайпает по нему
|
||||
- **THEN** альбом не листается, а изображение панорамируется
|
||||
|
||||
#### Scenario: Сброс при смене фото
|
||||
|
||||
- **WHEN** пользователь переходит на другой элемент и возвращается к увеличенному изображению
|
||||
- **THEN** изображение показывается во вписанном виде
|
||||
|
||||
### Requirement: Индикатор загрузки оригинала
|
||||
|
||||
Пока оригинал изображения загружается после входа в зум, приложение SHALL показывать индикатор
|
||||
загрузки в правом верхнем углу области просмотра.
|
||||
|
||||
#### Scenario: Оригинал загружается
|
||||
|
||||
- **WHEN** пользователь входит в зум, и оригинал ещё загружается
|
||||
- **THEN** в правом верхнем углу показывается индикатор загрузки
|
||||
|
||||
#### Scenario: Загрузка завершена
|
||||
|
||||
- **WHEN** оригинал загружен или недоступен
|
||||
- **THEN** индикатор загрузки скрыт
|
||||
|
||||
Reference in New Issue
Block a user