From 4c1ff0af0f26561aa9376b92d8bb2274f478b35c Mon Sep 17 00:00:00 2001 From: slava Date: Thu, 9 Apr 2026 22:21:05 +0700 Subject: [PATCH] Refine card number parsing logic in `GetCardInfoScript` and improve node filtering in `ScreenXmlParser`. --- android/dushanbe/GetCardInfoScript.cpp | 7 ++++--- android/dushanbe/ScreenXmlParser.cpp | 2 ++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/android/dushanbe/GetCardInfoScript.cpp b/android/dushanbe/GetCardInfoScript.cpp index da79df8..d3fc57c 100644 --- a/android/dushanbe/GetCardInfoScript.cpp +++ b/android/dushanbe/GetCardInfoScript.cpp @@ -140,9 +140,10 @@ void GetCardInfoScript::doStart() { QString fullNumber = xmlScreenParser.parseFullCardNumber(); const double cardBalance = xmlScreenParser.parseCardDetailBalance(); const QString holder = xmlScreenParser.parseCardDetailHolder(); - const QString lastNumbers = cards[i].lastNumbers.isEmpty() - ? (fullNumber.length() >= 4 ? fullNumber.right(4).remove(' ') : "") - : cards[i].lastNumbers; + const QString fullNumberClean = QString(fullNumber).remove(' '); + const QString lastNumbers = (fullNumberClean.length() >= 4) + ? fullNumberClean.right(4) + : (cards[i].lastNumbers.isEmpty() ? QString() : cards[i].lastNumbers); qDebug() << "[Dushanbe::GetCardInfo] Card" << i << ":" << fullNumber << "balance:" << cardBalance << "holder:" << holder; diff --git a/android/dushanbe/ScreenXmlParser.cpp b/android/dushanbe/ScreenXmlParser.cpp index ea060d3..bd4f2c4 100644 --- a/android/dushanbe/ScreenXmlParser.cpp +++ b/android/dushanbe/ScreenXmlParser.cpp @@ -252,7 +252,9 @@ QList ScreenXmlParser::parseCards() { for (const Node &node : m_nodes) { if (node.className != "android.widget.ImageView") continue; + if (!node.clickable) continue; if (!node.contentDesc.contains("****")) continue; + if (node.contentDesc.contains(QString::fromUtf8("Кредитная карта"))) continue; QStringList lines; for (const QString &line : node.contentDesc.split('\n')) {