AusweisApp
Lade ...
Suche ...
Keine Treffer
ApplicationModel.h
gehe zur Dokumentation dieser Datei
1
5#pragma once
6
7#include "Env.h"
9#include "SingletonCreator.h"
10#include "WifiInfo.h"
12
13#include <QObject>
14#include <QQmlEngine>
15#include <QSharedPointer>
16#include <QStringList>
17#include <QTimer>
18#include <QtQml/qqmlregistration.h>
19
20
21#ifdef Q_OS_IOS
22Q_FORWARD_DECLARE_OBJC_CLASS(VoiceOverObserver);
23#endif
24
25class test_UiPluginQml;
26class test_ApplicationModel;
27
28
29namespace governikus
30{
31
33 : public QObject
34 , public SingletonCreator<ApplicationModel>
35{
36 Q_OBJECT
37 Q_CLASSINFO("RegisterEnumClassesUnscoped", "false")
38 QML_ELEMENT
39 QML_SINGLETON
40
41 friend class Env;
42 friend class ::test_UiPluginQml;
43 friend class ::test_ApplicationModel;
44
45 Q_PROPERTY(QString storeUrl READ getStoreUrl NOTIFY fireStoreUrlChanged)
46 Q_PROPERTY(QUrl releaseNotesUrl READ getReleaseNotesUrl CONSTANT)
47
50
51 Q_PROPERTY(bool isSmartSupported READ isSmartSupported CONSTANT)
52
54
56
57 // QT_VERSION_CHECK(6, 8, 0) qint64 to qsizetype
60
61 Q_PROPERTY(QString feedback READ getFeedback NOTIFY fireFeedbackChanged)
62 Q_PROPERTY(int feedbackTimeout READ getFeedbackTimeout CONSTANT)
63
65
66#if !defined(Q_OS_ANDROID) && !defined(Q_OS_IOS)
67 Q_PROPERTY(QUrl customConfigPath READ getCustomConfigPath CONSTANT)
68#endif
69
70 private:
71 QSharedPointer<WorkflowContext> mContext;
72 WifiInfo mWifiInfo;
73 bool mWifiEnabled;
74 QStringList mFeedback;
75 QTimer mFeedbackTimer;
76 bool mIsAppInForeground;
77#ifdef Q_OS_IOS
78 struct Private
79 {
80 Private();
81 ~Private();
82 VoiceOverObserver* const mObserver;
83 };
84 const QScopedPointer<Private> mPrivate;
85#endif
86
88 ~ApplicationModel() override = default;
89 void onStatusChanged(const ReaderManagerPluginInfo& pInfo);
90
91 [[nodiscard]] static constexpr int getFeedbackTimeout()
92 {
93 return 7000;
94 }
95
96 private Q_SLOTS:
97 void onApplicationStateChanged(Qt::ApplicationState pState);
98 void onWifiEnabledChanged();
99
100 public Q_SLOTS:
102
103 public:
104 enum class Settings
105 {
106 WIFI,
107 NETWORK,
108 NFC,
109 APP
110 };
111 Q_ENUM(Settings)
112
113 enum class Workflow
114 {
118 SMART,
120 NONE
121 };
122 Q_ENUM(Workflow)
123
124 enum class NfcState
125 {
127 DISABLED,
128 INACTIVE,
129 READY
130 };
131 Q_ENUM(NfcState)
132
133 void resetContext(const QSharedPointer<WorkflowContext>& pContext = QSharedPointer<WorkflowContext>());
134
135 [[nodiscard]] Q_INVOKABLE int randomInt(int pLowerBound, int pUpperBound) const;
136
137 [[nodiscard]] QString getStoreUrl() const;
138 [[nodiscard]] QUrl getReleaseNotesUrl() const;
139
140 [[nodiscard]] NfcState getNfcState() const;
141 [[nodiscard]] bool isExtendedLengthApdusUnsupported() const;
142
143 [[nodiscard]] bool isSmartSupported() const;
144
145 [[nodiscard]] bool isWifiEnabled() const;
146 [[nodiscard]] Workflow getCurrentWorkflow() const;
147 [[nodiscard]] qsizetype getAvailableReader() const;
148 [[nodiscard]] qsizetype getAvailablePcscReader() const;
149
150 [[nodiscard]] QString getFeedback() const;
151
152 [[nodiscard]] bool isScreenReaderRunning() const;
153
154 [[nodiscard]] Q_INVOKABLE bool isReaderTypeAvailable(ReaderManagerPluginType pPluginType) const;
155
156 Q_INVOKABLE void enableWifi()const;
157
158 Q_INVOKABLE void setClipboardText(const QString& pText) const;
159 Q_INVOKABLE void showSettings(const Settings& pAction) const;
160 Q_INVOKABLE void showFeedback(const QString& pMessage, bool pReplaceExisting = false);
161 Q_INVOKABLE void keepScreenOn(bool pActive) const;
162
163 [[nodiscard]] Q_INVOKABLE QStringList getLicenseText() const;
164#if !defined(Q_OS_ANDROID) && !defined(Q_OS_IOS)
165 [[nodiscard]] Q_INVOKABLE QUrl getCustomConfigPath() const;
166 Q_INVOKABLE void saveEmbeddedConfig(const QUrl& pFilename) const;
167#endif
168 [[nodiscard]] Q_INVOKABLE QString stripHtmlTags(QString pString) const;
169 Q_INVOKABLE void showAppStoreRatingDialog() const;
170
171 public Q_SLOTS:
172 Q_INVOKABLE void onShowNextFeedback();
173
174 Q_SIGNALS:
176
179
182
184
186
187 void fireApplicationStateChanged(bool pIsAppInForeground);
188
190};
191
192
193} // namespace governikus
Definition ApplicationModel.h:35
bool isScreenReaderRunning
Definition ApplicationModel.h:64
Q_INVOKABLE QUrl getCustomConfigPath() const
Definition ApplicationModel.cpp:357
Q_INVOKABLE void showFeedback(const QString &pMessage, bool pReplaceExisting=false)
Definition ApplicationModel.cpp:298
QString storeUrl
Definition ApplicationModel.h:45
Q_INVOKABLE QStringList getLicenseText() const
Definition ApplicationModel.cpp:333
bool isWifiEnabled() const
Definition ApplicationModel.cpp:201
Q_INVOKABLE QString stripHtmlTags(QString pString) const
Definition ApplicationModel.cpp:414
QUrl customConfigPath
Definition ApplicationModel.h:67
Q_INVOKABLE int randomInt(int pLowerBound, int pUpperBound) const
Definition ApplicationModel.cpp:105
Q_INVOKABLE void saveEmbeddedConfig(const QUrl &pFilename) const
Definition ApplicationModel.cpp:363
Settings
Definition ApplicationModel.h:105
QString feedback
Definition ApplicationModel.h:61
NfcState getNfcState() const
Definition ApplicationModel.cpp:141
Q_INVOKABLE bool isReaderTypeAvailable(ReaderManagerPluginType pPluginType) const
Definition ApplicationModel.cpp:257
Q_INVOKABLE void enableWifi() const
Definition ApplicationModel.cpp:406
void fireApplicationStateChanged(bool pIsAppInForeground)
NfcState nfcState
Definition ApplicationModel.h:48
Q_INVOKABLE void keepScreenOn(bool pActive) const
Definition ApplicationModel.cpp:325
Workflow
Definition ApplicationModel.h:114
bool wifiEnabled
Definition ApplicationModel.h:53
void resetContext(const QSharedPointer< WorkflowContext > &pContext=QSharedPointer< WorkflowContext >())
Definition ApplicationModel.cpp:87
QUrl getReleaseNotesUrl() const
Definition ApplicationModel.cpp:133
QUrl releaseNotesUrl
Definition ApplicationModel.h:46
Workflow getCurrentWorkflow() const
Definition ApplicationModel.cpp:207
qint64 availableReader
Definition ApplicationModel.h:58
void onTranslationChanged()
Definition ApplicationModel.cpp:400
Q_INVOKABLE void showSettings(const Settings &pAction) const
Definition ApplicationModel_android.cpp:60
bool isSmartSupported
Definition ApplicationModel.h:51
int feedbackTimeout
Definition ApplicationModel.h:62
qint64 availablePcscReader
Definition ApplicationModel.h:59
NfcState
Definition ApplicationModel.h:125
Workflow currentWorkflow
Definition ApplicationModel.h:55
Q_INVOKABLE void onShowNextFeedback()
Definition ApplicationModel.cpp:279
Q_INVOKABLE void showAppStoreRatingDialog() const
Definition ApplicationModel.cpp:422
bool isExtendedLengthApdusUnsupported() const
Definition ApplicationModel.cpp:170
bool extendedLengthApdusUnsupported
Definition ApplicationModel.h:49
Q_INVOKABLE void setClipboardText(const QString &pText) const
Definition ApplicationModel.cpp:291
qsizetype getAvailablePcscReader() const
Definition ApplicationModel.cpp:246
QString getStoreUrl() const
Definition ApplicationModel.cpp:112
qsizetype getAvailableReader() const
Definition ApplicationModel.cpp:235
QString getFeedback() const
Definition ApplicationModel.cpp:273
Definition Env.h:40
Definition SingletonCreator.h:22
Definition WifiInfo.h:17
Defines the AccessRight and AccessRole enum.
Definition CommandApdu.h:17