AusweisApp2
ApplicationModel.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
10 #include "Env.h"
11 #include "ReaderInfo.h"
13 #include "WifiInfo.h"
14 
15 #include <QObject>
16 #include <QQmlEngine>
17 #include <QSharedPointer>
18 #include <QStringList>
19 #include <QTimer>
20 
21 #ifdef Q_OS_IOS
22 Q_FORWARD_DECLARE_OBJC_CLASS(VoiceOverObserver);
23 #endif
24 
25 namespace governikus
26 {
27 
29  : public QObject
30 {
31  Q_OBJECT
32  friend class Env;
33 
34  Q_PROPERTY(QString storeUrl READ getStoreUrl NOTIFY fireStoreUrlChanged)
35  Q_PROPERTY(QUrl releaseNotesUrl READ getReleaseNotesUrl CONSTANT)
36 
37  Q_PROPERTY(QmlNfcState nfcState READ getNfcState NOTIFY fireNfcStateChanged)
39 
40  Q_PROPERTY(qreal scaleFactor READ getScaleFactor WRITE setScaleFactor NOTIFY fireScaleFactorChanged)
41  Q_PROPERTY(bool wifiEnabled READ isWifiEnabled NOTIFY fireWifiEnabledChanged)
42 
43  Q_PROPERTY(QString currentWorkflow READ getCurrentWorkflow NOTIFY fireCurrentWorkflowChanged)
45 
46  Q_PROPERTY(QString feedback READ getFeedback NOTIFY fireFeedbackChanged)
47 
48  QSharedPointer<WorkflowContext> mContext;
49 
51  ~ApplicationModel() override = default;
52  void onStatusChanged(const ReaderManagerPlugInInfo& pInfo);
53  ReaderManagerPlugInInfo getFirstPlugInInfo(ReaderManagerPlugInType pType) const;
54 
55  private:
56  constexpr static qreal DEFAULT_SCALE_FACTOR = 0.6;
57  qreal mScaleFactor;
58  WifiInfo mWifiInfo;
59  bool mWifiEnabled;
60  QStringList mFeedback;
61  QTimer mFeedbackTimer;
62  const int mFeedbackDisplayLength;
63 #ifdef Q_OS_IOS
64  struct Private
65  {
66  Private();
67  ~Private();
68  VoiceOverObserver* const mObserver;
69  };
70  const QScopedPointer<Private> mPrivate;
71 #endif
72 
73  private Q_SLOTS:
74  void onWifiEnabledChanged();
75 
76  public:
77  enum class Settings
78  {
83  };
84  Q_ENUM(Settings)
85 
86  enum class QmlNfcState
87  {
88  NFC_UNAVAILABLE,
89  NFC_DISABLED,
90  NFC_INACTIVE,
91  NFC_READY
92  };
93  Q_ENUM(QmlNfcState)
94 
95  void resetContext(const QSharedPointer<WorkflowContext>& pContext = QSharedPointer<WorkflowContext>());
96 
97  QString getStoreUrl() const;
98  QUrl getReleaseNotesUrl() const;
99 
100  QmlNfcState getNfcState() const;
102 
103  bool isWifiEnabled() const;
104  qreal getScaleFactor() const;
105  void setScaleFactor(qreal pScaleFactor);
106 
107  QString getCurrentWorkflow() const;
108  int getAvailableReader() const;
109 
110  QString getFeedback() const;
111 
112  Q_INVOKABLE bool isScreenReaderRunning() const;
113 
114  Q_INVOKABLE bool isReaderTypeAvailable(ReaderManagerPlugInType pPlugInType) const;
115 
116  Q_INVOKABLE void enableWifi();
117 
118  Q_INVOKABLE void showSettings(const Settings& pAction);
119  Q_INVOKABLE void showFeedback(const QString& pMessage, bool pReplaceExisting = false);
120  Q_INVOKABLE void keepScreenOn(bool pActive);
121  Q_INVOKABLE QStringList getLicenseText() const;
122 #if !defined(Q_OS_ANDROID) && !defined(Q_OS_IOS)
123  Q_INVOKABLE QString onlineHelpUrl(const QString& pHelpSectionName);
124  Q_INVOKABLE void openOnlineHelp(const QString& pHelpSectionName);
125 #endif
126  Q_INVOKABLE QString stripHtmlTags(QString pString) const;
127 #ifdef Q_OS_IOS
128  Q_INVOKABLE void showAppStoreRatingDialog();
129 #endif
130 
131  public Q_SLOTS:
132  Q_INVOKABLE void onShowNextFeedback();
133 
134  Q_SIGNALS:
136 
139 
142 
145  void fireCertificateRemoved(const QString& pDeviceName);
146 
148 };
149 
150 
151 } // namespace governikus
governikus::ApplicationModel::showSettings
Q_INVOKABLE void showSettings(const Settings &pAction)
Definition: ApplicationModel_android.cpp:40
AuthContext.h
ReaderManager.h
governikus::ApplicationModel::QmlNfcState::NFC_READY
@ NFC_READY
governikus::ApplicationModel::Settings::SETTING_NFC
@ SETTING_NFC
governikus::ApplicationModel::extendedLengthApdusUnsupported
bool extendedLengthApdusUnsupported
Definition: ApplicationModel.h:38
governikus::ApplicationModel::getNfcState
QmlNfcState getNfcState() const
Definition: ApplicationModel.cpp:143
governikus::WifiInfo
Definition: WifiInfo.h:20
ReaderManagerPlugInInfo.h
governikus::ApplicationModel::fireNfcStateChanged
void fireNfcStateChanged()
governikus::ApplicationModel::isWifiEnabled
bool isWifiEnabled() const
Definition: ApplicationModel.cpp:191
governikus::AuthContext
Definition: AuthContext.h:49
governikus::ApplicationModel::scaleFactor
qreal scaleFactor
Definition: ApplicationModel.h:40
governikus::WifiInfo::isWifiEnabled
bool isWifiEnabled()
Definition: WifiInfo_android.cpp:71
governikus::ApplicationModel::getFeedback
QString getFeedback() const
Definition: ApplicationModel.cpp:277
VersionNumber.h
governikus::ApplicationModel::stripHtmlTags
Q_INVOKABLE QString stripHtmlTags(QString pString) const
Definition: ApplicationModel.cpp:427
governikus::ReaderInfo
Definition: ReaderInfo.h:17
AppSettings.h
governikus::ApplicationModel::getReleaseNotesUrl
QUrl getReleaseNotesUrl() const
Definition: ApplicationModel.cpp:121
governikus::ApplicationModel::fireCertificateRemoved
void fireCertificateRemoved(const QString &pDeviceName)
governikus::ApplicationModel::QmlNfcState::NFC_UNAVAILABLE
@ NFC_UNAVAILABLE
ReaderInfo.h
WifiInfo.h
governikus::ChangePinContext
Definition: ChangePinContext.h:16
SecureStorage.h
HelpAction.h
governikus::ReaderInfo::sufficientApduLength
bool sufficientApduLength() const
Definition: ReaderInfo.h:149
governikus::WorkflowContext::fireReaderPlugInTypesChanged
void fireReaderPlugInTypesChanged()
governikus::ApplicationModel::showFeedback
Q_INVOKABLE void showFeedback(const QString &pMessage, bool pReplaceExisting=false)
Definition: ApplicationModel.cpp:295
WorkflowContext.h
governikus::HelpAction::getOnlineUrl
static QString getOnlineUrl(const QString &pObjectName=QString())
Definition: HelpAction.cpp:110
governikus::WorkflowContext::fireReaderNameChanged
void fireReaderNameChanged()
RemoteClient.h
governikus::ApplicationModel::QmlNfcState
QmlNfcState
Definition: ApplicationModel.h:87
governikus::ApplicationModel::onlineHelpUrl
Q_INVOKABLE QString onlineHelpUrl(const QString &pHelpSectionName)
Definition: ApplicationModel.cpp:397
governikus::WorkflowContext::fireReaderInfoChanged
void fireReaderInfoChanged()
governikus::ApplicationModel::getScaleFactor
qreal getScaleFactor() const
Definition: ApplicationModel.cpp:197
governikus::ReaderManager::fireReaderRemoved
void fireReaderRemoved(const ReaderInfo &pInfo)
governikus::VersionNumber::isDeveloperVersion
bool isDeveloperVersion() const
Definition: VersionNumber.cpp:41
governikus::Env
Definition: Env.h:44
governikus::ApplicationModel::nfcState
QmlNfcState nfcState
Definition: ApplicationModel.h:37
governikus::ApplicationModel::feedback
QString feedback
Definition: ApplicationModel.h:46
governikus::RemoteClient::fireCertificateRemoved
void fireCertificateRemoved(const QString &pDeviceName)
governikus::ApplicationModel::getCurrentWorkflow
QString getCurrentWorkflow() const
Definition: ApplicationModel.cpp:215
PdfExporter.h
ChangePinContext.h
governikus::ApplicationModel::keepScreenOn
Q_INVOKABLE void keepScreenOn(bool pActive)
Definition: ApplicationModel.cpp:348
governikus::ApplicationModel::QmlNfcState::NFC_DISABLED
@ NFC_DISABLED
governikus::ApplicationModel::Settings
Settings
Definition: ApplicationModel.h:78
governikus::ApplicationModel::QmlNfcState::NFC_INACTIVE
@ NFC_INACTIVE
governikus::GeneralSettings::fireLanguageChanged
void fireLanguageChanged()
governikus::ApplicationModel::Settings::SETTING_NETWORK
@ SETTING_NETWORK
governikus::ApplicationModel::storeUrl
QString storeUrl
Definition: ApplicationModel.h:34
governikus::ApplicationModel::currentWorkflow
QString currentWorkflow
Definition: ApplicationModel.h:43
governikus::HelpAction::openContextHelp
static void openContextHelp(const QString &pObjectName=QStringLiteral("applicationPage"))
Definition: HelpAction.cpp:126
governikus::ApplicationModel::getAvailableReader
int getAvailableReader() const
Definition: ApplicationModel.cpp:233
governikus
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15
BuildHelper.h
governikus::WifiInfo::fireWifiEnabledChanged
void fireWifiEnabledChanged(bool pEnabled)
governikus::SelfAuthContext
Definition: SelfAuthContext.h:18
governikus::ApplicationModel::setScaleFactor
void setScaleFactor(qreal pScaleFactor)
Definition: ApplicationModel.cpp:203
governikus::ApplicationModel::fireAvailableReaderChanged
void fireAvailableReaderChanged()
governikus::ApplicationModel::Settings::SETTING_APP
@ SETTING_APP
SelfAuthContext.h
governikus::ApplicationModel::onShowNextFeedback
Q_INVOKABLE void onShowNextFeedback()
Definition: ApplicationModel.cpp:283
Env.h
Q_FORWARD_DECLARE_OBJC_CLASS
Q_FORWARD_DECLARE_OBJC_CLASS(IosReaderDelegate)
Implementation of Reader for iOS.
governikus::LanguageLoader::getLocalCode
static QString getLocalCode(const QLocale &pLocale=getInstance().getUsedLocale())
Definition: LanguageLoader.cpp:54
governikus::ApplicationModel::isExtendedLengthApdusUnsupported
bool isExtendedLengthApdusUnsupported() const
Definition: ApplicationModel.cpp:172
governikus::VersionNumber::getApplicationVersion
static const VersionNumber & getApplicationVersion()
Definition: VersionNumber.cpp:29
governikus::ApplicationModel::resetContext
void resetContext(const QSharedPointer< WorkflowContext > &pContext=QSharedPointer< WorkflowContext >())
Definition: ApplicationModel.cpp:82
governikus::ApplicationModel::releaseNotesUrl
QUrl releaseNotesUrl
Definition: ApplicationModel.h:35
ApplicationModel.h
governikus::ApplicationModel::fireReaderPropertiesUpdated
void fireReaderPropertiesUpdated()
governikus::ReaderFilter
Definition: ReaderFilter.h:21
governikus::ReaderManager::fireStatusChanged
void fireStatusChanged(const ReaderManagerPlugInInfo &pInfo)
governikus::ApplicationModel::getStoreUrl
QString getStoreUrl() const
Definition: ApplicationModel.cpp:100
governikus::ApplicationModel::getLicenseText
Q_INVOKABLE QStringList getLicenseText() const
Definition: ApplicationModel.cpp:370
governikus::ApplicationModel::Settings::SETTING_WIFI
@ SETTING_WIFI
governikus::ReaderManager::fireReaderAdded
void fireReaderAdded(const ReaderInfo &pInfo)
governikus::ApplicationModel::fireCurrentWorkflowChanged
void fireCurrentWorkflowChanged()
governikus::ApplicationModel::enableWifi
Q_INVOKABLE void enableWifi()
Definition: ApplicationModel.cpp:419
governikus::ApplicationModel::fireStoreUrlChanged
void fireStoreUrlChanged()
governikus::ApplicationModel::fireFeedbackChanged
void fireFeedbackChanged()
governikus::ApplicationModel::fireScaleFactorChanged
void fireScaleFactorChanged()
governikus::ApplicationModel::wifiEnabled
bool wifiEnabled
Definition: ApplicationModel.h:41
governikus::ApplicationModel::availableReader
int availableReader
Definition: ApplicationModel.h:44
governikus::ApplicationModel::isReaderTypeAvailable
Q_INVOKABLE bool isReaderTypeAvailable(ReaderManagerPlugInType pPlugInType) const
Definition: ApplicationModel.cpp:244
governikus::ApplicationModel::isScreenReaderRunning
Q_INVOKABLE bool isScreenReaderRunning() const
Definition: ApplicationModel.cpp:261
governikus::ApplicationModel::fireWifiEnabledChanged
void fireWifiEnabledChanged()
governikus::ReaderManager::fireReaderPropertiesUpdated
void fireReaderPropertiesUpdated(const ReaderInfo &pInfo)
LanguageLoader.h
governikus::ApplicationModel::openOnlineHelp
Q_INVOKABLE void openOnlineHelp(const QString &pHelpSectionName)
Definition: ApplicationModel.cpp:403
governikus::ApplicationModel
Definition: ApplicationModel.h:30