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

207 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Dushanbe — экраны и дампы
Чек-лист экранных дампов для банка **Dushanbe City Bank** (`appCode: dushanbe` /
`dushanbe_city_bank`). Используется, когда выходит новая версия приложения и нужно
понять, **какие экраны переснять**.
## Как пользоваться при выходе новой версии
1. Завести папку `assets/dushanbe/<новая_версия>/` (например `assets/dushanbe/3.2.42/`).
2. Пройти по чек-листу ниже и снять XML+скриншот каждого экрана на устройстве с новой
версией. Дампы кладутся в новую папку под теми же именами.
3. Сверить новый дамп с картинкой ниже (на ней — **самый свежий из имеющихся** дампов).
4. Если вёрстка/тексты разошлись с парсером — обновить `android/dushanbe/ScreenXmlParser.cpp`
и при необходимости завести новый трек в `android/dushanbe/AppVersionTrack.h`.
## Версионирование
Парсер Dushanbe версионируется: `android/dushanbe/AppVersionTrack.h`, треки
**Legacy** (< 3.2.33) / **V3_2_33** (3.2.33 .. < 3.2.38) / **V3_2_38** (>= 3.2.38, по
умолчанию). Скрипты выставляют трек один раз: `setVersionTrack(trackForVersion(app.appVersion))`.
Новый трек добавляется **только** если вёрстка реально разошлась с V3_2_38 — иначе хватает
свежих эталонных дампов в `assets/dushanbe/<версия>/`.
**Картинка под каждым экраном — самый свежий доступный дамп** (приоритет
`3.2.41``3.2.39``3.2.33` → корень `assets/dushanbe/`). Подпись «Текущий дамп»
показывает, из какой версии реально взята картинка. Если эталонного дампа ещё нет —
экран помечен ⚠️ и его надо снять в первую очередь.
---
## 1. Мастер установок (`BankSetupWizard`)
Цепочка: `runPinCheck → runProfileCheck → runCardCheck` (`views/bank/BankSetupWizard.cpp`).
### 1.1. Пин-код / вход (`LoginAndCheckAccountsScript`)
#### Экран запуска — `launch_screen`
Сплэш/загрузка приложения сразу после старта.
- [ ] Снять под новую версию
- Текущий дамп: **3.2.33**
- <img src="../assets/dushanbe/3.2.33/launch_screen.jpg" width="250" alt="launch_screen">
#### Экран ввода PIN — `pin_code` ⚠️
Цифровая клавиатура ввода пин-кода. Детектор `isPinCodeScreen()` ещё не реализован
(`ScreenXmlParser.h:45` — TODO «после снятия XML дампов экранов»).
- [ ] **Эталонный дамп ещё не снят — приоритет при следующем съёме**
- Текущий дамп: ет_
#### Главный экран — `home_screen`
«Главная»: нижняя навигация (Переводы/Сервисы/История) + карточка баланса «TJS\n<дата>».
- [ ] Снять под новую версию
- Текущий дамп: **3.2.33**
- <img src="../assets/dushanbe/3.2.33/home_screen.jpg" width="250" alt="home_screen">
### 1.2. Профиль (`GetProfileInfoScript`)
#### Боковое меню / профиль — `side_menu`
Шторка профиля: ФИО, телефон, версия/сборка. Из неё парсятся данные профиля.
- [ ] Снять под новую версию
- Текущий дамп: **3.2.41**
- <img src="../assets/dushanbe/3.2.41/side_menu.jpg" width="250" alt="side_menu">
### 1.3. Карты (`GetCardInfoScript`)
#### Список карт — `cards_screen`
Экран «Мои карты» со списком карт (last numbers, баланс).
- [ ] Снять под новую версию
- Текущий дамп: **3.2.33**
- <img src="../assets/dushanbe/3.2.33/cards_screen.jpg" width="250" alt="cards_screen">
#### Детали карты — `card_detail`
Заголовок «Карта»: полный номер, баланс, держатель.
- [ ] Снять под новую версию
- Текущий дамп: **3.2.33**
- <img src="../assets/dushanbe/3.2.33/card_detail.jpg" width="250" alt="card_detail">
#### Детали карты (альт. вид) — `card_detail_2`
Альтернативное состояние экрана детали карты.
- [ ] Снять под новую версию
- Текущий дамп: **корень (база)**
- <img src="../assets/dushanbe/card_detail_2.png" width="250" alt="card_detail_2">
#### Bottom-sheet «Настройки карты» ⚠️
Шторка с пунктами «Реквизиты карты» / «Заблокировать карту» и т.д. (`isCardSettingsBottomSheet()`).
- [ ] **Эталонный дамп ещё не снят — приоритет при следующем съёме**
- Текущий дамп: ет_
#### Экран «Реквизиты и информация» ⚠️
Табы «Реквизиты карты» / «Реквизиты счета», номер счёта (`isCardRequisitesScreen()`).
- [ ] **Эталонный дамп ещё не снят — приоритет при следующем съёме**
- Текущий дамп: ет_
---
## 2. fetch_transactions (`EventType::FetchTransactions` → `GetLastTransactionsScript`)
### 2.1. Список истории
#### История операций — `history_screen`
Табы «Операции» / «Выписка», список транзакций.
- [ ] Снять под новую версию
- Текущий дамп: **3.2.33**
- <img src="../assets/dushanbe/3.2.33/history_screen.jpg" width="250" alt="history_screen">
#### Выписка — `statement_screen`
Экран «Выписка» (появился в 3.2.39+).
- [ ] Снять под новую версию
- Текущий дамп: **3.2.41**
- <img src="../assets/dushanbe/3.2.41/statement_screen.jpg" width="250" alt="statement_screen">
#### Экран переводов — `transfers_screen`
Список переводов / вкладка переводов.
- [ ] Снять под новую версию
- Текущий дамп: **3.2.33**
- <img src="../assets/dushanbe/3.2.33/transfers_screen.jpg" width="250" alt="transfers_screen">
### 2.2. Детали транзакции
#### Детали транзакции — `tx_detail`
«Дата операции:», «Номер операции:», сумма, статус (`isTransactionDetailScreen()`).
- [ ] Снять под новую версию
- Текущий дамп: **3.2.33**
- <img src="../assets/dushanbe/3.2.33/tx_detail.jpg" width="250" alt="tx_detail">
#### Детали транзакции перевода — `card_transfer_tx_detail`
Детали операции, открытые из истории переводов по карте.
- [ ] Снять под новую версию
- Текущий дамп: **3.2.33**
- <img src="../assets/dushanbe/3.2.33/card_transfer_tx_detail.jpg" width="250" alt="card_transfer_tx_detail">
---
## 3. create_transaction (`EventType::CreateTransaction`)
### 3.1. Перевод по карте (`PayByCardScript`)
#### Ввод суммы — `card_transfer_input`
Поле суммы + якорь «Мин. сумма: …» под полем.
- [ ] Снять под новую версию
- Текущий дамп: **3.2.33**
- <img src="../assets/dushanbe/3.2.33/card_transfer_input.jpg" width="250" alt="card_transfer_input">
#### Подтверждение — `card_transfer_confirm`
Bottom-sheet подтверждения, оранжевая кнопка «Подтверждаю» (RGB 255,117,40).
- [ ] Снять под новую версию
- Текущий дамп: **3.2.33**
- <img src="../assets/dushanbe/3.2.33/card_transfer_confirm.jpg" width="250" alt="card_transfer_confirm">
#### Подтверждение (детали) — `card_transfer_confirm_detail`
Развёрнутые детали в шторке подтверждения.
- [ ] Снять под новую версию
- Текущий дамп: **корень (база)**
- <img src="../assets/dushanbe/card_transfer_confirm_detail.png" width="250" alt="card_transfer_confirm_detail">
#### Успех — `card_transfer_success`
Экран «Платёж выполнен», с него снимается ID операции (OCR).
- [ ] Снять под новую версию
- Текущий дамп: **3.2.33**
- <img src="../assets/dushanbe/3.2.33/card_transfer_success.jpg" width="250" alt="card_transfer_success">
### 3.2. Перевод по телефону (`PayByPhoneScript`)
#### Ввод номера/суммы — `phone_transfer_input`
Поле номера телефона получателя + сумма.
- [ ] Снять под новую версию
- Текущий дамп: **3.2.41**
- <img src="../assets/dushanbe/3.2.41/phone_transfer_input.jpg" width="250" alt="phone_transfer_input">
#### Подтверждение — `phone_transfer_confirm`
Шторка подтверждения перевода по номеру.
- [ ] Снять под новую версию
- Текущий дамп: **3.2.41**
- <img src="../assets/dushanbe/3.2.41/phone_transfer_confirm.jpg" width="250" alt="phone_transfer_confirm">
#### Успех — `phone_transfer_success`
Экран успешного перевода по номеру.
- [ ] Снять под новую версию
- Текущий дамп: **3.2.41**
- <img src="../assets/dushanbe/3.2.41/phone_transfer_success.jpg" width="250" alt="phone_transfer_success">
---
## Сводные галереи (только экраны, используемые в коде)
_Эталонные дампы, на которые сейчас нет активного кода (детектор не вызывается), в эти таблицы не включены._
### Задача `fetch_profile` — вход, профиль, карты (`FetchProfile`)
| | | | | | | | |
|---|---|---|---|---|---|---|---|
| <img src="../assets/dushanbe/3.2.33/home_screen.jpg" width="100"><br><sub>home_screen</sub><br><sub>3.2.33</sub> | <img src="../assets/dushanbe/3.2.41/side_menu.jpg" width="100"><br><sub>side_menu</sub><br><sub>3.2.41</sub> | <img src="../assets/dushanbe/3.2.33/cards_screen.jpg" width="100"><br><sub>cards_screen</sub><br><sub>3.2.33</sub> | <img src="../assets/dushanbe/3.2.33/card_detail.jpg" width="100"><br><sub>card_detail</sub><br><sub>3.2.33</sub> | | | | |
### Задача `fetch_transactions` (`FetchTransactions`)
| | | | | | | | |
|---|---|---|---|---|---|---|---|
| <img src="../assets/dushanbe/3.2.33/history_screen.jpg" width="100"><br><sub>history_screen</sub><br><sub>3.2.33</sub> | <img src="../assets/dushanbe/3.2.41/statement_screen.jpg" width="100"><br><sub>statement_screen</sub><br><sub>3.2.41</sub> | <img src="../assets/dushanbe/3.2.33/transfers_screen.jpg" width="100"><br><sub>transfers_screen</sub><br><sub>3.2.33</sub> | <img src="../assets/dushanbe/3.2.33/tx_detail.jpg" width="100"><br><sub>tx_detail</sub><br><sub>3.2.33</sub> | <img src="../assets/dushanbe/3.2.33/card_transfer_tx_detail.jpg" width="100"><br><sub>card_transfer_tx_detail</sub><br><sub>3.2.33</sub> | | | |
### Задача `create_transaction` (`CreateTransaction`)
| | | | | | | | |
|---|---|---|---|---|---|---|---|
| <img src="../assets/dushanbe/3.2.33/card_transfer_input.jpg" width="100"><br><sub>card_transfer_input</sub><br><sub>3.2.33</sub> | <img src="../assets/dushanbe/3.2.33/card_transfer_confirm.jpg" width="100"><br><sub>card_transfer_confirm</sub><br><sub>3.2.33</sub> | <img src="../assets/dushanbe/3.2.33/card_transfer_success.jpg" width="100"><br><sub>card_transfer_success</sub><br><sub>3.2.33</sub> | <img src="../assets/dushanbe/3.2.41/phone_transfer_input.jpg" width="100"><br><sub>phone_transfer_input</sub><br><sub>3.2.41</sub> | <img src="../assets/dushanbe/3.2.41/phone_transfer_confirm.jpg" width="100"><br><sub>phone_transfer_confirm</sub><br><sub>3.2.41</sub> | <img src="../assets/dushanbe/3.2.41/phone_transfer_success.jpg" width="100"><br><sub>phone_transfer_success</sub><br><sub>3.2.41</sub> | | |