From 373d1032128724ea2475710e856c99db216b20e5 Mon Sep 17 00:00:00 2001 From: slava Date: Thu, 14 May 2026 20:48:10 +0700 Subject: [PATCH] =?UTF-8?q?Avoid=20referral=20badge=20overlap=20when=20tap?= =?UTF-8?q?ping=20"=D0=9F=D0=B5=D1=80=D0=B5=D0=B2=D0=B5=D1=81=D1=82=D0=B8"?= =?UTF-8?q?=20in=20`PayByPhoneScript`=20by=20adjusting=20tap=20position=20?= =?UTF-8?q?to=20the=20left=20quarter=20of=20the=20button.=20Add=20explanat?= =?UTF-8?q?ory=20debug=20logs.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- android/ozon/PayByPhoneScript.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/android/ozon/PayByPhoneScript.cpp b/android/ozon/PayByPhoneScript.cpp index 400f3cd..a8e739f 100644 --- a/android/ozon/PayByPhoneScript.cpp +++ b/android/ozon/PayByPhoneScript.cpp @@ -162,7 +162,11 @@ void PayByPhoneScript::makePayment( } return true; }; - // 1. Нажимаем "Перевести" на домашнем экране + // 1. Нажимаем "Перевести" на домашнем экране. + // Внимание: поверх правой части кнопки сидит referral-бейдж "badge icon за друга" + // (bounds типа [550,90][602,140]), который перекрывает центр кнопки. Тап в центр + // открывает промо "До 3 000 за рекомендацию". Тапаем в левую четверть, чтобы + // гарантированно попасть мимо бейджа. Node transferBtn = xmlScreenParser.findButtonNode("Перевести", false); if (transferBtn.isEmpty()) { m_error = "Кнопка 'Перевести' не найдена на домашнем экране"; @@ -170,8 +174,10 @@ void PayByPhoneScript::makePayment( return; } - qDebug() << "[PayByPhone] Tapping 'Перевести'..."; - AdbUtils::makeTap(deviceId, transferBtn.x(), transferBtn.y()); + const int transferTapX = transferBtn.x1() + transferBtn.width() / 4; + qDebug() << "[PayByPhone] Tapping 'Перевести' at" << transferTapX << "," << transferBtn.y() + << "(avoiding 'за друга' badge on right)"; + AdbUtils::makeTap(deviceId, transferTapX, transferBtn.y()); QThread::msleep(2000); // 2. Ждём экран "Платежи и переводы" с полем "Телефон получателя"