Добавить обучение и полный экран результата

This commit is contained in:
2026-08-18 16:21:25 +03:00
parent 44067abde3
commit 00323d7916
9 changed files with 604 additions and 14 deletions
+57
View File
@@ -0,0 +1,57 @@
# Stage 3 onboarding and result QA
Дата: 18 августа 2026 года. Базовая сборка: `0.5.0-stage3-controls-debug`
(`minSdk=23`). Этот документ описывает независимый slice обучения и результата;
версия финального Stage 3 APK будет назначена после интеграции всех веток.
## Реализовано
- при первом входе в уровень показывается компактная карточка из трёх подсказок:
движение, одновременные движение и прыжок двумя пальцами, использование тел;
- карточка не останавливает физику и не отключает экранное управление;
- доступны `Skip`, пошаговый `Next` и финальный `Done`;
- закрытие сохраняется в отдельном versioned storage
`project_sacrifice_onboarding_v1` и не изменяет progress/control settings;
- результат разделяет показатели текущего прохождения и сохранённые лучшие время
и число добровольцев;
- результат показывает оба target и выбирает понятную следующую цель: улучшить
число добровольцев, время, перейти на следующий уровень либо улучшить personal best;
- `Level select`, `Replay` и `Next level` используют общий navigation contract и
не очищают прогресс или настройки управления.
## TDD evidence
- `OnboardingFlowTest`: RED — `cannot find symbol: class OnboardingFlow`; GREEN — 2/2;
- `CompletionResultTest`: RED — `cannot find symbol: class CompletionResult`; GREEN — 2/2;
- `OnboardingStoreTest`: RED — `cannot find symbol: class OnboardingStore`; после
реализации AndroidTest compile GREEN;
- `OnboardingAndResultFlowTest`: RED — отсутствовали публичные GameView contracts
обучения/result navigation; после интеграции AndroidTest compile GREEN.
## Выполненные проверки
```text
./gradlew testDebugUnitTest lintDebug assembleDebug compileDebugAndroidTestJavaWithJavac
BUILD SUCCESSFUL
```
- JVM: 24/24, failures=0, errors=0;
- `lintDebug`: GREEN;
- `assembleDebug`: GREEN;
- все Android instrumentation sources: compile GREEN;
- `git diff --check`: GREEN.
По ограничению stream-задачи emulator/connected tests в этой ветке не запускались.
После интеграции необходимо выполнить `OnboardingStoreTest` и
`OnboardingAndResultFlowTest` на Android 16 вместе с полным Stage 2 regression gate.
## Приёмка на устройстве после интеграции
1. Очистить данные приложения, открыть уровень 1 и убедиться, что карточка не
мешает одновременно удерживать направление и нажимать Jump.
2. Проверить отдельно `Skip` и полный путь `Next` → `Next` → `Done`, затем cold
launch: обучение не должно появиться повторно.
3. Завершить уровень хуже сохранённого результата: `This run` не должен подменять
`Saved best`.
4. По очереди проверить `Level select`, `Replay`, `Next level`; завершённость
уровня, unlocked level и control preset должны сохраниться.