AglShellGrpcClient: Activate windows with gRPC
[apps/homescreen.git] / homescreen / src / homescreenhandler.h
index 503221a..478d9fc 100644 (file)
@@ -1,68 +1,49 @@
+// SPDX-License-Identifier: Apache-2.0
 /*
  * Copyright (c) 2017 TOYOTA MOTOR CORPORATION
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Copyright (c) 2022 Konsulko Group
  */
 
 #ifndef HOMESCREENHANDLER_H
 #define HOMESCREENHANDLER_H
 
 #include <QObject>
+#include <string>
 
 #include "applicationlauncher.h"
-#include "applaunch_interface.h"
-
-#include "shell.h"
-#include <string>
+#include "AppLauncherClient.h"
+#include "AglShellGrpcClient.h"
 
 using namespace std;
 
 class HomescreenHandler : public QObject
 {
-    Q_OBJECT
+       Q_OBJECT
 public:
-    explicit HomescreenHandler(Shell *aglShell, ApplicationLauncher *launcher = 0, QObject *parent = 0);
-    ~HomescreenHandler();
-
-    void init(void);
-
-    Q_INVOKABLE void tapShortcut(QString application_id);
+       explicit HomescreenHandler(ApplicationLauncher *launcher = 0, GrpcClient *_client = nullptr, QObject *parent = 0);
+       ~HomescreenHandler();
 
-#if 0
-    void onRep(struct json_object* reply_contents);
-    void onEv(const string& event, struct json_object* event_contents);
-#endif
-    static void* myThis;
-#if 0
-    static void onRep_static(struct json_object* reply_contents);
-    static void onEv_static(const string& event, struct json_object* event_contents);
-#endif
+       Q_INVOKABLE void tapShortcut(QString application_id);
 
-    void addAppToStack(const QString& application_id);
+       void addAppToStack(const QString& application_id);
+       void activateApp(const QString& app_id);
+       void deactivateApp(const QString& app_id);
+       void setGrpcClient(GrpcClient *_client) { m_grpc_client = _client; }
+       GrpcClient *getGrpcClient(void) { return m_grpc_client; }
 
+       QStringList apps_stack;
+       std::list<std::pair<const QString, const QString>> pending_app_list;
 signals:
-    void showNotification(QString application_id, QString icon_path, QString text);
-    void showInformation(QString info);
+       void showNotification(QString application_id, QString icon_path, QString text);
+       void showInformation(QString info);
 
 public slots:
-    void appStarted(const QString& application_id);
-    void appTerminated(const QString& application_id);
+       void processAppStatusEvent(const QString &id, const QString &status);
 
 private:
-    ApplicationLauncher *mp_launcher;
-    Shell *aglShell;
-    org::automotivelinux::AppLaunch *applaunch_iface;
-    QStringList apps_stack;
+       ApplicationLauncher *mp_launcher;
+       AppLauncherClient *mp_applauncher_client;
+       GrpcClient *m_grpc_client;
 };
 
 #endif // HOMESCREENHANDLER_H