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 "WorkflowModel.h"
14 
15 #include <QObject>
16 #include <QQmlEngine>
17 
18 namespace governikus
19 {
20 
22  : public WorkflowModel
23 {
24  Q_OBJECT
25  friend class Env;
26 
27  Q_PROPERTY(bool running READ isRunning NOTIFY fireIsRunningChanged)
28  Q_PROPERTY(bool isStarting READ isStarting NOTIFY fireIsStartingChanged)
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(bool isPairing READ isPairing NOTIFY firePskChanged)
33  Q_PROPERTY(QByteArray psk READ getPsk NOTIFY firePskChanged)
35  Q_PROPERTY(QString connectionInfo READ getConnectionInfo NOTIFY fireConnectionInfoChanged)
38  Q_PROPERTY(RemoteDeviceModel * knownDevices READ getKnownDevices CONSTANT)
39  Q_PROPERTY(RemoteDeviceModel * combinedDevices READ getCombinedDevices CONSTANT)
44  Q_PROPERTY(bool requiresLocalNetworkPermission MEMBER mRequiresLocalNetworkPermission CONSTANT)
45 
46  private:
47  QSharedPointer<RemoteServiceContext> mContext;
48  bool mRunnable;
49  bool mIsStarting;
50  bool mCanEnableNfc;
51  bool mPairingRequested;
52  bool mRequestTransportPin;
53  QString mErrorMessage;
54  QByteArray mPsk;
55  RemoteDeviceModel mAvailableRemoteDevices;
56  RemoteDeviceModel mKnownDevices;
57  RemoteDeviceModel mCombinedDevices;
58  QString mConnectionInfo;
59  QString mConnectedServerDeviceNames;
60  QSharedPointer<RemoteDeviceListEntry> mRememberedServerEntry;
61  const bool mRequiresLocalNetworkPermission;
62 
64  ~RemoteServiceModel() override = default;
65 
66  void onEnvironmentChanged();
67  QString getErrorMessage(bool pNfcPluginAvailable, bool pNfcPluginEnabled, bool pWifiEnabled) const;
68 
69  void setStarting(bool pStarting);
70 
71  private Q_SLOTS:
72  void onEstablishConnectionDone(const QSharedPointer<RemoteDeviceListEntry>& pEntry, const GlobalStatus& pStatus);
73  void onConnectionInfoChanged(bool pConnected);
74  void onCardConnectionEstablished(const QSharedPointer<CardConnection>& pConnection);
75  void onConnectedDevicesChanged();
76  void onEstablishPaceChannelUpdated();
77 
78  public:
79  bool isRunning() const;
80  Q_INVOKABLE void setRunning(bool pState, bool pEnablePairing = false);
81  bool isStarting() const;
82 
86  void setDetectRemoteDevices(bool pNewStatus);
87  bool detectRemoteDevices() const;
88  Q_INVOKABLE bool rememberServer(const QString& pDeviceId);
89  Q_INVOKABLE void connectToRememberedServer(const QString& pServerPsk);
90 
91  void resetRemoteServiceContext(const QSharedPointer<RemoteServiceContext>& pContext = QSharedPointer<RemoteServiceContext>());
92  void setPairing(bool pEnabled);
93  bool isPairing();
94  bool isConnectedToPairedDevice() const;
95  bool enableTransportPinLink() const;
96  bool isRequestTransportPin() const;
97  bool isRunnable() const;
98  bool isCanEnableNfc() const;
99  QString getErrorMessage() const;
100  QByteArray getPsk() const;
101  QString getConnectionInfo() const;
102  QString getConnectedServerDeviceNames() const;
103  bool getRemoteReaderVisible() const;
104 
105  Q_INVOKABLE bool pinPadModeOn() const;
106  Q_INVOKABLE QString getPasswordType() const;
107  Q_INVOKABLE void forgetDevice(const QString& pId);
108  Q_INVOKABLE void cancelPasswordRequest();
109  Q_INVOKABLE void changePinLength();
110 
111  Q_SIGNALS:
116  void firePskChanged(const QByteArray& pPsk);
120  void firePairingFailed(const QString& pDeviceName, const QString& pErrorMessage);
121  void firePairingSuccess(const QString& pDeviceName);
127 };
128 
129 
130 } // namespace governikus
governikus::ReaderManager::firePluginAdded
void firePluginAdded(const ReaderManagerPlugInInfo &pInfo)
governikus::RemoteServiceSettings::escapeDeviceName
static QString escapeDeviceName(const QString &pDeviceNameUnescaped)
Definition: RemoteServiceSettings.cpp:352
governikus::RemoteClient::fireDispatcherDestroyed
void fireDispatcherDestroyed(GlobalStatus::Code pCloseCode, const QString &pId)
ReaderManager.h
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::RemoteServiceModel::getConnectionInfo
QString getConnectionInfo() const
Definition: RemoteServiceModel.cpp:357
RemoteServiceSettings.h
governikus::RemoteClient::fireDeviceAppeared
void fireDeviceAppeared(const QSharedPointer< RemoteDeviceListEntry > &pEntry)
governikus::RemoteServiceModel::canEnableNfc
bool canEnableNfc
Definition: RemoteServiceModel.h:30
governikus::RemoteServiceModel::forgetDevice
Q_INVOKABLE void forgetDevice(const QString &pId)
Definition: RemoteServiceModel.cpp:427
NumberModel.h
governikus::RemoteServiceSettings
Definition: RemoteServiceSettings.h:29
governikus::RemoteServiceContext::fireCardConnectionEstablished
void fireCardConnectionEstablished(const QSharedPointer< CardConnection > &pConnection)
governikus::RemoteServiceModel::isRequestTransportPin
bool isRequestTransportPin() const
Definition: RemoteServiceModel.cpp:327
governikus::RemoteServer::firePairingCompleted
void firePairingCompleted()
governikus::RemoteServiceModel::changePinLength
Q_INVOKABLE void changePinLength()
Definition: RemoteServiceModel.cpp:442
governikus::RemoteServiceContext::fireEstablishPaceChannelUpdated
void fireEstablishPaceChannelUpdated()
governikus::RemoteServiceModel::connectedServerDeviceNames
QString connectedServerDeviceNames
Definition: RemoteServiceModel.h:36
governikus::RemoteServiceModel::getAvailableRemoteDevices
RemoteDeviceModel * getAvailableRemoteDevices()
Definition: RemoteServiceModel.cpp:152
governikus::RemoteServiceModel::fireEnvironmentChanged
void fireEnvironmentChanged()
governikus::RemoteServiceModel::fireConnectedChanged
void fireConnectedChanged()
governikus::RemoteClient::fireDeviceVanished
void fireDeviceVanished(const QSharedPointer< RemoteDeviceListEntry > &pEntry)
governikus::RemoteServiceModel::firePskChanged
void firePskChanged(const QByteArray &pPsk)
governikus::RemoteServiceModel::getRemoteReaderVisible
bool getRemoteReaderVisible() const
Definition: RemoteServiceModel.cpp:369
AppSettings.h
governikus::RemoteServiceModel::fireIsRunningChanged
void fireIsRunningChanged()
governikus::RemoteServiceModel::setPairing
void setPairing(bool pEnabled)
Definition: RemoteServiceModel.cpp:290
governikus::RemoteServiceModel::cancelPasswordRequest
Q_INVOKABLE void cancelPasswordRequest()
Definition: RemoteServiceModel.cpp:433
governikus::RemoteServiceModel::rememberServer
Q_INVOKABLE bool rememberServer(const QString &pDeviceId)
Definition: RemoteServiceModel.cpp:209
governikus::RemoteServiceModel::isCanEnableNfc
bool isCanEnableNfc() const
Definition: RemoteServiceModel.cpp:339
governikus::RemoteServiceSettings::RemoteInfo::getNameEscaped
QString getNameEscaped() const
Definition: RemoteServiceSettings.cpp:393
governikus::RemoteClient::fireDetectionChanged
void fireDetectionChanged()
governikus::RemoteServiceModel::psk
QByteArray psk
Definition: RemoteServiceModel.h:33
governikus::GlobalStatus::toErrorDescription
QString toErrorDescription(const bool pSimplifiedVersion=false) const
governikus::RemoteServiceModel::requestTransportPin
bool requestTransportPin
Definition: RemoteServiceModel.h:42
governikus::RemoteServiceModel::enableTransportPinLink
bool enableTransportPinLink
Definition: RemoteServiceModel.h:41
governikus::ReaderManager::fireReaderRemoved
void fireReaderRemoved(const ReaderInfo &pInfo)
governikus::RemoteServiceModel::availableRemoteDevices
RemoteDeviceModel * availableRemoteDevices
Definition: RemoteServiceModel.h:37
governikus::Env
Definition: Env.h:44
governikus::RemoteClient::fireEstablishConnectionDone
void fireEstablishConnectionDone(const QSharedPointer< RemoteDeviceListEntry > &pEntry, const GlobalStatus &pStatus)
governikus::RemoteServiceModel::fireEstablishPaceChannelUpdated
void fireEstablishPaceChannelUpdated()
governikus::PACE_CAN
PACE_CAN
Definition: SmartCardDefinitions.h:20
governikus::RemoteServiceModel
Definition: RemoteServiceModel.h:23
governikus::RemoteServiceModel::pinPadModeOn
Q_INVOKABLE bool pinPadModeOn() const
Definition: RemoteServiceModel.cpp:375
governikus::RemoteServiceModel::fireRemoteReaderVisibleChanged
void fireRemoteReaderVisibleChanged()
governikus::RemoteServiceModel::isStarting
bool isStarting
Definition: RemoteServiceModel.h:28
governikus::WorkflowModel::resetWorkflowContext
void resetWorkflowContext(const QSharedPointer< WorkflowContext > &pContext=QSharedPointer< WorkflowContext >())
Definition: WorkflowModel.cpp:39
governikus::RemoteServiceModel::connectToRememberedServer
Q_INVOKABLE void connectToRememberedServer(const QString &pServerPsk)
Definition: RemoteServiceModel.cpp:196
governikus::RemoteServiceModel::requiresLocalNetworkPermission
bool requiresLocalNetworkPermission
Definition: RemoteServiceModel.h:44
governikus::RemoteServiceModel::fireDetectionChanged
void fireDetectionChanged()
governikus::RemoteServiceModel::isRunning
bool isRunning() const
Definition: RemoteServiceModel.cpp:104
governikus::RemoteServiceModel::firePairingFailed
void firePairingFailed(const QString &pDeviceName, const QString &pErrorMessage)
governikus::GeneralSettings::fireLanguageChanged
void fireLanguageChanged()
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:381
governikus::RemoteServiceModel::getCombinedDevices
RemoteDeviceModel * getCombinedDevices()
Definition: RemoteServiceModel.cpp:164
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:34
governikus::RemoteServiceModel::firePairingCompleted
void firePairingCompleted()
governikus::RemoteServiceModel::setDetectRemoteDevices
void setDetectRemoteDevices(bool pNewStatus)
Definition: RemoteServiceModel.cpp:170
governikus::RemoteServiceModel::knownDevices
RemoteDeviceModel * knownDevices
Definition: RemoteServiceModel.h:38
Env.h
governikus::RemoteServiceModel::getKnownDevices
RemoteDeviceModel * getKnownDevices()
Definition: RemoteServiceModel.cpp:158
governikus::RemoteServiceModel::connectionInfo
QString connectionInfo
Definition: RemoteServiceModel.h:35
governikus::RemoteServiceModel::isConnectedToPairedDevice
bool isConnectedToPairedDevice() const
Definition: RemoteServiceModel.cpp:310
governikus::RemoteServiceModel::setRunning
Q_INVOKABLE void setRunning(bool pState, bool pEnablePairing=false)
Definition: RemoteServiceModel.cpp:110
governikus::RemoteDeviceModel::forgetDevice
void forgetDevice(const QModelIndex &pIndex)
Definition: RemoteDeviceModel.cpp:553
governikus::RemoteServiceModel::fireIsStartingChanged
void fireIsStartingChanged()
RemoteServiceContext.h
governikus::RemoteServiceModel::resetRemoteServiceContext
void resetRemoteServiceContext(const QSharedPointer< RemoteServiceContext > &pContext=QSharedPointer< RemoteServiceContext >())
Definition: RemoteServiceModel.cpp:253
governikus::RemoteServiceModel::getErrorMessage
QString getErrorMessage() const
Definition: RemoteServiceModel.cpp:345
governikus::GlobalStatus
Definition: GlobalStatus.h:20
governikus::RemoteServiceModel::firePairingSuccess
void firePairingSuccess(const QString &pDeviceName)
governikus::RemoteServiceModel::fireConnectedServerDeviceNamesChanged
void fireConnectedServerDeviceNamesChanged()
governikus::RemoteServiceModel::fireServerPskChanged
void fireServerPskChanged()
ApplicationModel.h
governikus::RemoteServiceContext::fireIsRunningChanged
void fireIsRunningChanged()
governikus::RemoteServiceModel::isPairing
bool isPairing
Definition: RemoteServiceModel.h:32
governikus::ReaderFilter
Definition: ReaderFilter.h:21
RemoteDeviceModel.h
RemoteServiceModel.h
governikus::ReaderManager::fireStatusChanged
void fireStatusChanged(const ReaderManagerPlugInInfo &pInfo)
WorkflowModel.h
governikus::RemoteServiceModel::detectRemoteDevices
bool detectRemoteDevices
Definition: RemoteServiceModel.h:40
governikus::RemoteServiceModel::isPairing
bool isPairing()
governikus::RemoteServiceModel::isRunnable
bool isRunnable() const
Definition: RemoteServiceModel.cpp:333
governikus::RemoteServiceModel::errorMessage
QString errorMessage
Definition: RemoteServiceModel.h:31
governikus::RemoteServiceModel::running
bool running
Definition: RemoteServiceModel.h:27
governikus::GlobalStatus::isError
bool isError() const
governikus::ReaderManager::fireReaderAdded
void fireReaderAdded(const ReaderInfo &pInfo)
governikus::RemoteClient::fireNewRemoteDispatcher
void fireNewRemoteDispatcher(const QSharedPointer< RemoteDispatcherClient > &pRemoteDispatcher)
governikus::RemoteServiceModel::combinedDevices
RemoteDeviceModel * combinedDevices
Definition: RemoteServiceModel.h:39
EstablishPaceChannel.h
governikus::RemoteServiceModel::getPsk
QByteArray getPsk() const
Definition: RemoteServiceModel.cpp:351
governikus::ApplicationModel::fireWifiEnabledChanged
void fireWifiEnabledChanged()
governikus::WorkflowModel
Definition: WorkflowModel.h:23
governikus::RemoteServiceModel::fireStartWorkflow
void fireStartWorkflow()
governikus::RemoteServiceModel::getConnectedServerDeviceNames
QString getConnectedServerDeviceNames() const
Definition: RemoteServiceModel.cpp:363
governikus::RemoteServiceSettings::getRemoteInfo
RemoteInfo getRemoteInfo(const QSslCertificate &pCertificate) const
Definition: RemoteServiceSettings.cpp:248
governikus::RemoteServiceModel::fireConnectionInfoChanged
void fireConnectionInfoChanged()
governikus::RemoteServiceModel::remoteReaderVisible
bool remoteReaderVisible
Definition: RemoteServiceModel.h:43