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)
37  Q_PROPERTY(RemoteDeviceModel * knownDevices READ getKnownDevices 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);
80  bool detectRemoteDevices();
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:
101  void fireIsRunningChanged();
102  void fireEnvironmentChanged();
103  void firePskChanged(const QByteArray& pPsk);
104  void fireConnectedChanged();
105  void fireServerPskChanged();
106  void fireDetectionChanged();
107  void firePairingFailed(QString pDeviceName, QString pErrorMessage);
108  void firePairingSuccess(QString pDeviceName);
112 };
113 
114 
115 } // namespace governikus
void fireServerPskChanged()
Definition: moc_RemoteServiceModel.cpp:483
void fireEstablishPaceChannelMessageUpdated()
Definition: moc_RemoteServiceModel.cpp:521
QString getConnectedServerDeviceNames() const
Definition: RemoteServiceModel.cpp:296
RemoteDeviceModel * getKnownDevices()
Definition: RemoteServiceModel.cpp:121
Definition: RemoteDeviceList.h:18
RemoteDeviceModel availableRemoteDevices
Definition: RemoteServiceModel.h:36
QString getErrorMessage() const
Definition: RemoteServiceModel.cpp:278
Q_INVOKABLE void setPairing(bool pEnabled=true)
Definition: RemoteServiceModel.cpp:240
static RemoteServiceModel & getInstance()
Definition: RemoteServiceModel.cpp:376
Q_INVOKABLE QString getPasswordType() const
Definition: RemoteServiceModel.cpp:308
void setDetectRemoteDevices(bool pNewStatus)
Definition: RemoteServiceModel.cpp:133
bool isRunning() const
Definition: RemoteServiceModel.cpp:89
void fireIsRunningChanged()
Definition: moc_RemoteServiceModel.cpp:458
QString connectedServerDeviceNames
Definition: RemoteServiceModel.h:35
Q_INVOKABLE void connectToRememberedServer(const QString &pServerPsk)
Definition: RemoteServiceModel.cpp:159
Definition: GlobalStatus.h:19
Definition: RemoteDeviceModel.h:61
void fireConnectionInfoChanged()
Definition: moc_RemoteServiceModel.cpp:509
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:14
bool isRunnable() const
Definition: RemoteServiceModel.cpp:266
Definition: RemoteServiceContext.h:22
QByteArray psk
Definition: RemoteServiceModel.h:32
void firePairingSuccess(QString pDeviceName)
Definition: moc_RemoteServiceModel.cpp:502
void firePairingFailed(QString pDeviceName, QString pErrorMessage)
Definition: moc_RemoteServiceModel.cpp:495
bool connectedToPairedDevice
Definition: RemoteServiceModel.h:33
QString errorMessage
Definition: RemoteServiceModel.h:31
bool canEnableNfc
Definition: RemoteServiceModel.h:30
RemoteDeviceModel combinedDevices
Definition: RemoteServiceModel.h:38
RemoteDeviceModel * getAvailableRemoteDevices()
Definition: RemoteServiceModel.cpp:115
void fireDetectionChanged()
Definition: moc_RemoteServiceModel.cpp:489
void setRunning(bool pState)
Definition: RemoteServiceModel.cpp:95
void fireConnectedChanged()
Definition: moc_RemoteServiceModel.cpp:477
This class represents a connection to a smart card.
Definition: CardConnection.h:39
QString connectionInfo
Definition: RemoteServiceModel.h:34
void fireConnectedServerDeviceNamesChanged()
Definition: moc_RemoteServiceModel.cpp:515
void resetContext(const QSharedPointer< RemoteServiceContext > &pContext=QSharedPointer< RemoteServiceContext >())
Definition: RemoteServiceModel.cpp:216
Definition: Env.h:38
Q_INVOKABLE void forgetDevice(const QString &pId)
Definition: RemoteServiceModel.cpp:361
bool isConnectedToPairedDevice() const
Definition: RemoteServiceModel.cpp:249
void fireEnvironmentChanged()
Definition: moc_RemoteServiceModel.cpp:464
Definition: IfdEstablishPaceChannel.h:13
bool runnable
Definition: RemoteServiceModel.h:29
QByteArray getPsk() const
Definition: RemoteServiceModel.cpp:284
void firePskChanged(const QByteArray &pPsk)
Definition: moc_RemoteServiceModel.cpp:470
QString getConnectionInfo() const
Definition: RemoteServiceModel.cpp:290
Definition: WifiInfo.h:22
Definition: RemoteServiceModel.h:22
Q_INVOKABLE bool rememberServer(const QString &pDeviceId)
Definition: RemoteServiceModel.cpp:172
bool isCanEnableNfc() const
Definition: RemoteServiceModel.cpp:272
RemoteDeviceModel * getCombinedDevices()
Definition: RemoteServiceModel.cpp:127
Q_INVOKABLE bool pinPadModeOn()
Definition: RemoteServiceModel.cpp:302
bool running
Definition: RemoteServiceModel.h:28
RemoteDeviceModel knownDevices
Definition: RemoteServiceModel.h:37
Q_INVOKABLE void cancelPasswordRequest()
Definition: RemoteServiceModel.cpp:367
Definition: WorkflowModel.h:21