#pragma once #include #include #include "android/xml/Node.h" #include "db/AccountInfo.h" #include "db/TransactionInfo.h" class ScreenXmlParser final : public QObject { Q_OBJECT public: explicit ScreenXmlParser(QObject *parent = nullptr); ~ScreenXmlParser() override; Node tryToFindBannerOrDialog(int width, int height); Node tryToFindSecurityBanner(); Node tryToFindSelectBottomSheet(); Node findTextNode(const QString &text); Node findTextNode(const QString &text, int x1, int y1, int x2, int y2); Node findFirstEditText(); Node findButtonNode(const QString &text, bool contains); bool isHomeScreen(); QList tryToFindPinCode(const QString &pinCode, const QString &title); QList getLast2DaysTransactions(); void parseAndSaveXml(const QString &xml); TransactionInfo parseTransactionInfoHistory(int screenWidth, int screenHeight); TransactionInfo parseTransactionInfo(int screenWidth, int screenHeight); QList parseTodayAndYesterdayReportHistory(); QList parseTodayAndYesterdayHistory(); QList > parseAccountsInfo(); void test(); private: QList m_nodes; QDomElement m_xml; QList findPinCodeNodes(const QString &pinCode); };