19 KiB
Ozon — экраны и дампы
Чек-лист экранных дампов для банка Ozon (appCode: ozon). Используется, когда
выходит новая версия приложения и нужно понять, какие экраны переснять.
Как пользоваться при выходе новой версии
- Завести папку
assets/ozon/<новая_версия>/(по образцуassets/dushanbe/<версия>/). - Пройти по чек-листу ниже и снять XML+скриншот каждого экрана на устройстве с новой
версией. Дампы кладутся под теми же именами (платёжные — в подпапку
pay/). - Сверить новый дамп с картинкой ниже.
- Если вёрстка/тексты разошлись с парсером — обновить
android/ozon/ScreenXmlParser.cpp.
Версионирование
Сейчас парсер Ozon не версионируется — опирается на текстовые маркеры
(android/ozon/ScreenXmlParser.cpp), а эталонные дампы лежат в корне assets/ozon/
(платёжные — в assets/ozon/pay/) без разбивки по версиям.
Ozon тоже будет версионироваться: конвенция папок assets/ozon/<версия>/ вводится
на будущее по образцу Dushanbe. Когда вёрстка разойдётся между версиями, по аналогии с
android/dushanbe/AppVersionTrack.h понадобится завести Ozon::AppVersionTrack и
вызывать setVersionTrack(...) в скриптах.
Картинка под каждым экраном — текущий дамп из корня. Когда появятся папки
assets/ozon/<версия>/, применяется тот же fallback по убыванию версии, что у Dushanbe.
Экраны без эталонного дампа помечены ⚠️ — их надо снять в первую очередь.
0. Общие баннеры / оверлеи
Всплывают поверх любого экрана и должны закрываться во всех задачах для прохождения флоу.
Реклама на главной — home_ad_1
Рекламный bottom-sheet (tryToFindAdBanner(), resource-id design_bottom_sheet).
Обновление Google Play — google_play
In-app update bottom-sheet (tryToFindGooglePlayBanner()).
Баннер ипотеки — banner_ipoteka
Промо-баннер на главной.
Баннер карты — card_banner
Промо-баннер «Заказать карту» на главной.
Выбор (bottom-sheet) — select_bank
Шторка выбора (tryToFindSelectBottomSheet()).
Онбординг «Обновили главную» ⚠️
resource-id onboarding_viewpager, кнопка «Пропустить» (tryToFindOnboardingBanner()).
- Эталонный дамп ещё не снят — приоритет при следующем съёме
- Текущий дамп: нет
Баннер безопасности ⚠️
«Мы заботимся о вашей безопасности» (tryToFindSecurityBanner()).
- Эталонный дамп ещё не снят — приоритет при следующем съёме
- Текущий дамп: нет
Системный диалог разрешений ⚠️
com.google.android.permissioncontroller, кнопка «ЗАПРЕТИТЬ» (tryToFindSystemPermissionDenyButton()).
- Эталонный дамп ещё не снят — приоритет при следующем съёме
- Текущий дамп: нет
1. Мастер установок (BankSetupWizard)
Цепочка: runPinCheck → runProfileCheck → runCardCheck (views/bank/BankSetupWizard.cpp).
1.1. Пин-код / вход (LoginAndCheckAccountsScript)
Главный экран — home_page
Кнопки «Перевести» + «Пополнить» (isHomeScreen()).
Главный экран (альт. вид) — home_page_2
Альтернативное состояние главной.
Ввод PIN — pin_code
Экран ввода пин-кода (tryToFindPinCode()).
Запрос биометрии — ask_biometry
Диалог предложения включить биометрию.
1.2. Профиль (GetProfileInfoScript)
Профиль / Аккаунт — profile
Заголовок «Аккаунт» + кнопка «Выйти» (isProfileScreen()), ФИО и телефон.
1.3. Карты (GetCardInfoScript)
Карта — card_screen
Основное состояние экрана карты.
Карта (развёрнута) — card_screen_open
Карта с раскрытыми деталями.
Карта (свёрнута) — card_screen_hide
Карта со скрытыми деталями.
Реквизиты счёта ⚠️
Заголовок «Реквизиты счёта» (isAccountRequisitesScreen(), parseAccountNumberFromRequisites()).
- Эталонный дамп ещё не снят — приоритет при следующем съёме
- Текущий дамп: нет
2. fetch_transactions (EventType::FetchTransactions → GetLastTransactionsScript)
2.1. Список истории
Страница платежей — payments_page
Раздел платежей/операций.
Последние транзакции — last_transactions
Список операций (isTransactionListScreen(), findTransactionButtons()).
Баннер в списке транзакций — transaction_banner
Промо-баннер внутри списка операций.
2.2. Детали транзакции
Детали транзакции — transaction_info
Дата, отправитель, телефон, сумма (parseTransactionDetail()).
Детали транзакции (СБП) — transaction_info_spb
Версия деталей для перевода через СБП.
Документ операции — transaction_document
Чек/документ по операции.
3. create_transaction (EventType::CreateTransaction)
3.1. Платёж по карте (PayByCardScript)
Перевод по номеру карты — pay/pay_by_card
Экран ввода номера карты получателя (WebView).
Ввод суммы — pay/pay_by_card_enter_sum
Поле суммы перевода по карте.
Успех — pay/pay_by_card_success
Экран успешного перевода по карте.
3.2. Платёж по телефону (PayByPhoneScript)
Перевод по номеру — pay/pay_buy_phone
Основной экран перевода по номеру телефона.
Ввод суммы — pay/pay_buy_phone_enter_sum
Поле суммы перевода по номеру.
Выбор банка — pay/pay_buy_phone_select_bank
Список банков получателя.
Выбор банка (альт. вид) — pay/pay_buy_phone_select_bank_1
Альтернативное состояние выбора банка.
Банк по умолчанию — pay/pay_buy_phone_default_bank
Экран с предустановленным банком получателя.
Проверка данных — pay/pay_buy_phone_check_data
Экран сверки данных перед отправкой.
Перевод на новый номер — pay/pay_to_new_number
Ввод нового, ранее не использованного номера.
Перевод на старый номер — pay/pay_to_old_number
Выбор ранее использованного номера.
Отправлено — pay/pay_buy_phone_sent_success
Экран успешной отправки перевода по номеру.
3.3. Подтверждение (общее для обоих)
Подтверждение платежа — pay/confirm_payment
Экран подтверждения операции.
Подтверждение — успех — pay/confirm_payment_success
Успешное подтверждение, с него снимается ID операции.
Подтверждение — ошибка — pay/confirm_payment_error
Экран ошибки подтверждения платежа.
Сводные галереи (только экраны, используемые в коде)
Эталонные дампы, на которые сейчас нет активного кода (детектор не вызывается), в эти таблицы не включены.
Задача fetch_profile — вход, профиль, карты (FetchProfile)
![]() home_page текущий (без версии) |
![]() profile текущий (без версии) |
Задача fetch_transactions (FetchTransactions)
![]() payments_page текущий (без версии) |
![]() last_transactions текущий (без версии) |
![]() transaction_info текущий (без версии) |
Задача create_transaction (CreateTransaction)
Оставшиеся экраны (баннеры/оверлеи, вне серверных задач)
![]() home_ad_1 текущий (без версии) |
![]() google_play текущий (без версии) |

































