AusweisApp2
RemoteServiceModel.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
10 #include "Env.h"
11 #include "ReaderManager.h"
12 #include "RemoteDeviceModel.h"
13 #include "WifiInfo.h"
14 #include "WorkflowModel.h"
15 
16 #include <QObject>
17 #include <QQmlEngine>
18 
19 namespace governikus
20 {
21 
23  : public WorkflowModel
24 {
25  Q_OBJECT
26  friend class Env;
27 
28  Q_PROPERTY(bool running READ isRunning WRITE setRunning NOTIFY fireIsRunningChanged)
29  Q_PROPERTY(bool runnable READ isRunnable NOTIFY fireEnvironmentChanged)
30  Q_PROPERTY(bool canEnableNfc READ isCanEnableNfc NOTIFY fireEnvironmentChanged)
31  Q_PROPERTY(QString errorMessage READ getErrorMessage NOTIFY fireEnvironmentChanged)
32  Q_PROPERTY(QByteArray psk READ getPsk NOTIFY firePskChanged)
34  Q_PROPERTY(QString connectionInfo READ getConnectionInfo NOTIFY fireConnectionInfoChanged)
37  Q_PROPERTY(RemoteDeviceModel * knownDevices READ getKnownDevices CONSTANT)
38  Q_PROPERTY(RemoteDeviceModel * combinedDevices READ getCombinedDevices CONSTANT)
41 
42  private:
43  QSharedPointer<RemoteServiceContext> mContext;
44  WifiInfo mWifiInfo;
45  bool mRunnable;
46  bool mCanEnableNfc;
47  QString mErrorMessage;
48  QByteArray mPsk;
49  RemoteDeviceModel mAvailableRemoteDevices;
50  RemoteDeviceModel mKnownDevices;
51  RemoteDeviceModel mCombinedDevices;
52  QString mConnectionInfo;
53  QString mConnectedServerDeviceNames;
54  bool mIsSaCPinChangeWorkflow;
55  QSharedPointer<RemoteDeviceListEntry> mRememberedServerEntry;
56 
57  void onEnvironmentChanged();
58  QString getErrorMessage(bool pNfcPluginAvailable, bool pNfcPluginEnabled, bool pWifiEnabled) const;
59 
60  private Q_SLOTS:
61  void onEstablishConnectionDone(const QSharedPointer<RemoteDeviceListEntry>& pEntry, const GlobalStatus& pStatus);
62  void onConnectionInfoChanged(bool pConnected);
63  void onCardConnectionEstablished(const QSharedPointer<CardConnection>& pConnection);
64  void onConnectedDevicesChanged();
65  void onEstablishPaceChannelMessageUpdated(const QSharedPointer<const IfdEstablishPaceChannel>& pMessage);
66 
67  protected:
69  ~RemoteServiceModel() override = default;
71 
72  public:
73  bool isRunning() const;
74  void setRunning(bool pState);
75 
79  void setDetectRemoteDevices(bool pNewStatus);
81  Q_INVOKABLE bool rememberServer(const QString& pDeviceId);
82  Q_INVOKABLE void connectToRememberedServer(const QString& pServerPsk);
83 
84  void resetContext(const QSharedPointer<RemoteServiceContext>& pContext = QSharedPointer<RemoteServiceContext>());
85  Q_INVOKABLE void setPairing(bool pEnabled = true);
86  bool isConnectedToPairedDevice() const;
87  bool isSaCPinChangeWorkflow() const;
88  bool isRunnable() const;
89  bool isCanEnableNfc() const;
90  QString getErrorMessage() const;
91  QByteArray getPsk() const;
92  QString getConnectionInfo() const;
93  QString getConnectedServerDeviceNames() const;
94 
95  Q_INVOKABLE bool pinPadModeOn();
96  Q_INVOKABLE QString getPasswordType() const;
97  Q_INVOKABLE void forgetDevice(const QString& pId);
98  Q_INVOKABLE void cancelPasswordRequest();
99 
100  Q_SIGNALS:
103  void firePskChanged(const QByteArray& pPsk);
107  void firePairingFailed(QString pDeviceName, QString pErrorMessage);
108  void firePairingSuccess(QString pDeviceName);
112 };
113 
114 
115 } // namespace governikus
governikus::RemoteServiceSettings::escapeDeviceName
static QString escapeDeviceName(const QString &pDeviceNameUnescaped)
Definition: RemoteServiceSettings.cpp:346
ReaderManager.h
governikus::RemoteServiceModel::detectRemoteDevices
bool detectRemoteDevices
Definition: RemoteServiceModel.h:39
governikus::RemoteDeviceModel
Definition: RemoteDeviceModel.h:63
governikus::RemoteDeviceModel::getRemoteDeviceListEntry
const QSharedPointer< RemoteDeviceListEntry > getRemoteDeviceListEntry(const QModelIndex &pIndex) const
Definition: RemoteDeviceModel.cpp:447
governikus::RemoteServer::fireConnectedChanged
void fireConnectedChanged(bool pConnected)
governikus::RemoteServiceModel::runnable
bool runnable
Definition: RemoteServiceModel.h:29
governikus::EstablishPaceChannelParser::fromCcid
static EstablishPaceChannelParser fromCcid(const QByteArray &pInput)
Definition: EstablishPaceChannelParser.cpp:27
governikus::RemoteServiceModel::getConnectionInfo
QString getConnectionInfo() const
Definition: RemoteServiceModel.cpp:291
governikus::WifiInfo
Definition: WifiInfo.h:24
RemoteServiceSettings.h
governikus::RemoteServiceModel::canEnableNfc
bool canEnableNfc
Definition: RemoteServiceModel.h:30
governikus::RemoteServiceModel::forgetDevice
Q_INVOKABLE void forgetDevice(const QString &pId)
Definition: RemoteServiceModel.cpp:362
NumberModel.h
governikus::RemoteServiceSettings
Definition: RemoteServiceSettings.h:29
governikus::RemoteServiceContext::fireCardConnectionEstablished
void fireCardConnectionEstablished(const QSharedPointer< CardConnection > &pConnection)
governikus::RemoteServiceModel::connectedServerDeviceNames
QString connectedServerDeviceNames
Definition: RemoteServiceModel.h:35
governikus::RemoteServiceModel::~RemoteServiceModel
~RemoteServiceModel() override=default
governikus::RemoteServiceModel::getAvailableRemoteDevices
RemoteDeviceModel * getAvailableRemoteDevices()
Definition: RemoteServiceModel.cpp:116
governikus::RemoteServiceModel::setRunning
void setRunning(bool pState)
Definition: RemoteServiceModel.cpp:96
governikus::WifiInfo::isWifiEnabled
bool isWifiEnabled()
Definition: WifiInfo_android.cpp:71
governikus::RemoteServiceModel::fireEnvironmentChanged
void fireEnvironmentChanged()
governikus::RemoteServiceModel::fireConnectedChanged
void fireConnectedChanged()
governikus::RemoteServiceModel::firePskChanged
void firePskChanged(const QByteArray &pPsk)
governikus::GlobalStatus::toErrorDescription
QString toErrorDescription(const bool pSimplifiedVersion=false) const
Definition: GlobalStatus.cpp:90
AppSettings.h
governikus::RemoteServiceModel::fireIsRunningChanged
void fireIsRunningChanged()
WifiInfo.h
governikus::RemoteServiceModel::cancelPasswordRequest
Q_INVOKABLE void cancelPasswordRequest()
Definition: RemoteServiceModel.cpp:368
governikus::RemoteServiceModel::rememberServer
Q_INVOKABLE bool rememberServer(const QString &pDeviceId)
Definition: RemoteServiceModel.cpp:173
governikus::RemoteServiceModel::isCanEnableNfc
bool isCanEnableNfc() const
Definition: RemoteServiceModel.cpp:273
governikus::RemoteServiceSettings::RemoteInfo::getNameEscaped
QString getNameEscaped() const
Definition: RemoteServiceSettings.cpp:387
governikus::RemoteServiceModel::pinPadModeOn
Q_INVOKABLE bool pinPadModeOn()
Definition: RemoteServiceModel.cpp:303
governikus::RemoteServiceModel::psk
QByteArray psk
Definition: RemoteServiceModel.h:32
governikus::WorkflowModel::fireStartWorkflow
void fireStartWorkflow()
governikus::RemoteServiceModel::availableRemoteDevices
RemoteDeviceModel * availableRemoteDevices
Definition: RemoteServiceModel.h:36
governikus::Env
Definition: Env.h:39
governikus::EstablishPaceChannelParser::getPasswordId
PacePasswordId getPasswordId() const
Definition: EstablishPaceChannelParser.cpp:99
governikus::RemoteServiceModel::getInstance
static RemoteServiceModel & getInstance()
Definition: RemoteServiceModel.cpp:377
governikus::RemoteClient::fireEstablishConnectionDone
void fireEstablishConnectionDone(const QSharedPointer< RemoteDeviceListEntry > &pEntry, const GlobalStatus &pStatus)
governikus::RemoteServiceModel::firePairingFailed
void firePairingFailed(QString pDeviceName, QString pErrorMessage)
governikus::RemoteServiceModel::RemoteServiceModel
RemoteServiceModel()
governikus::RemoteServiceContext::fireEstablishPaceChannelMessageUpdated
void fireEstablishPaceChannelMessageUpdated(const QSharedPointer< const IfdEstablishPaceChannel > &pMessage)
governikus::PACE_CAN
PACE_CAN
Definition: SmartCardDefinitions.h:20
governikus::RemoteServiceModel
Definition: RemoteServiceModel.h:24
governikus::GlobalStatus::isError
bool isError() const
Definition: GlobalStatus.cpp:427
governikus::RemoteServiceModel::connectToRememberedServer
Q_INVOKABLE void connectToRememberedServer(const QString &pServerPsk)
Definition: RemoteServiceModel.cpp:160
governikus::RemoteServiceModel::fireDetectionChanged
void fireDetectionChanged()
EstablishPaceChannelParser.h
defineSingleton
defineSingleton(RemoteServiceModel) RemoteServiceModel
Definition: RemoteServiceModel.cpp:16
governikus::RemoteServiceModel::isRunning
bool isRunning() const
Definition: RemoteServiceModel.cpp:90
governikus::RemoteDeviceModel::onUiHidden
void onUiHidden()
Definition: RemoteDeviceModel.cpp:507
governikus::RemoteServer::firePskChanged
void firePskChanged(const QByteArray &pPsk)
governikus
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15
governikus::RemoteServiceModel::getPasswordType
Q_INVOKABLE QString getPasswordType() const
Definition: RemoteServiceModel.cpp:309
governikus::RemoteServiceModel::firePairingSuccess
void firePairingSuccess(QString pDeviceName)
governikus::RemoteServiceModel::getCombinedDevices
RemoteDeviceModel * getCombinedDevices()
Definition: RemoteServiceModel.cpp:128
governikus::RemoteDeviceModel::onUiShown
void onUiShown()
Definition: RemoteDeviceModel.cpp:494
RemoteClientImpl.h
governikus::PACE_PIN
PACE_PIN
Definition: SmartCardDefinitions.h:21
governikus::RemoteServiceModel::connectedToPairedDevice
bool connectedToPairedDevice
Definition: RemoteServiceModel.h:33
governikus::RemoteServiceModel::setDetectRemoteDevices
void setDetectRemoteDevices(bool pNewStatus)
Definition: RemoteServiceModel.cpp:134
governikus::RemoteServiceModel::knownDevices
RemoteDeviceModel * knownDevices
Definition: RemoteServiceModel.h:37
Env.h
governikus::RemoteServiceModel::getKnownDevices
RemoteDeviceModel * getKnownDevices()
Definition: RemoteServiceModel.cpp:122
governikus::RemoteServiceModel::connectionInfo
QString connectionInfo
Definition: RemoteServiceModel.h:34
governikus::RemoteServiceModel::isConnectedToPairedDevice
bool isConnectedToPairedDevice() const
Definition: RemoteServiceModel.cpp:250
governikus::EstablishPaceChannelParser::getCertificateDescription
const QByteArray & getCertificateDescription() const
Definition: EstablishPaceChannelParser.cpp:111
governikus::RemoteDeviceModel::forgetDevice
void forgetDevice(const QModelIndex &pIndex)
Definition: RemoteDeviceModel.cpp:553
governikus::RemoteServiceModel::isSaCPinChangeWorkflow
bool isSaCPinChangeWorkflow
Definition: RemoteServiceModel.h:40
RemoteServiceContext.h
governikus::RemoteServiceModel::getErrorMessage
QString getErrorMessage() const
Definition: RemoteServiceModel.cpp:279
governikus::GlobalStatus
Definition: GlobalStatus.h:20
governikus::RemoteServiceModel::fireConnectedServerDeviceNamesChanged
void fireConnectedServerDeviceNamesChanged()
governikus::RemoteServiceModel::fireServerPskChanged
void fireServerPskChanged()
governikus::RemoteServiceModel::setPairing
Q_INVOKABLE void setPairing(bool pEnabled=true)
Definition: RemoteServiceModel.cpp:241
RemoteDeviceModel.h
RemoteServiceModel.h
governikus::RemoteServiceModel::resetContext
void resetContext(const QSharedPointer< RemoteServiceContext > &pContext=QSharedPointer< RemoteServiceContext >())
Definition: RemoteServiceModel.cpp:217
governikus::RemoteServiceModel::detectRemoteDevices
bool detectRemoteDevices()
WorkflowModel.h
governikus::RemoteServiceModel::isRunnable
bool isRunnable() const
Definition: RemoteServiceModel.cpp:267
governikus::RemoteServiceModel::errorMessage
QString errorMessage
Definition: RemoteServiceModel.h:31
governikus::RemoteServiceModel::running
bool running
Definition: RemoteServiceModel.h:28
governikus::RemoteServiceModel::fireEstablishPaceChannelMessageUpdated
void fireEstablishPaceChannelMessageUpdated()
governikus::EstablishPaceChannelParser
Definition: EstablishPaceChannelParser.h:16
governikus::RemoteServiceModel::combinedDevices
RemoteDeviceModel * combinedDevices
Definition: RemoteServiceModel.h:38
governikus::RemoteServiceModel::getPsk
QByteArray getPsk() const
Definition: RemoteServiceModel.cpp:285
governikus::WorkflowModel
Definition: WorkflowModel.h:23
governikus::RemoteServiceModel::getConnectedServerDeviceNames
QString getConnectedServerDeviceNames() const
Definition: RemoteServiceModel.cpp:297
SingletonHelper.h
governikus::WorkflowContext::fireStateChanged
void fireStateChanged(const QString &pNewState)
governikus::RemoteServiceSettings::getRemoteInfo
RemoteInfo getRemoteInfo(const QSslCertificate &pCertificate) const
Definition: RemoteServiceSettings.cpp:242
governikus::RemoteServiceModel::fireConnectionInfoChanged
void fireConnectionInfoChanged()
governikus::WorkflowModel::resetContext
void resetContext(const QSharedPointer< WorkflowContext > &pContext=QSharedPointer< WorkflowContext >())
Definition: WorkflowModel.cpp:38