X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=homescreen%2Fsrc%2Fmain.cpp;h=ec0e1c51231c96d4c7b6956717712edd953574cd;hb=537937138e9855408c6b8af4331725c8a1d52705;hp=66ddb75dac614ffd3edf2ccacdc5b8a4a693d80d;hpb=c13f6c196066bccb33c3a1f524a108b52c356bfd;p=apps%2Fhomescreen.git diff --git a/homescreen/src/main.cpp b/homescreen/src/main.cpp index 66ddb75..ec0e1c5 100644 --- a/homescreen/src/main.cpp +++ b/homescreen/src/main.cpp @@ -321,8 +321,7 @@ run_in_thread(GrpcClient *client) static void load_agl_shell_app(QPlatformNativeInterface *native, QQmlApplicationEngine *engine, - struct shell_data shell_data, const char *screen_name, - bool is_demo, GrpcClient *client) + struct shell_data shell_data, const char *screen_name, bool is_demo) { QScreen *screen = nullptr; HomescreenHandler *homescreenHandler = shell_data.homescreenHandler; @@ -418,6 +417,9 @@ int main(int argc, char *argv[]) // we need to have an app_id app.setDesktopFileName("homescreen"); + GrpcClient *client = new GrpcClient(); + // create a new thread to listner for gRPC events + std::thread th = std::thread(run_in_thread, client); register_agl_shell(native, &shell_data); if (!shell_data.shell) { @@ -444,10 +446,6 @@ int main(int argc, char *argv[]) std::shared_ptr agl_shell{shell_data.shell, agl_shell_destroy}; - GrpcClient *client = new GrpcClient(); - // create a new thread to listner for gRPC events - std::thread th = std::thread(run_in_thread, client); - // Import C++ class to QML qmlRegisterType("HomeScreen", 1, 0, "StatusBarModel"); qmlRegisterType("MasterVolume", 1, 0, "MasterVolume"); @@ -459,6 +457,9 @@ int main(int argc, char *argv[]) shell_data.homescreenHandler = homescreenHandler; shell_data.homescreenHandler->setGrpcClient(client); + // blocks until we're sure connected with the server + HMI_DEBUG("HomescreenHandler", "Checking if connected to the gRPC server..."); + client->WaitForConnected(500, 10); client->AppStatusState(app_status_callback, homescreenHandler); QQmlApplicationEngine engine; @@ -470,7 +471,7 @@ int main(int argc, char *argv[]) context->setContextProperty("bluetooth", new Bluetooth(false, context)); load_agl_shell_app(native, &engine, shell_data, - screen_name, is_demo_val, client); + screen_name, is_demo_val); return app.exec(); }