# 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** - launch_screen #### Экран ввода PIN — `pin_code` ⚠️ Цифровая клавиатура ввода пин-кода. Детектор `isPinCodeScreen()` ещё не реализован (`ScreenXmlParser.h:45` — TODO «после снятия XML дампов экранов»). - [ ] **Эталонный дамп ещё не снят — приоритет при следующем съёме** - Текущий дамп: _нет_ #### Главный экран — `home_screen` «Главная»: нижняя навигация (Переводы/Сервисы/История) + карточка баланса «TJS\n<дата>». - [ ] Снять под новую версию - Текущий дамп: **3.2.33** - home_screen ### 1.2. Профиль (`GetProfileInfoScript`) #### Боковое меню / профиль — `side_menu` Шторка профиля: ФИО, телефон, версия/сборка. Из неё парсятся данные профиля. - [ ] Снять под новую версию - Текущий дамп: **3.2.41** - side_menu ### 1.3. Карты (`GetCardInfoScript`) #### Список карт — `cards_screen` Экран «Мои карты» со списком карт (last numbers, баланс). - [ ] Снять под новую версию - Текущий дамп: **3.2.33** - cards_screen #### Детали карты — `card_detail` Заголовок «Карта»: полный номер, баланс, держатель. - [ ] Снять под новую версию - Текущий дамп: **3.2.33** - card_detail #### Детали карты (альт. вид) — `card_detail_2` Альтернативное состояние экрана детали карты. - [ ] Снять под новую версию - Текущий дамп: **корень (база)** - card_detail_2 #### Bottom-sheet «Настройки карты» ⚠️ Шторка с пунктами «Реквизиты карты» / «Заблокировать карту» и т.д. (`isCardSettingsBottomSheet()`). - [ ] **Эталонный дамп ещё не снят — приоритет при следующем съёме** - Текущий дамп: _нет_ #### Экран «Реквизиты и информация» ⚠️ Табы «Реквизиты карты» / «Реквизиты счета», номер счёта (`isCardRequisitesScreen()`). - [ ] **Эталонный дамп ещё не снят — приоритет при следующем съёме** - Текущий дамп: _нет_ --- ## 2. fetch_transactions (`EventType::FetchTransactions` → `GetLastTransactionsScript`) ### 2.1. Список истории #### История операций — `history_screen` Табы «Операции» / «Выписка», список транзакций. - [ ] Снять под новую версию - Текущий дамп: **3.2.33** - history_screen #### Выписка — `statement_screen` Экран «Выписка» (появился в 3.2.39+). - [ ] Снять под новую версию - Текущий дамп: **3.2.41** - statement_screen #### Экран переводов — `transfers_screen` Список переводов / вкладка переводов. - [ ] Снять под новую версию - Текущий дамп: **3.2.33** - transfers_screen ### 2.2. Детали транзакции #### Детали транзакции — `tx_detail` «Дата операции:», «Номер операции:», сумма, статус (`isTransactionDetailScreen()`). - [ ] Снять под новую версию - Текущий дамп: **3.2.33** - tx_detail #### Детали транзакции перевода — `card_transfer_tx_detail` Детали операции, открытые из истории переводов по карте. - [ ] Снять под новую версию - Текущий дамп: **3.2.33** - card_transfer_tx_detail --- ## 3. create_transaction (`EventType::CreateTransaction`) ### 3.1. Перевод по карте (`PayByCardScript`) #### Ввод суммы — `card_transfer_input` Поле суммы + якорь «Мин. сумма: …» под полем. - [ ] Снять под новую версию - Текущий дамп: **3.2.33** - card_transfer_input #### Подтверждение — `card_transfer_confirm` Bottom-sheet подтверждения, оранжевая кнопка «Подтверждаю» (RGB 255,117,40). - [ ] Снять под новую версию - Текущий дамп: **3.2.33** - card_transfer_confirm #### Подтверждение (детали) — `card_transfer_confirm_detail` Развёрнутые детали в шторке подтверждения. - [ ] Снять под новую версию - Текущий дамп: **корень (база)** - card_transfer_confirm_detail #### Успех — `card_transfer_success` Экран «Платёж выполнен», с него снимается ID операции (OCR). - [ ] Снять под новую версию - Текущий дамп: **3.2.33** - card_transfer_success ### 3.2. Перевод по телефону (`PayByPhoneScript`) #### Ввод номера/суммы — `phone_transfer_input` Поле номера телефона получателя + сумма. - [ ] Снять под новую версию - Текущий дамп: **3.2.41** - phone_transfer_input #### Подтверждение — `phone_transfer_confirm` Шторка подтверждения перевода по номеру. - [ ] Снять под новую версию - Текущий дамп: **3.2.41** - phone_transfer_confirm #### Успех — `phone_transfer_success` Экран успешного перевода по номеру. - [ ] Снять под новую версию - Текущий дамп: **3.2.41** - phone_transfer_success --- ## Сводные галереи (только экраны, используемые в коде) _Эталонные дампы, на которые сейчас нет активного кода (детектор не вызывается), в эти таблицы не включены._ ### Задача `fetch_profile` — вход, профиль, карты (`FetchProfile`) | | | | | | | | | |---|---|---|---|---|---|---|---| |
home_screen
3.2.33 |
side_menu
3.2.41 |
cards_screen
3.2.33 |
card_detail
3.2.33 | | | | | ### Задача `fetch_transactions` (`FetchTransactions`) | | | | | | | | | |---|---|---|---|---|---|---|---| |
history_screen
3.2.33 |
statement_screen
3.2.41 |
transfers_screen
3.2.33 |
tx_detail
3.2.33 |
card_transfer_tx_detail
3.2.33 | | | | ### Задача `create_transaction` (`CreateTransaction`) | | | | | | | | | |---|---|---|---|---|---|---|---| |
card_transfer_input
3.2.33 |
card_transfer_confirm
3.2.33 |
card_transfer_success
3.2.33 |
phone_transfer_input
3.2.41 |
phone_transfer_confirm
3.2.41 |
phone_transfer_success
3.2.41 | | |