1
0
forked from BRT/arc
arc/docs/ozon_screens.md

19 KiB
Raw Blame History

Ozon — экраны и дампы

Чек-лист экранных дампов для банка Ozon (appCode: ozon). Используется, когда выходит новая версия приложения и нужно понять, какие экраны переснять.

Как пользоваться при выходе новой версии

  1. Завести папку assets/ozon/<новая_версия>/ (по образцу assets/dushanbe/<версия>/).
  2. Пройти по чек-листу ниже и снять XML+скриншот каждого экрана на устройстве с новой версией. Дампы кладутся под теми же именами (платёжные — в подпапку pay/).
  3. Сверить новый дамп с картинкой ниже.
  4. Если вёрстка/тексты разошлись с парсером — обновить 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).

  • Снять под новую версию
  • Текущий дамп: текущий (без версии)
  • home_ad_1

Обновление Google Play — google_play

In-app update bottom-sheet (tryToFindGooglePlayBanner()).

  • Снять под новую версию
  • Текущий дамп: текущий (без версии)
  • google_play

Баннер ипотеки — banner_ipoteka

Промо-баннер на главной.

  • Снять под новую версию
  • Текущий дамп: текущий (без версии)
  • banner_ipoteka

Баннер карты — card_banner

Промо-баннер «Заказать карту» на главной.

  • Снять под новую версию
  • Текущий дамп: текущий (без версии)
  • card_banner

Выбор (bottom-sheet) — select_bank

Шторка выбора (tryToFindSelectBottomSheet()).

  • Снять под новую версию
  • Текущий дамп: текущий (без версии)
  • select_bank

Онбординг «Обновили главную» ⚠️

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

Главный экран (альт. вид) — home_page_2

Альтернативное состояние главной.

  • Снять под новую версию
  • Текущий дамп: текущий (без версии)
  • home_page_2

Ввод PIN — pin_code

Экран ввода пин-кода (tryToFindPinCode()).

  • Снять под новую версию
  • Текущий дамп: текущий (без версии)
  • pin_code

Запрос биометрии — ask_biometry

Диалог предложения включить биометрию.

  • Снять под новую версию
  • Текущий дамп: текущий (без версии)
  • ask_biometry

1.2. Профиль (GetProfileInfoScript)

Профиль / Аккаунт — profile

Заголовок «Аккаунт» + кнопка «Выйти» (isProfileScreen()), ФИО и телефон.

  • Снять под новую версию
  • Текущий дамп: текущий (без версии)
  • profile

1.3. Карты (GetCardInfoScript)

Карта — card_screen

Основное состояние экрана карты.

  • Снять под новую версию
  • Текущий дамп: текущий (без версии)
  • card_screen

Карта (развёрнута) — card_screen_open

Карта с раскрытыми деталями.

  • Снять под новую версию
  • Текущий дамп: текущий (без версии)
  • card_screen_open

Карта (свёрнута) — card_screen_hide

Карта со скрытыми деталями.

  • Снять под новую версию
  • Текущий дамп: текущий (без версии)
  • card_screen_hide

Реквизиты счёта ⚠️

Заголовок «Реквизиты счёта» (isAccountRequisitesScreen(), parseAccountNumberFromRequisites()).

  • Эталонный дамп ещё не снят — приоритет при следующем съёме
  • Текущий дамп: нет

2. fetch_transactions (EventType::FetchTransactionsGetLastTransactionsScript)

2.1. Список истории

Страница платежей — payments_page

Раздел платежей/операций.

  • Снять под новую версию
  • Текущий дамп: текущий (без версии)
  • payments_page

Последние транзакции — last_transactions

Список операций (isTransactionListScreen(), findTransactionButtons()).

  • Снять под новую версию
  • Текущий дамп: текущий (без версии)
  • last_transactions

Баннер в списке транзакций — transaction_banner

Промо-баннер внутри списка операций.

  • Снять под новую версию
  • Текущий дамп: текущий (без версии)
  • transaction_banner

2.2. Детали транзакции

Детали транзакции — transaction_info

Дата, отправитель, телефон, сумма (parseTransactionDetail()).

  • Снять под новую версию
  • Текущий дамп: текущий (без версии)
  • transaction_info

Детали транзакции (СБП) — transaction_info_spb

Версия деталей для перевода через СБП.

  • Снять под новую версию
  • Текущий дамп: текущий (без версии)
  • transaction_info_spb

Документ операции — transaction_document

Чек/документ по операции.

  • Снять под новую версию
  • Текущий дамп: текущий (без версии)
  • transaction_document

3. create_transaction (EventType::CreateTransaction)

3.1. Платёж по карте (PayByCardScript)

Перевод по номеру карты — pay/pay_by_card

Экран ввода номера карты получателя (WebView).

  • Снять под новую версию
  • Текущий дамп: текущий (без версии)
  • pay_by_card

Ввод суммы — pay/pay_by_card_enter_sum

Поле суммы перевода по карте.

  • Снять под новую версию
  • Текущий дамп: текущий (без версии)
  • pay_by_card_enter_sum

Успех — pay/pay_by_card_success

Экран успешного перевода по карте.

  • Снять под новую версию
  • Текущий дамп: текущий (без версии)
  • pay_by_card_success

3.2. Платёж по телефону (PayByPhoneScript)

Перевод по номеру — pay/pay_buy_phone

Основной экран перевода по номеру телефона.

  • Снять под новую версию
  • Текущий дамп: текущий (без версии)
  • pay_buy_phone

Ввод суммы — pay/pay_buy_phone_enter_sum

Поле суммы перевода по номеру.

  • Снять под новую версию
  • Текущий дамп: текущий (без версии)
  • pay_buy_phone_enter_sum

Выбор банка — pay/pay_buy_phone_select_bank

Список банков получателя.

  • Снять под новую версию
  • Текущий дамп: текущий (без версии)
  • pay_buy_phone_select_bank

Выбор банка (альт. вид) — pay/pay_buy_phone_select_bank_1

Альтернативное состояние выбора банка.

  • Снять под новую версию
  • Текущий дамп: текущий (без версии)
  • pay_buy_phone_select_bank_1

Банк по умолчанию — pay/pay_buy_phone_default_bank

Экран с предустановленным банком получателя.

  • Снять под новую версию
  • Текущий дамп: текущий (без версии)
  • pay_buy_phone_default_bank

Проверка данных — pay/pay_buy_phone_check_data

Экран сверки данных перед отправкой.

  • Снять под новую версию
  • Текущий дамп: текущий (без версии)
  • pay_buy_phone_check_data

Перевод на новый номер — pay/pay_to_new_number

Ввод нового, ранее не использованного номера.

  • Снять под новую версию
  • Текущий дамп: текущий (без версии)
  • pay_to_new_number

Перевод на старый номер — pay/pay_to_old_number

Выбор ранее использованного номера.

  • Снять под новую версию
  • Текущий дамп: текущий (без версии)
  • pay_to_old_number

Отправлено — pay/pay_buy_phone_sent_success

Экран успешной отправки перевода по номеру.

  • Снять под новую версию
  • Текущий дамп: текущий (без версии)
  • pay_buy_phone_sent_success

3.3. Подтверждение (общее для обоих)

Подтверждение платежа — pay/confirm_payment

Экран подтверждения операции.

  • Снять под новую версию
  • Текущий дамп: текущий (без версии)
  • confirm_payment

Подтверждение — успех — pay/confirm_payment_success

Успешное подтверждение, с него снимается ID операции.

  • Снять под новую версию
  • Текущий дамп: текущий (без версии)
  • confirm_payment_success

Подтверждение — ошибка — pay/confirm_payment_error

Экран ошибки подтверждения платежа.

  • Снять под новую версию
  • Текущий дамп: текущий (без версии)
  • confirm_payment_error

Сводные галереи (только экраны, используемые в коде)

Эталонные дампы, на которые сейчас нет активного кода (детектор не вызывается), в эти таблицы не включены.

Задача fetch_profile — вход, профиль, карты (FetchProfile)


home_page
текущий (без версии)

profile
текущий (без версии)

Задача fetch_transactions (FetchTransactions)


payments_page
текущий (без версии)

last_transactions
текущий (без версии)

transaction_info
текущий (без версии)

Задача create_transaction (CreateTransaction)


pay_by_card
текущий (без версии)

pay_by_card_enter_sum
текущий (без версии)

pay_by_card_success
текущий (без версии)

pay_buy_phone
текущий (без версии)

pay_buy_phone_enter_sum
текущий (без версии)

pay_buy_phone_select_bank
текущий (без версии)

pay_buy_phone_default_bank
текущий (без версии)

pay_to_new_number
текущий (без версии)

pay_to_old_number
текущий (без версии)

pay_buy_phone_sent_success
текущий (без версии)

confirm_payment
текущий (без версии)

confirm_payment_success
текущий (без версии)

confirm_payment_error
текущий (без версии)

Оставшиеся экраны (баннеры/оверлеи, вне серверных задач)


home_ad_1
текущий (без версии)

google_play
текущий (без версии)