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
Definition: Env.h:39
Definition: GlobalStatus.h:20
Definition: RemoteDeviceModel.h:63
Definition: RemoteServiceModel.h:24
QByteArray psk
Definition: RemoteServiceModel.h:32
Q_INVOKABLE void connectToRememberedServer(const QString &pServerPsk)
Definition: RemoteServiceModel.cpp:160
Q_INVOKABLE bool pinPadModeOn()
Definition: RemoteServiceModel.cpp:303
bool running
Definition: RemoteServiceModel.h:28
void setDetectRemoteDevices(bool pNewStatus)
Definition: RemoteServiceModel.cpp:134
bool connectedToPairedDevice
Definition: RemoteServiceModel.h:33
bool isRunnable() const
Definition: RemoteServiceModel.cpp:267
bool isSaCPinChangeWorkflow
Definition: RemoteServiceModel.h:40
Q_INVOKABLE void forgetDevice(const QString &pId)
Definition: RemoteServiceModel.cpp:362
bool canEnableNfc
Definition: RemoteServiceModel.h:30
void resetContext(const QSharedPointer< RemoteServiceContext > &pContext=QSharedPointer< RemoteServiceContext >())
Definition: RemoteServiceModel.cpp:217
QString connectionInfo
Definition: RemoteServiceModel.h:34
Q_INVOKABLE void setPairing(bool pEnabled=true)
Definition: RemoteServiceModel.cpp:241
QString getErrorMessage() const
Definition: RemoteServiceModel.cpp:279
Q_INVOKABLE QString getPasswordType() const
Definition: RemoteServiceModel.cpp:309
void firePairingSuccess(QString pDeviceName)
RemoteDeviceModel * getCombinedDevices()
Definition: RemoteServiceModel.cpp:128
RemoteDeviceModel * knownDevices
Definition: RemoteServiceModel.h:37
bool isConnectedToPairedDevice() const
Definition: RemoteServiceModel.cpp:250
QString connectedServerDeviceNames
Definition: RemoteServiceModel.h:35
RemoteDeviceModel * getAvailableRemoteDevices()
Definition: RemoteServiceModel.cpp:116
static RemoteServiceModel & getInstance()
Definition: RemoteServiceModel.cpp:377
RemoteDeviceModel * availableRemoteDevices
Definition: RemoteServiceModel.h:36
bool runnable
Definition: RemoteServiceModel.h:29
void firePskChanged(const QByteArray &pPsk)
QString getConnectionInfo() const
Definition: RemoteServiceModel.cpp:291
~RemoteServiceModel() override=default
void setRunning(bool pState)
Definition: RemoteServiceModel.cpp:96
Q_INVOKABLE bool rememberServer(const QString &pDeviceId)
Definition: RemoteServiceModel.cpp:173
RemoteDeviceModel * combinedDevices
Definition: RemoteServiceModel.h:38
QString getConnectedServerDeviceNames() const
Definition: RemoteServiceModel.cpp:297
Q_INVOKABLE void cancelPasswordRequest()
Definition: RemoteServiceModel.cpp:368
QByteArray getPsk() const
Definition: RemoteServiceModel.cpp:285
QString errorMessage
Definition: RemoteServiceModel.h:31
bool isCanEnableNfc() const
Definition: RemoteServiceModel.cpp:273
RemoteDeviceModel * getKnownDevices()
Definition: RemoteServiceModel.cpp:122
bool detectRemoteDevices
Definition: RemoteServiceModel.h:39
void firePairingFailed(QString pDeviceName, QString pErrorMessage)
bool isRunning() const
Definition: RemoteServiceModel.cpp:90
Definition: WifiInfo.h:24
Definition: WorkflowModel.h:23
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15