AusweisApp
Lade ...
Suche ...
Keine Treffer
ApplicationModel.h
gehe zur Dokumentation dieser Datei
1
9#pragma once
10
11#include "Env.h"
13#include "SingletonCreator.h"
14#include "WifiInfo.h"
16
17#include <QObject>
18#include <QQmlEngine>
19#include <QSharedPointer>
20#include <QStringList>
21#include <QTimer>
22#include <QtQml/qqmlregistration.h>
23
24#ifdef Q_OS_IOS
25Q_FORWARD_DECLARE_OBJC_CLASS(VoiceOverObserver);
26#endif
27
28class test_UiPluginQml;
29
30
31namespace governikus
32{
33
35 : public QObject
36 , public SingletonCreator<ApplicationModel>
37{
38 Q_OBJECT
39 Q_CLASSINFO("RegisterEnumClassesUnscoped", "false")
40 QML_ELEMENT
41 QML_SINGLETON
42
43 friend class Env;
44 friend class ::test_UiPluginQml;
45
46 Q_PROPERTY(QString storeUrl READ getStoreUrl NOTIFY fireStoreUrlChanged)
47 Q_PROPERTY(QUrl releaseNotesUrl READ getReleaseNotesUrl CONSTANT)
48
51
52 Q_PROPERTY(bool isSmartSupported READ isSmartSupported CONSTANT)
53
55
57
58 // QT_VERSION_CHECK(6, 8, 0) qint64 to qsizetype
61
62 Q_PROPERTY(QString feedback READ getFeedback NOTIFY fireFeedbackChanged)
63
64#if !defined(Q_OS_ANDROID) && !defined(Q_OS_IOS)
65 Q_PROPERTY(QUrl customConfigPath READ getCustomConfigPath CONSTANT)
66#endif
67
68 private:
69 QSharedPointer<WorkflowContext> mContext;
70 WifiInfo mWifiInfo;
71 bool mWifiEnabled;
72 QStringList mFeedback;
73 QTimer mFeedbackTimer;
74 const int mFeedbackDisplayLength;
75 bool mIsAppInForeground;
76#ifdef Q_OS_IOS
77 struct Private
78 {
79 Private();
80 ~Private();
81 VoiceOverObserver* const mObserver;
82 };
83 const QScopedPointer<Private> mPrivate;
84#endif
85
87 ~ApplicationModel() override = default;
88 void onStatusChanged(const ReaderManagerPluginInfo& pInfo);
89
90 private Q_SLOTS:
91 void onApplicationStateChanged(Qt::ApplicationState pState);
92 void onWifiEnabledChanged();
93
94 public Q_SLOTS:
96
97 public:
98 enum class Settings
99 {
100 WIFI,
101 NETWORK,
102 NFC,
103 APP
104 };
105 Q_ENUM(Settings)
106
107 enum class Workflow
108 {
112 SMART,
114 NONE
115 };
116 Q_ENUM(Workflow)
117
118 enum class NfcState
119 {
121 DISABLED,
122 INACTIVE,
123 READY
124 };
125 Q_ENUM(NfcState)
126
127 void resetContext(const QSharedPointer<WorkflowContext>& pContext = QSharedPointer<WorkflowContext>());
128
129 [[nodiscard]] Q_INVOKABLE int randomInt(int pLowerBound, int pUpperBound) const;
130
131 [[nodiscard]] QString getStoreUrl() const;
132 [[nodiscard]] QUrl getReleaseNotesUrl() const;
133
134 [[nodiscard]] NfcState getNfcState() const;
135 [[nodiscard]] bool isExtendedLengthApdusUnsupported() const;
136
137 [[nodiscard]] bool isSmartSupported() const;
138
139 [[nodiscard]] bool isWifiEnabled() const;
140 [[nodiscard]] Workflow getCurrentWorkflow() const;
141 [[nodiscard]] qsizetype getAvailableReader() const;
142 [[nodiscard]] qsizetype getAvailablePcscReader() const;
143
144 [[nodiscard]] QString getFeedback() const;
145
146 [[nodiscard]] Q_INVOKABLE bool isScreenReaderRunning() const;
147
148 [[nodiscard]] Q_INVOKABLE bool isReaderTypeAvailable(ReaderManagerPluginType pPluginType) const;
149
150 Q_INVOKABLE void enableWifi()const;
151
152 Q_INVOKABLE void setClipboardText(const QString& pText) const;
153 Q_INVOKABLE void showSettings(const Settings& pAction) const;
154 Q_INVOKABLE void showFeedback(const QString& pMessage, bool pReplaceExisting = false);
155 Q_INVOKABLE void keepScreenOn(bool pActive) const;
156
157 [[nodiscard]] Q_INVOKABLE QStringList getLicenseText() const;
158#if !defined(Q_OS_ANDROID) && !defined(Q_OS_IOS)
159 [[nodiscard]] Q_INVOKABLE QUrl getCustomConfigPath() const;
160 Q_INVOKABLE void saveEmbeddedConfig(const QUrl& pFilename) const;
161#endif
162 [[nodiscard]] Q_INVOKABLE QString stripHtmlTags(QString pString) const;
163#ifdef Q_OS_IOS
164 Q_INVOKABLE void showAppStoreRatingDialog();
165#endif
166
167 public Q_SLOTS:
168 Q_INVOKABLE void onShowNextFeedback();
169
170 Q_SIGNALS:
172
175
178
180
182
183 void fireApplicationStateChanged(bool pIsAppInForeground);
184};
185
186
187} // namespace governikus
Definition ApplicationModel.h:37
Q_INVOKABLE QUrl getCustomConfigPath() const
Definition ApplicationModel.cpp:348
Q_INVOKABLE void showFeedback(const QString &pMessage, bool pReplaceExisting=false)
Definition ApplicationModel.cpp:289
QString storeUrl
Definition ApplicationModel.h:46
Q_INVOKABLE QStringList getLicenseText() const
Definition ApplicationModel.cpp:324
bool isWifiEnabled() const
Definition ApplicationModel.cpp:192
Q_INVOKABLE QString stripHtmlTags(QString pString) const
Definition ApplicationModel.cpp:405
QUrl customConfigPath
Definition ApplicationModel.h:65
Q_INVOKABLE int randomInt(int pLowerBound, int pUpperBound) const
Definition ApplicationModel.cpp:96
Q_INVOKABLE void saveEmbeddedConfig(const QUrl &pFilename) const
Definition ApplicationModel.cpp:354
Settings
Definition ApplicationModel.h:99
QString feedback
Definition ApplicationModel.h:62
NfcState getNfcState() const
Definition ApplicationModel.cpp:132
Q_INVOKABLE bool isReaderTypeAvailable(ReaderManagerPluginType pPluginType) const
Definition ApplicationModel.cpp:248
Q_INVOKABLE void enableWifi() const
Definition ApplicationModel.cpp:397
void fireApplicationStateChanged(bool pIsAppInForeground)
NfcState nfcState
Definition ApplicationModel.h:49
Q_INVOKABLE void keepScreenOn(bool pActive) const
Definition ApplicationModel.cpp:316
Workflow
Definition ApplicationModel.h:108
bool wifiEnabled
Definition ApplicationModel.h:54
void resetContext(const QSharedPointer< WorkflowContext > &pContext=QSharedPointer< WorkflowContext >())
Definition ApplicationModel.cpp:78
QUrl getReleaseNotesUrl() const
Definition ApplicationModel.cpp:124
QUrl releaseNotesUrl
Definition ApplicationModel.h:47
Workflow getCurrentWorkflow() const
Definition ApplicationModel.cpp:198
qint64 availableReader
Definition ApplicationModel.h:59
void onTranslationChanged()
Definition ApplicationModel.cpp:391
Q_INVOKABLE void showSettings(const Settings &pAction) const
Definition ApplicationModel_android.cpp:41
bool isSmartSupported
Definition ApplicationModel.h:52
qint64 availablePcscReader
Definition ApplicationModel.h:60
NfcState
Definition ApplicationModel.h:119
Workflow currentWorkflow
Definition ApplicationModel.h:56
Q_INVOKABLE void onShowNextFeedback()
Definition ApplicationModel.cpp:270
bool isExtendedLengthApdusUnsupported() const
Definition ApplicationModel.cpp:161
bool extendedLengthApdusUnsupported
Definition ApplicationModel.h:50
Q_INVOKABLE void setClipboardText(const QString &pText) const
Definition ApplicationModel.cpp:282
qsizetype getAvailablePcscReader() const
Definition ApplicationModel.cpp:237
QString getStoreUrl() const
Definition ApplicationModel.cpp:103
qsizetype getAvailableReader() const
Definition ApplicationModel.cpp:226
Q_INVOKABLE bool isScreenReaderRunning() const
Definition ApplicationModel_android.cpp:88
QString getFeedback() const
Definition ApplicationModel.cpp:264
Definition Env.h:42
Definition SingletonCreator.h:22
Definition WifiInfo.h:21
Implementation of GeneralAuthenticate response APDUs.
Definition CommandApdu.h:17