summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2024-01-15homescreenhandler: Fix activation on the default use-caseMarius Vlad1-0/+2
We seem to be missing one of the branches that searches for a pending output to activate. This is only been seen when setting the application from the start to a different output. Anotehr oversight from gRPC proxy changes. Fixes AglShellGrpcClient: Activate windows with gRPC Bug-AGL: SPEC-5048 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I138b47915f5a532c8f7321f04b5e9daa7a63de64
2023-11-14homescreen/meson.build: Bump for compositor updateMarius Vlad1-1/+2
Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I8c5b3b4082927b2cb63c0b7afc921366907aef47
2023-10-26homescreen: Re-work gRPC client start-upMarius Vlad3-19/+25
And start the gRPC client as soon as possible and just wait for a connected status after we bounded to the agl-shell extension/interface. Bug-AGL: SPEC-4912 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I26da89dd6aaf1b5c2357d70dcaed7622c1892c31
2023-10-26homescreen/src/shell: Cleanup older shell source file not neededMarius Vlad4-151/+2
We're no longer need it, so it would better to just remove it. We still use the agl-shell for setting the wayland surfaces, but we don't use the Shell object wrapper for that. Bug-AGL: SPEC-4912 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I3776cd25e312f6ed128bbe14b187607f4b607541
2023-10-26AglShellGrpcClient: Activate windows with gRPCMarius Vlad4-29/+90
In order to use HomescreenHandler we need to have a way to pass it, so extend the callback mechanism to be able to pass other objects as well. HomescreenHandler is the one that handles, indirectly, the activation and that keeps track of the application status. We used in the direct wayland event handler to we're going to re-use it as well. Bug-AGL: SPEC-4912 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I6eae6a5c4e144f3024dfcad6e5e0a54a8fec78a6
2023-10-26AglShellGrpcClient: Add activation with gRPC proxyMarius Vlad7-42/+486
This follow-ups in footsteps of flutter-homescreen to have activation using gRPC. Note that setting up wayland surfaces is still need to have the agl-shell protocol available. In Qt this is managed directly by Qt/QPA while on other toolkits this happens at a lower level (flutter-auto or chromium CEF). With it, create a listening thread for gRRC events in order to perform the initial start + activate sequence. Bug-AGL: SPEC-4912 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I019d0e7944dde02c84b2841e22d3971f226d610a
2023-09-01homescreenhandler: Handle output identification betterMarius Vlad1-4/+45
Rather than presume that we always have a valid QScreen, add a couple of check against an invalid ones and add a further check for testing against remote (remoting, streaming type of outputs) and compose the output with the one provided by the compositor, which is under "connector-output_name", which for remoting type of outputs accounts to "remoting-remote-X" where X is an natural number starting from 1. This also removes a warning about unused native variable in the HomeScreenHandler constructor. Bug-AGL: SPEC-4897 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I1557065497c1172cf8a3e723cbac8b686ffcfead
2023-08-25Merge "Update VehicleSignals usage"Scott Murray2-52/+32
2023-08-24Update VehicleSignals usageScott Murray2-52/+32
Update usage of the VehicleSignals class from libqtappfw to work with its changes to switch to using the KUKSA.val databroker. Changes: - Update set calls to use appropriate type for the signal. - Remove authorized & disconnected signal handling, as they are no-ops now. Bug-AGL: SPEC-4762 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: I84f9d8fa5f0c516b2f2953f8ab61797484270c95
2023-06-20meson.build: restore compatibility with meson in kirkstoneDenys Dmytriyenko1-1/+2
The version of meson in kirkstone doesn't yet have the "version" method in output of find_program(), only in dependency(). The previous change was too aggressive requiring too newer version of meson than what is available in kirkstone, so restore the compatibility back. Bug-AGL: SPEC-4578 Signed-off-by: Denys Dmytriyenko <denys@konsulko.com> Change-Id: I14bc5ce114f24d0fac85a4eddac34277e46970a8
2023-06-09meson.build: replace get_pkgconfig_variable with get_variableDenys Dmytriyenko1-4/+3
Newer meson requires using get_variable(pkgconfig: ...) instead of get_pkgconfig_variable() and results in this error: | ../git/homescreen/meson.build:23: WARNING: Project targets '>= 0.60.0' but uses feature deprecated since '0.56.0': dependency.get_pkgconfig_variable. use dependency.get_variable(pkgconfig : ...) instead Also, look for wayland-scanner program directly, instead of querying pkgconfig, so it works properly with OE recipe-specific sysroot. Bug-AGL: SPEC-4578 Signed-off-by: Denys Dmytriyenko <denys@konsulko.com> Change-Id: I57abc17abea31883c9cc63419a0c2a868e262bba
2023-04-27homescreenhandler: Handle dynamic movement of windowsMarius Vlad3-1/+26
Between different outputs. This works in connection with the changes from the compositor. Bug-AGL: SPEC-4673 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Ia2842f40f39bd09dfb4781b52cc6750cd73fe0f5
2023-04-20homescreenhandler: Add support for starting apps on different outputsMarius Vlad3-18/+69
Using the agl-shell protocol. This also needs a bump to version 8 of the agl-shell protocol to be able to receive events. Bug-AGL: SPEC-4529 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I2989ebc8eb36b8b1272782e5986017e9b557cab7
2023-03-08homescreen: Only keep the multiple surfaces approach in CIMarius Vlad1-82/+75
And, use by default, the single background surface. This keeps the multiple surfaces on CI, to at least have some code that stress that code in the compositor. Bug-AGL: SPEC-4712 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I8f9ef17e39e829eff08c3608e405e1d9f85575d4
2023-02-15homescreenhandler: Avoid using a stale wl_outputMarius Vlad2-3/+4
Rather than storing wl_output when creating a HomeScreenHandler object, retrieve the output at activation. Presumably, we could use Screen and from there get it but seems to be easier this way. Re-plugging the connector back and forth would result in a stale wl_output, so this would retrieve it always as the currently enabled/active one. Bug-AGL: SPEC-4705 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Id54c1f253b094e196c6bd367c7419c0ec5860d5f
2023-02-15meson.build: Bump to the latest agl-compositor versionMarius Vlad1-1/+1
We've previously bumped the compositor to a newer version so we need to do the same for the shell client as well. Bug-AGL: SPEC-4705 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Ie40e3acb21b9ee854e6cb79cc135e6ba8487c5ab
2023-01-20homescreen: Add support for defining an activation areaMarius Vlad7-27/+252
This is an example on how to use it, and it enables a new variable HOMESCREEN_EMBEDDED_PANELS to test it out. It gives out the same rectangle are we have in the homescreen demo, but the panels are this time embedded into the background surface, rather than being a separate surface. This introduces a new Qml file, background_with_panels which integrates both the top and the bottom panel into a single qml, which main.cpp loads. While at it, this corrects up the indentation we have in shell.cpp file and sets up the default output in homeScreenHandler constructor. Due to this way integrates and works, it should *not* be visual change between the two (the normal, two panel surfaces) and this version. It can used as a example how to integrate this better, when managing multiple surfaces is not easy to be done by the toolkit or runtime. Bug-AGL: SPEC-4594 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Ibe274b336b15e9713d0cdded5424cc8e92257d7f
2022-10-07homescreen: Change from qmake to mesonMarius Vlad8-73/+135
This change will basically make way for adding grpc/protobuf support into homescreen, which turns out it's a pain to do with either qmake or cmake. Eventually, we'll move all our demos to using meson, which have gained a lot of support for building and support different technologies to allow far more saner configurations to take place. Based heavily on the work done by Scott Murray in libqtappfw, in the applauncher module. Bug-AGL: SPEC-4584 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Suggested-by: Scott Murray <scott.murray@konsulko.com> Change-Id: Id64bf3d5b41912d32df7f78e94ab04d231bb0c83
2022-09-22homescreen: Add support for v3 of agl-shell protocolMarius Vlad3-61/+51
This protocol update adds support for started/terminated/activate/deactive events sent by the compositor. With this change we remove support for agl-shell-desktop protocol and instead rely on this new protocol update. Bug-AGL: SPEC-4528 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I9eb2135c5331eea82635583e8ca7cdf4e41a3d5e
2022-09-22homescreen: Support for bound_ok and bound_fail eventsMarius Vlad1-8/+74
This adds support for version 2 of the protocol, but to also provide an example for other clients how to use it. Bug-AGL: SPEC-4502 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I710026bf293280d7aec2aa5d6e4528965840e23c
2022-09-16Rework to use launcher wrapper from libqtappfwScott Murray4-200/+157
Changes: - Switch to using the new app launcher API wrapper from libqtappfw in order to migrate to the new gRPC based API implementation. - The appStarted and appTerminated methods in HomescreenHandler have been renamed to activateApp and deactivateApp, respectively, to better reflect what they do. A new processAppStatusEvent method had been added that calls them as appropriate based on the event from the AppLauncherClient status update signal. - The copyright headers in the source files have been tweaked to remove the Apache license boilerplate in favour of a SPDX license tag. - The code in main.cpp that was not formatted with Linux-style has been reformatted to match the rest of the file. Bug-AGL: SPEC-4559 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: I236cb6a412945a6df7d35652c55f664264964f9c
2022-07-08homescreen: Bail out if no screens are foundneedlefish_13.93.0needlefish/13.93.013.93.0Marius Vlad1-0/+5
It might happen the system doesn't have any outputs connected, or there are literally no outputs present in the system. Instead of crashing and systemd trying always to start it up just make sure we handle that and print out a message about what is going it. Bug-AGL: SPEC-4459 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Ia3dfab66e69ea36b2cf50fc0f6c1fd188a87e240
2022-07-04Add VIS vehicle signal supportScott Murray5-84/+74
Update the volume control code to use to use VIS signalling instead of the previous agl-service-audiomixer binding usage. Bug-AGL: SPEC-4409 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: Ifc622a51991110c7786b80ee0af574ed6ca80561 (cherry picked from commit e3b392b8a0767f35e6dbbdb1e9d126294aebdcb5)
2022-02-22homescreenhandler: Avoid passing an invalid appidmarlin_12.93.0marlin/12.93.012.93.0Marius Vlad1-1/+2
If there's no item added in the QList we'll return an invalid value pointing to some invalid memory, which we can not determine if its empty string or not, so this makes sure we check the list itself. Found when looking at removal/activation of surfaces while re-doing some parts in the compositor. Bug-AGL: SPEC-4263 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I912aa5a42a7d21374a389a7f193979f30504a83b
2022-01-28Re-enable status barmarlin_12.92.0marlin/12.92.012.92.0Scott Murray4-29/+10
Re-enable the status bar Bluetooth and Wifi status monitoring via the libqtappfw provided objects, and also hook up the currently stubbed weather support so it'll start working if it is updated in libqtappfw. Bug-AGL: SPEC-4182 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: I3aeb98dc01c0bc09550824f44bcb1d40f324e49e
2022-01-20Use agl-shell-desktop protocol to keep track of closed windowsArnaud Ferraris2-19/+68
Currently, we have no way of knowing when the main window of an application is closed unless this action terminates the app. Hooking up the `agl-shell-desktop` protocol allows us to be notified when this happens, so we can instruct `homescreenhandler` to switch back to the previously active app. Bug-AGL: SPEC-4222 Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com> Change-Id: I26dfaccce8894c2599afd9b14349b0703727d47a
2022-01-20homescreenhandler: keep track of active appsArnaud Ferraris2-2/+30
When the current app window is closed, the current behavior depends on whether this action terminates the app: - if the app is terminated, then we switch back to the launcher - in the other case, we display the background, even if other apps are running In order to implement a better behavior, we should keep track of active apps and switch back to the previously active one when the current app window is closed. Bug-AGL: SPEC-4222 Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com> Change-Id: Idf1fe42886e95e2b37349b066204fde002d7c3b5
2022-01-18homescreenhandler: Do not attempt to start launcherMarius Vlad1-6/+16
Our launcher application is started by systemd as a user session, and attempting to start it again would result into being started once more, but this by applaunchd. Until we merge homescreen and launcher together avoid starting it and just activate it whenever necessary. Bug-AGL: SPEC-4215 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I90806457b74a2439cb8bdc88068954eb7ef1d532
2022-01-11Merge changes I8a971470,I74dfa2e2,Icd008c8bJan-Simon Moeller3-411/+13
* changes: homescreenhandler: Remove old artifacts package: Removal older artefacts from previous appfw homescreenhandler: Start applications from homescreen panel
2022-01-11Merge "homescreen/homescreen.pro: Bump protocol requirements"Jan-Simon Moeller1-1/+1
2022-01-11homescreen/homescreen.pro: Bump protocol requirementsMarius Vlad1-1/+1
This change is needed because we've updated the protocol in the compositor. Bug-AGL: SPEC-4207 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I9e85af39f61d7e6724faa11b10de571e4e60540e
2022-01-10homescreenhandler: Remove old artifactsMarius Vlad1-101/+1
We're no longer using anything from the older appfw so remove dead code. Bug-AGL: SPEC-4204 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I8a9714701a9bbb0da6768cd4bcbca52cb23464cd
2022-01-10package: Removal older artefacts from previous appfwMarius Vlad2-306/+0
Bug-AGL: SPEC-4204 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I74dfa2e24132b1928815963dfa6e1bcc4f706375
2022-01-10homescreenhandler: Start applications from homescreen panelMarius Vlad1-3/+11
We're missing application start-up from within homescreen. The top panel surface contains a list of applications which can be started directly (without the launcher). Bug-AGL: SPEC-4203 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Icd008c8bdbf3f107972b5b279f1439cab5aaebee
2021-12-29homescreenhandler: Set the application currently app runningMarius Vlad1-3/+3
Bug-AGL: SPEC-4202 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Ifba64095536cee149ed80d94a42abeefdcdd16f4
2021-12-20homescreenhandler: use applaunchd for app activationmarlin_12.91.0marlin/12.91.012.91.0Arnaud Ferraris3-2/+41
As part of the App FW rework, we introduced a new app launcher service, accessible through D-Bus. This service accepts requests to activate applications, and notifies when a application successfully activated or terminated. Requests for activation are handled by a separate `launcher` application for now, so we only need to listen on incoming signals in order to react to those: - when an application successfully started or is switched to, ask the compositor to activate it - when an application terminates, activate the launcher so the user isn't facing a "blank" display Bug-AGL: SPEC-4160 Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com> Change-Id: I7369944570651b45ec9dcca9ccde3dfd75719c3b
2021-11-04Initial rework to run without the app frameworkScott Murray44-938/+92
Changes: - Remove application framework build scripts, and update the application qmake file to just build a "homescreen" binary and support installing it to /usr/bin. - Remove voice API related code. Some of the associated QML and images for the UI have been retained in case equivalent functionality is re-added in the future. - Remove or stub out various app framework API access for the homescreen and launcher bindings, and comment out usage of the Qt wrappers from libqtappfw (e.g. Bluetooth). The aim is to provide a replacement library or libraries for the latter that provide the same functionality. - Remove the old homescreen API documentation and do an initial update of the build instructions in README.md. Bug-AGL: SPEC-4121 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: Iab979c8e1341f2da0384f88f163a977b03664600
2021-07-01homescreen.pro: Use system() to figure out where to pull the protocolmarlin_12.90.1marlin/12.90.112.90.1Marius Vlad2-119/+2
Bug-AGL: SPEC-3423 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I0960ac6bee938cc4466f877467ea57e592d61593
2021-05-13docs(README.md): fix invalid http linkmarlin_12.90.0marlin/12.90.0lamprey_11.92.0lamprey_11.91.0lamprey/11.92.0lamprey/11.91.012.90.011.92.011.91.0shi ce1-1/+1
Bug-AGL: SPEC-2714 Signed-off-by: shi ce <shic.fnst@fujitsu.com> Change-Id: Ic74ea8a5c5bf56d8446be9038c97c2cb5038caea
2021-05-10homescreen: fix master volume control nameGeorge Kiagiadakis1-3/+5
Fixes the master volume control on the homescreen, which broke after I renamed the control in agl-service-audiomixer to "Master Playback" Bug-AGL: SPEC-3844 Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com> Change-Id: Iadc859b29d823a703865a301877a75575a78a650
2021-01-07main: Add different QMLs for doing screenshotskoi_10.93.0koi_10.92.0koi/10.93.0koi/10.92.010.93.010.92.0Marius Vlad5-11/+70
A better of way trying to verify that we have the homescreen up-and-running would be to load-up a reference image which doesn't change depending on time or other things loaded up (weather for instance). Alternatively, a possible solution would be to have a totally different application that basically does the same thing as homescreen. Instead of doing that, use an environment variable to choose up what QMLs to load instead of the original application. Modifying the env variable then re-starting the application is sufficient to have the screenshot for CI. Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Ie1478bb75f23c36e3c24c9e8d3e2d7c4848dd779
2020-07-22Add workaround for top panel button highlightingkoi_10.91.0koi/10.91.0jellyfish_9.99.4jellyfish_9.99.3jellyfish_9.99.2jellyfish/9.99.4jellyfish/9.99.3jellyfish/9.99.29.99.49.99.39.99.210.91.0Scott Murray3-6/+11
The switch to the new compositor removed the callback to update the top panel button highlight since it was being driven by the Event_ScreenUpdated event from the old windowmanager. For now, work around this by driving the ApplicationLauncher's setCurrent method from the appropriate place in the HomescreenHandler object's tapShortcut method. If a generic mechanism for notifications on application expose becomes available via agl-shell-desktop, that should be used instead. Additionally, add an explicit call to setCurrent on initialization to highlight the top panel Launcher button, matching the actual initial UI state. Bug-AGL: SPEC-3510 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: Ied5dd8e78195d061585510e60a758559ca4f69b3
2020-07-22Fix panel backgrounds and sizesScott Murray7-165/+9
The split into 3 windows done for the switch to the new compositor dropped the full screen image background that had previously been used, but did not set any replacement for the new top and bottom panel windows. This, combined with some rows of transparent pixels at the bottom and top of the respective panel background images, resulted in the default white background being visible in those areas. To fix this, the background of the panel windows has been set to the color used in the previous background image for those areas (#33363a). Additionally: - the top and bottom panel sizes have been rationalized to 216 pixels high each, since there is no longer any reason to have them be different sizes. - the now unused main.qml has been removed to avoid confusion. Bug-AGL: SPEC-3420 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: Ib656ff256f05362def378047171d1fe940355790
2020-07-03toppanel: Use the older width sizeMarius Vlad1-1/+1
Bug-AGL: SPEC-3348 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Ib7b1c9d1da2397a251391883b8c34b4e417ecb04
2020-06-24main: Set-up the application idjellyfish_9.99.1jellyfish/9.99.19.99.1Marius Vlad1-0/+2
Neccessary to set-up a proper application id. Bug-AGL: SPEC-3447 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I92fd9747d1aa9f3716851c1c866e117e73ae136c
2020-06-24Allow to set off the screen name using a environment variableMarius Vlad1-8/+33
Bug-AGL: SPEC-3447 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I0ebe268e920666d4acf7089b50255281978a6c77
2020-06-24agl-compositor: Conversion to agl-compositorMarius Vlad18-80/+589
Bug-AGL: SPEC-3447 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I7da44ec333217d355ba643d2d21bea7d8940ad2b
2020-06-19Fix package licenseLi, Xiaoming1-0/+0
license file should live in the root folder. Bug-AGL: SPEC-3440 Signed-off-by: Li, Xiaoming <lixm.fnst@cn.fujitsu.com> Change-Id: I84e714b15677e636c60ae0338eac13ce0f77c2ae
2020-06-10Update autobuild scriptsScott Murray4-112/+138
Update autobuild scripts with reworked version that fixes building outside of the source tree. As well, the project files have been tweaked to strip the release build binaries and add "-debug" in the name of the debug widget file. Bug-AGL: SPEC-2049, SPEC-3300 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: Ic0fc983c533c7335d23f560480dc0f7bfd022b8e
2020-06-08update PKGCONFIG to use qtappfw-*Raquel Medina1-1/+1
Replace qtappfw with qtappfw-weather, qtappfw-network and qtappfw-bt packages. Bug-AGL: SPEC-3390 Signed-off-by: Raquel Medina <raquel.medina@konsulko.com> Change-Id: I77918c89f51c9a5aad72e855a06c6ac3c6148731