aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKazumasa Mitsunari <knimitz@witz-inc.co.jp>2018-03-09 13:45:36 +0900
committerKazumasa Mitsunari <knimitz@witz-inc.co.jp>2018-03-09 09:37:22 +0000
commitf4226050e1c02c9f792e74b35b56bb7727d0f26d (patch)
treec7fe4e1c8d7f7f5fbde6ddf4da265ba323f48bb4
parenta40753a48f09c8ffcce43f324f5f91029a351a48 (diff)
Enable fallback, then display applications
This patch enables the app to show if it is not registered in layers.json. The original installed app was not shown because the role of app is not registered in WM as default. [Patch set2] Add the same process into requestSurface for RunXDG. Backport from master Bug-AGL : SPEC-1331 Change-Id: Ie99b971023a95a1924795b1ffc7311a630940b1d Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
-rw-r--r--layers.json2
-rw-r--r--layers.json.split2
-rw-r--r--src/app.cpp19
3 files changed, 18 insertions, 5 deletions
diff --git a/layers.json b/layers.json
index 8a04d7b..cf7ed34 100644
--- a/layers.json
+++ b/layers.json
@@ -22,7 +22,7 @@
"comment": "Single layer map for the HomeScreen"
},
{
- "role": "Music|Video|WebBrowser|MediaPlayer|Radio|Phone|Navigation|HVAC|Settings|Dashboard|POI|Mixer",
+ "role": "Music|Video|WebBrowser|MediaPlayer|Radio|Phone|Navigation|HVAC|Settings|Dashboard|POI|Mixer|Fallback",
"name": "apps",
"layer_id": 1001,
"area": { "type": "rect", "rect": { "x": 0, "y": 218, "width": -1, "height": -433 } },
diff --git a/layers.json.split b/layers.json.split
index 91e563d..ec20b33 100644
--- a/layers.json.split
+++ b/layers.json.split
@@ -22,7 +22,7 @@
"comment": "Single layer map for the HomeScreen"
},
{
- "role": "Music|Video|WebBrowser|MediaPlayer|Radio|Phone|Navigation|HVAC|Settings|Dashboard|POI|Mixer",
+ "role": "Music|Video|WebBrowser|MediaPlayer|Radio|Phone|Navigation|HVAC|Settings|Dashboard|POI|Mixer|Fallback",
"name": "apps",
"layer_id": 1001,
"area": { "type": "rect", "rect": { "x": 0, "y": 218, "width": -1, "height": -433 } },
diff --git a/src/app.cpp b/src/app.cpp
index 838908c..9efa34a 100644
--- a/src/app.cpp
+++ b/src/app.cpp
@@ -654,8 +654,14 @@ void App::emit_visible(char const *label) { return emit_visible(label, true); }
result<int> App::api_request_surface(char const *drawing_name) {
auto lid = this->layers.get_layer_id(std::string(drawing_name));
if (!lid) {
- // TODO: Do we need to put these applications on the App layer?
- return Err<int>("Drawing name does not match any role");
+ /**
+ * register drawing_name as fallback and make it displayed.
+ */
+ lid = this->layers.get_layer_id(std::string("Fallback"));
+ HMI_DEBUG("wm", "%s is not registered in layers.json, then fallback as normal app", drawing_name);
+ if(!lid){
+ return Err<int>("Drawing name does not match any role, Fallback is disabled");
+ }
}
auto rname = this->lookup_id(drawing_name);
@@ -686,7 +692,14 @@ char const *App::api_request_surface(char const *drawing_name,
unsigned sid = std::stol(ivi_id);
if (!lid) {
- return "Drawing name does not match any role";
+ /**
+ * register drawing_name as fallback and make it displayed.
+ */
+ lid = this->layers.get_layer_id(std::string("Fallback"));
+ HMI_DEBUG("wm", "%s is not registered in layers.json, then fallback as normal app", drawing_name);
+ if(!lid){
+ return "Drawing name does not match any role, Fallback is disabled";
+ }
}
auto rname = this->lookup_id(drawing_name);