AusweisApp2
AppController.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include "ActivationController.h"
10 #include "EnumHelper.h"
11 
12 #include <QAbstractNativeEventFilter>
13 #include <QSharedPointer>
14 
15 class test_AppController;
16 
17 namespace governikus
18 {
19 
21  NONE,
22  AUTH,
23  SELF,
24  PIN,
25  READER_SETTINGS,
26  REMOTE_SERVICE)
27 
28 
29 class WorkflowController;
30 class WorkflowRequest;
31 class CommandLineParser;
32 
33 class AppController final
34  : public QObject
35  , public QAbstractNativeEventFilter
36 {
37  Q_OBJECT
38 
39  private:
40  friend class ::test_AppController;
41  Q_DISABLE_COPY(AppController)
42 
43  friend class SignalHandler;
44  friend class CommandLineParser;
45 
46  static bool cShowUi;
47  Action mCurrentAction;
48  QScopedPointer<WorkflowRequest> mWaitingRequest;
49  QScopedPointer<WorkflowController> mActiveController;
50  ActivationController mActivationController;
51  bool mShutdownRunning;
52  const UIPlugIn* mUiDomination;
53  bool mRestartApplication;
54  int mExitCode;
55 
56  [[nodiscard]] bool canStartNewAction() const;
57  void completeShutdown();
58 
59  public:
60  AppController();
61  ~AppController() override;
62 
63  bool eventFilter(QObject* pObj, QEvent* pEvent) override;
64 
65 #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
66  bool nativeEventFilter(const QByteArray& pEventType, void* pMessage, qintptr* pResult) override;
67 #else
68  bool nativeEventFilter(const QByteArray& pEventType, void* pMessage, long* pResult) override;
69 #endif
70 
71  bool start();
72 
73  [[nodiscard]] bool shouldApplicationRestart() const;
74 
75  Q_SIGNALS:
77  void fireStarted();
78  void fireShutdown();
79  void fireWorkflowStarted(QSharedPointer<WorkflowContext> pContext);
80  void fireWorkflowFinished(QSharedPointer<WorkflowContext> pContext);
81  void fireShowUi(UiModule pModule);
82  void fireHideUi();
83  void fireShowUserInformation(const QString& pInformationMessage);
86  void fireProxyAuthenticationRequired(const QNetworkProxy& pProxy, QAuthenticator* pAuthenticator);
88  void fireUiDomination(const UIPlugIn* pUi, const QString& pInformation, bool pAccepted);
90 
91  private Q_SLOTS:
92  void doShutdown();
93  void doShutdown(int pExitCode);
94  void onUiPlugin(UIPlugIn* pPlugin);
95  void onWorkflowFinished();
96  void onCloseReminderFinished(bool pDontRemindAgain);
97  void onChangePinRequested(bool pRequestTransportPin);
98  void onSelfAuthenticationRequested();
99  void onAuthenticationRequest(const QUrl& pUrl);
100  void onAuthenticationContextRequest(const QSharedPointer<ActivationContext>& pActivationContext);
101  void onRemoteServiceRequested();
102  void onLanguageChanged();
103  void onUILoaderShutdownComplete();
104  void onUiDominationRequested(const UIPlugIn* pUi, const QString& pInformation);
105  void onUiDominationRelease();
106  void onRestartApplicationRequested();
107 
108  private:
109  template<typename Controller, typename Context> bool startNewWorkflow(Action pAction, const QSharedPointer<Context>& pContext);
110  static void clearCacheFolders();
111 
112 };
113 
114 } // namespace governikus
governikus::AppController::fireHideUi
void fireHideUi()
governikus::AppController::fireShowReaderSettings
void fireShowReaderSettings()
AuthContext.h
ReaderManager.h
governikus::WorkflowController
Definition: WorkflowController.h:20
governikus::AppController::nativeEventFilter
bool nativeEventFilter(const QByteArray &pEventType, void *pMessage, qintptr *pResult) override
Definition: AppController.cpp:598
governikus::LanguageLoader::isLoaded
bool isLoaded() const
Definition: LanguageLoader.cpp:121
governikus::ReaderManager::shutdown
void shutdown()
Shuts down the reader manager service.
Definition: ReaderManager.cpp:104
governikus::WorkflowRequest::WorkflowRequest
WorkflowRequest(Action pAction, const QSharedPointer< WorkflowContext > &pContext)
Definition: AppController.cpp:70
governikus::WorkflowRequest::getAction
Action getAction() const
Definition: AppController.cpp:78
governikus::LanguageLoader::unload
void unload()
Definition: LanguageLoader.cpp:156
governikus::AuthContext
Definition: AuthContext.h:49
ActivationController.h
governikus::AppController::fireShutdown
void fireShutdown()
governikus::NetworkManager::setApplicationProxyFactory
static void setApplicationProxyFactory()
Definition: NetworkManager.cpp:360
governikus::LanguageLoader::load
void load(const QLocale &pLocale=getDefaultLanguage())
Definition: LanguageLoader.cpp:127
AppSettings.h
LogHandler.h
governikus::ActivationController::getHandler
const QVector< ActivationHandler * > & getHandler() const
Definition: ActivationController.cpp:58
governikus::ChangePinContext
Definition: ChangePinContext.h:16
UILoader.h
SecureStorage.h
governikus::AppController::fireProxyAuthenticationRequired
void fireProxyAuthenticationRequired(const QNetworkProxy &pProxy, QAuthenticator *pAuthenticator)
governikus::AppController::fireInitialized
void fireInitialized()
RemoteClient.h
governikus::WorkflowController::fireComplete
void fireComplete()
NetworkManager.h
governikus::AppController::fireWorkflowFinished
void fireWorkflowFinished(QSharedPointer< WorkflowContext > pContext)
governikus::AppController::fireShowUi
void fireShowUi(UiModule pModule)
SelfAuthController.h
RemoteServiceController.h
ChangePinContext.h
governikus::GeneralSettings::fireLanguageChanged
void fireLanguageChanged()
ResourceLoader.h
governikus
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15
governikus::WorkflowRequest::~WorkflowRequest
~WorkflowRequest()=default
governikus::AppController::fireApplicationActivated
void fireApplicationActivated()
governikus::ResourceLoader::init
void init()
Definition: ResourceLoader.cpp:35
governikus::ActivationController
Definition: ActivationController.h:16
governikus::defineEnumType
defineEnumType(KeyAgreementType, DH, ECDH) defineEnumType(MappingType
Method used for key agreement:
governikus::CommandLineParser
Definition: CommandLineParser.h:16
SelfAuthContext.h
governikus::AppController::fireTranslationChanged
void fireTranslationChanged()
governikus::AppController
Definition: AppController.h:36
governikus::WorkflowContext
Definition: WorkflowContext.h:24
governikus::AUTH
AUTH
Definition: MsgTypes.h:25
governikus::AppController::~AppController
~AppController() override
Definition: AppController.cpp:124
governikus::AppController::AppController
AppController()
Definition: AppController.cpp:96
governikus::WorkflowRequest
Definition: AppController.cpp:47
EnumHelper.h
UIPlugIn.h
governikus::ReaderManager::fireInitialized
void fireInitialized()
governikus::AppController::fireShowUserInformation
void fireShowUserInformation(const QString &pInformationMessage)
RemoteServiceContext.h
governikus::AppController::fireStarted
void fireStarted()
governikus::LanguageLoader
Definition: LanguageLoader.h:23
AppController.h
governikus::NetworkManager::onShutdown
void onShutdown()
Definition: NetworkManager.cpp:143
governikus::AppController::shouldApplicationRestart
bool shouldApplicationRestart() const
Definition: AppController.cpp:225
InternalActivationContext.h
governikus::AppController::fireUiDomination
void fireUiDomination(const UIPlugIn *pUi, const QString &pInformation, bool pAccepted)
governikus::NetworkManager::fireProxyAuthenticationRequired
void fireProxyAuthenticationRequired(const QNetworkProxy &pProxy, QAuthenticator *pAuthenticator)
governikus::AppController::start
bool start()
Definition: AppController.cpp:159
governikus::LanguageLoader::getInstance
static LanguageLoader & getInstance()
governikus::ResourceLoader::getInstance
static ResourceLoader & getInstance()
governikus::WorkflowRequest::getContext
QSharedPointer< WorkflowContext > getContext() const
Definition: AppController.cpp:84
governikus::ResourceLoader::shutdown
void shutdown()
Definition: ResourceLoader.cpp:59
governikus::AppController::fireWorkflowStarted
void fireWorkflowStarted(QSharedPointer< WorkflowContext > pContext)
AuthController.h
ChangePinController.h
governikus::AppController::fireUiDominationReleased
void fireUiDominationReleased()
LanguageLoader.h
governikus::SignalHandler
Definition: SignalHandler.h:25
governikus::LanguageLoader::getUsedLocale
const QLocale & getUsedLocale() const
Definition: LanguageLoader.cpp:176
governikus::AppController::eventFilter
bool eventFilter(QObject *pObj, QEvent *pEvent) override
Definition: AppController.cpp:130
governikus::ActivationController::shutdown
void shutdown()
Definition: ActivationController.cpp:47