From c0146077906057bf97688a617870228eaad0cf54 Mon Sep 17 00:00:00 2001 From: wang_zhiqiang Date: Wed, 14 Nov 2018 11:14:04 +0800 Subject: add new features in homescreen-service and homescreen homescreen-service: add five verbs. 1.showWindow: instead of tap_shortcut and show onscreen. 2.hideWindow: used when want to hide onscreen. 3.replyShowWindow: used when post onscreen reply information to application. 4.showNotification: used by application who want to display notification on homescreen top area. 5.showInformation: used by application who want to display information on homescreen botton area. homescreen: 1.add fullscreen transfer button. 2.display notification and information. Bug-AGL: SPEC-1931 Change-Id: Ie0753fe0656282b1ff8c04dcef625f2a4154edde Signed-off-by: wang_zhiqiang --- sample/simple-egl/src/simple-egl.cpp | 14 +++++++++++--- sample/template/main.cpp | 27 +++++++++++++-------------- 2 files changed, 24 insertions(+), 17 deletions(-) (limited to 'sample') diff --git a/sample/simple-egl/src/simple-egl.cpp b/sample/simple-egl/src/simple-egl.cpp index 4271a66..aa6ea19 100644 --- a/sample/simple-egl/src/simple-egl.cpp +++ b/sample/simple-egl/src/simple-egl.cpp @@ -569,9 +569,17 @@ init_hs(LibHomeScreen* hs){ return -1; } - hs->set_event_handler(LibHomeScreen::Event_TapShortcut, [](json_object *object){ - HMI_DEBUG("simple-egl","try to activesurface %s ", app_name.c_str()); - wm->activateWindow(main_role); + hs->set_event_handler(LibHomeScreen::Event_ShowWindow, [hs](json_object *object){ + HMI_DEBUG("simple-egl","try to activeWindow %s ", app_name.c_str()); + + struct json_object *param_obj = json_object_object_get(object, hs->_keyParameter); + const char *area = json_object_get_string( + json_object_object_get(param_obj, hs->_keyArea)); + // Application should call LibWindowmanager::activateWindow() in showWindow handler + if(area == nullptr) + wm->activateWindow(main_role, hs->_areaNormal); + else + wm->activateWindow(main_role, area); }); return 0; diff --git a/sample/template/main.cpp b/sample/template/main.cpp index fef270b..848d2c5 100644 --- a/sample/template/main.cpp +++ b/sample/template/main.cpp @@ -90,9 +90,7 @@ int main(int argc, char *argv[]) } // Application should call requestSurface at first - json_object *obj = json_object_new_object(); - json_object_object_add(obj, wm->kKeyDrawingName, json_object_new_string(app_name.c_str())); - if (wm->requestSurface(obj) != 0) { + if (wm->requestSurface(myname.c_str()) != 0) { exit(EXIT_FAILURE); } @@ -122,11 +120,9 @@ int main(int argc, char *argv[]) json_object_object_get(object, wm->kKeyDrawingName)); const char *area = json_object_get_string( json_object_object_get(object, wm->kKeyDrawingArea)); - fprintf(stderr, "Surface %s got syncDraw!\n", label); + fprintf(stderr, "Surface %s got syncDraw! area: %s.\n", label, area); // Application should call LibWindowmanager::endDraw() in SyncDraw handler - json_object *obj = json_object_new_object(); - json_object_object_add(obj, wm->kKeyDrawingName, json_object_new_string(app_name.c_str())); - wm->endDraw(obj); + wm->endDraw(app_name.c_str()); }); wm->set_event_handler(LibWindowmanager::Event_FlushDraw, [wm](json_object *object) { const char *label = json_object_get_string( @@ -145,13 +141,16 @@ int main(int argc, char *argv[]) hs->init(port, token.c_str()); // Set event handler - hs->set_event_handler(LibHomeScreen::Event_TapShortcut, [wm](json_object *object) { - qDebug("Surface %s got tapShortcut\n", myname.c_str()); - // Application should call LibWindowmanager::endDraw() in TapShortcut handler - json_object *obj = json_object_new_object(); - json_object_object_add(obj, wm->kKeyDrawingName, json_object_new_string(myname.c_str())); - json_object_object_add(obj, wm->kKeyDrawingArea, json_object_new_string("normal.full")); - wm->activateSurface(obj); + hs->set_event_handler(LibHomeScreen::Event_ShowWindow, [hs, wm](json_object *object) { + qDebug("Surface %s got showWindow\n", myname.c_str()); + struct json_object *param_obj = json_object_object_get(object, hs->_keyParameter); + const char *area = json_object_get_string( + json_object_object_get(param_obj, hs->_keyArea)); + // Application should call LibWindowmanager::activateWindow() in showWindow handler + if(area == nullptr) + wm->activateWindow(myname.c_str(), hs->_areaNormal); + else + wm->activateWindow(myname.c_str(), area); }); /* -- cgit 1.2.3-korg