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
QString getConnectedServerDeviceNames() const
Definition: RemoteServiceModel.cpp:297
RemoteDeviceModel * getKnownDevices()
Definition: RemoteServiceModel.cpp:122
Definition: RemoteDeviceList.h:18
RemoteDeviceModel availableRemoteDevices
Definition: RemoteServiceModel.h:36
QString getErrorMessage() const
Definition: RemoteServiceModel.cpp:279
Q_INVOKABLE void setPairing(bool pEnabled=true)
Definition: RemoteServiceModel.cpp:241
static RemoteServiceModel & getInstance()
Definition: RemoteServiceModel.cpp:377
Q_INVOKABLE QString getPasswordType() const
Definition: RemoteServiceModel.cpp:309
void setDetectRemoteDevices(bool pNewStatus)
Definition: RemoteServiceModel.cpp:134
bool isRunning() const
Definition: RemoteServiceModel.cpp:90
QString connectedServerDeviceNames
Definition: RemoteServiceModel.h:35
Q_INVOKABLE void connectToRememberedServer(const QString &pServerPsk)
Definition: RemoteServiceModel.cpp:160
Definition: GlobalStatus.h:19
Definition: RemoteDeviceModel.h:61
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:14
bool isRunnable() const
Definition: RemoteServiceModel.cpp:267
Definition: RemoteServiceContext.h:22
QByteArray psk
Definition: RemoteServiceModel.h:32
void firePairingSuccess(QString pDeviceName)
void firePairingFailed(QString pDeviceName, QString pErrorMessage)
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:116
void setRunning(bool pState)
Definition: RemoteServiceModel.cpp:96
This class represents a connection to a smart card.
Definition: CardConnection.h:39
QString connectionInfo
Definition: RemoteServiceModel.h:34
void resetContext(const QSharedPointer< RemoteServiceContext > &pContext=QSharedPointer< RemoteServiceContext >())
Definition: RemoteServiceModel.cpp:217
Definition: Env.h:38
Q_INVOKABLE void forgetDevice(const QString &pId)
Definition: RemoteServiceModel.cpp:362
bool isConnectedToPairedDevice() const
Definition: RemoteServiceModel.cpp:250
Definition: IfdEstablishPaceChannel.h:13
bool runnable
Definition: RemoteServiceModel.h:29
QByteArray getPsk() const
Definition: RemoteServiceModel.cpp:285
void firePskChanged(const QByteArray &pPsk)
QString getConnectionInfo() const
Definition: RemoteServiceModel.cpp:291
Definition: WifiInfo.h:22
Definition: RemoteServiceModel.h:22
Q_INVOKABLE bool rememberServer(const QString &pDeviceId)
Definition: RemoteServiceModel.cpp:173
bool isCanEnableNfc() const
Definition: RemoteServiceModel.cpp:273
RemoteDeviceModel * getCombinedDevices()
Definition: RemoteServiceModel.cpp:128
Q_INVOKABLE bool pinPadModeOn()
Definition: RemoteServiceModel.cpp:303
bool running
Definition: RemoteServiceModel.h:28
RemoteDeviceModel knownDevices
Definition: RemoteServiceModel.h:37
Q_INVOKABLE void cancelPasswordRequest()
Definition: RemoteServiceModel.cpp:368
Definition: WorkflowModel.h:21