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