-Make the SampleNav app yellow. 01/7101/1
authorBocklage, Jens <Jens_Bocklage@mentor.com>
Tue, 8 Nov 2016 19:28:41 +0000 (20:28 +0100)
committerBocklage, Jens <Jens_Bocklage@mentor.com>
Tue, 8 Nov 2016 19:28:41 +0000 (20:28 +0100)
-Preparation for the new ApplicationFramework binding. The App Framework provides more information.
--Adding afm D-Bus-interface introspection
--Updating the AppInfo datatype to hold the new data:
  The application info consists of:
  string id;
  string version;
  int width;
  int height;
  string name;
  string description;
  string shortname;
  string author;
  string iconPath;
-When pressing the AppLauncher Button or the Settings Button, the app layer is hidden.
--Therefore, shideLayer and showLayer is introduced in the WindowManager API
-If an application does not create its surface instantly, the HomeScreen retries to show the surface related to the pid.
-New WindowManager function deleteLayoutById
-Implement the complete HomeScreen API in the libhomescreen

To build:
enable some features:

source meta-agl/scripts/aglsetup.sh -m porter -b build-porter agl-demo agl-appfw-smack agl-devel

Add HomeScreen to the agl-demo-platform.bb file:

IMAGE_INSTALL_append = " \
    ces2017-demo \
    can-utils iproute2 \
    python-curses \
    dhcp-client \
    climatecontrolplugin \
    Navigation \
    HomeScreen \                    <-----
    ${IMAGE_TTF_FONTS} \
    "

The latest app-framework-main is needed:
Edit file:
meta-app-framework/recipes-core/af-main/af-main_1.0.inc
-SRCREV = "c31038db1cff938d7fa1f12f757c1c57ab51c0bd"
+SRCREV = "cdcf4b4caa5d02a626c2e7075126e395a72f58a0"

Build it:
bitbake agl-demo-platform

When writing the SD-Card, make sure you preserve the extended attributes!
You need at minimum tar v1.28.
You will find this version also in the sysroot!
So you may want to use it:
sudo [..]/sysroots/i686-linux/usr/bin/tar-native/tar xpj --xattrs-include='*' --directory=<sdcard> --file=agl-demo-platform-porter.tar.bz2

We need the IVI-shell, so edit the file weston.ini on the target:
vi /etc/xdg/weston/weston.ini

[core]
shell=ivi-shell.so

[ivi-shell]
ivi-module=ivi-controller.so
ivi-shell-user-interface=/usr/lib/weston/weston-ivi-shell-user-interface

[output]
name=HDMI-A-1
transform=270

If you want to test it, you can download a sample app here:

wget http://iot.bzh/download/public/2016/afb-demos/txc-demo_0.1.wgt
afm-util install txc-demo_0.1.wgt

Qt apps need an environement variable set, so we need to change the start script:
vi /usr/bin/web-runtime

export QT_WAYLAND_SHELL_INTEGRATION="ivi-shell"
LD_PRELOAD=/usr/lib/libEGL.so exec /usr/bin/qt5/qmlscene "$1" /usr/bin/web-runtime-webkit.qml
(this is already in gerrit review: https://gerrit.automotivelinux.org/gerrit/#/c/7077/ )

reboot

To start everything:

cd /opt/AGL/HomeScreen

./WindowManager &
./HomeScreenAppFrameworkBinderAGL &
QT_IVI_SURFACE_ID=1000 QT_WAYLAND_SHELL_INTEGRATION="ivi-shell" ./HomeScreen &

Now you can click the txc-demo and it will show up.

Signed-off-by: Bocklage, Jens <Jens_Bocklage@mentor.com>
recipes-demo-hmi/HomeScreen/HomeScreen_0.6.0.bb [moved from recipes-demo-hmi/HomeScreen/HomeScreen_0.4.0.bb with 82% similarity]

@@ -1,9 +1,9 @@
 SUMMARY     = "AGL Home Screen Application"
-DESCRIPTION = "AGL Home Screen Application + SampleAppTimeDate + HomeScreenAppFrameworkBinderTizen + WindowManager + InputEventManager"
+DESCRIPTION = "AGL Home Screen Application + SampleAppTimeDate + HomeScreenAppFrameworkBinderAGL + WindowManager + InputEventManager + two sample apps (QML and Qtwidget)"
 HOMEPAGE    = "https://wiki.automotivelinux.org/homescreen"
 LICENSE     = "Apache-2.0"
 SECTION     = "apps"
-PV          = "0.4.0+gitr${SRCPV}"
+PV          = "0.6.0+gitr${SRCPV}"
 PR          = "r1"
 S           = "${WORKDIR}/git/"
 
@@ -11,14 +11,14 @@ inherit qmake5
 DEPENDS = " qtbase "
 
 # for HomeScreenAppFrameworkBinderTizen:
-DEPENDS += " pkgmgr-info aul "
+#DEPENDS += " pkgmgr-info aul "
 # for WindowManager:
 DEPENDS += " wayland-ivi-extension "
 # for libhomescreen
 DEPENDS += " glib-2.0 "
 
 LIC_FILES_CHKSUM = "file://HomeScreen/LICENSE;md5=ae6497158920d9524cf208c09cc4c984"
-SRCREV  = "ec688535558c31989e7da221b858328b2e0766c8"
+SRCREV  = "61d3f0e1e2210d6108953b0433324a3365d9dab6"
 SRC_URI = "git://gerrit.automotivelinux.org/gerrit/p/staging/HomeScreen.git;protocol=http"
 
 
@@ -34,9 +34,11 @@ do_install() {
     cp -r ${B}/HomeScreen/colorschemes/* ${D}/opt/AGL/${PN}/colorschemes/
     install -m 0755 ${B}/SampleAppTimeDate/SampleAppTimeDate ${D}/opt/AGL/${PN}/
     install -m 0755 ${B}/SampleHomeScreenInterfaceApp/SampleHomeScreenInterfaceApp ${D}/opt/AGL/${PN}/
-    install -m 0755 ${B}/HomeScreenAppFrameworkBinderTizen/HomeScreenAppFrameworkBinderTizen ${D}/opt/AGL/${PN}/
+    install -m 0755 ${B}/HomeScreenAppFrameworkBinderAGL/HomeScreenAppFrameworkBinderAGL ${D}/opt/AGL/${PN}/
     install -m 0755 ${B}/WindowManager/WindowManager ${D}/opt/AGL/${PN}/
     install -m 0755 ${B}/InputEventManager/InputEventManager ${D}/opt/AGL/${PN}/
+    install -m 0755 ${B}/SampleNavigationApp/SampleNavigationApp ${D}/opt/AGL/${PN}/
+    install -m 0755 ${B}/SampleMediaApp/SampleMediaApp ${D}/opt/AGL/${PN}/
     
     install -d ${D}/usr/lib
     install -m 0644 ${B}/libhomescreen/libhomescreen.so.1.0.0 ${D}/usr/lib/