summaryrefslogtreecommitdiff
path: root/src/components/HMI/app
diff options
context:
space:
mode:
authorJustin Dickow <jjdickow@gmail.com>2015-01-24 16:58:15 -0500
committerJustin Dickow <jjdickow@gmail.com>2015-01-24 16:58:15 -0500
commita24079cb8de5563376dcf782cdb9fe3cae063841 (patch)
tree1fca30dde1aa30c7ac11fb6b009d2bd6420bd648 /src/components/HMI/app
parentf948dd4539eeecb2c32084cc39b68923fc94e3dd (diff)
downloadsdl_core-a24079cb8de5563376dcf782cdb9fe3cae063841.tar.gz
HmiStatus modify
HU DCHECK occurs during multisession registration Remove unused variable SIGSEGV handler added to flush logger queue FixIncomplete device list in UpdateDeviceList request Fix Memory leak on PutFile break Fix Thread and Timer Fix OnHmiStatus Notification Fix Url array sending for endpoints. Fix HashChange Fix SDL parse incoming JSON message with both members error and result as success message Fix Core crashes while connecting mobile app Signed-off-by: Justin Dickow <jjdickow@gmail.com>
Diffstat (limited to 'src/components/HMI/app')
-rw-r--r--src/components/HMI/app/controller/sdl/AppController.js6
-rw-r--r--src/components/HMI/app/controller/sdl/Controller.js26
-rw-r--r--src/components/HMI/app/controller/sdl/RPCController.js108
-rw-r--r--src/components/HMI/app/model/sdl/MediaModel.js10
-rw-r--r--src/components/HMI/app/model/sdl/Model.js1
-rw-r--r--src/components/HMI/app/model/sdl/NonMediaModel.js10
-rw-r--r--src/components/HMI/app/view/sdl/ExitAppView.js22
-rw-r--r--src/components/HMI/app/view/sdl/TTSPopUp.js34
-rw-r--r--src/components/HMI/app/view/sdl/shared/interactionChoicesView.js14
9 files changed, 105 insertions, 126 deletions
diff --git a/src/components/HMI/app/controller/sdl/AppController.js b/src/components/HMI/app/controller/sdl/AppController.js
index 784e7e8d1c..8f37fa51f0 100644
--- a/src/components/HMI/app/controller/sdl/AppController.js
+++ b/src/components/HMI/app/controller/sdl/AppController.js
@@ -107,11 +107,10 @@ SDL.SDLAppController = Em.Object.create({
*/
VRPerformAction: function (element) {
- SDL.SDLController.vrInteractionResponse(SDL.SDLModel.resultCode["SUCCESS"], element.commandID);
-
if (SDL.SDLModel.VRActive) {
SDL.SDLModel.toggleProperty('VRActive');
}
+ SDL.SDLController.vrInteractionResponse(SDL.SDLModel.resultCode["SUCCESS"], element.commandID);
},
/**
@@ -144,6 +143,9 @@ SDL.SDLAppController = Em.Object.create({
*/
onVRCommand: function (element) {
+ if (SDL.SDLModel.VRActive) {
+ SDL.SDLModel.toggleProperty('VRActive');
+ }
FFW.VR.onCommand(element.commandID, element.appID);
},
diff --git a/src/components/HMI/app/controller/sdl/Controller.js b/src/components/HMI/app/controller/sdl/Controller.js
index 7c3ba164ef..a6dc92fc0d 100644
--- a/src/components/HMI/app/controller/sdl/Controller.js
+++ b/src/components/HMI/app/controller/sdl/Controller.js
@@ -55,7 +55,7 @@ SDL.SDLController = Em.Object
*/
sysContext: function() {
- if (SDL.VRPopUp.VRActive) {
+ if (SDL.SDLModel.VRActive) {
return 'VRSESSION';
}
if (SDL.AlertPopUp.active) {
@@ -78,7 +78,7 @@ SDL.SDLController = Em.Object
}.property('SDL.OptionsView.active',
'SDL.SliderView.active',
'SDL.SDLModel.AudioPassThruState',
- 'SDL.VRPopUp.VRActive',
+ 'SDL.SDLModel.VRActive',
'SDL.AlertPopUp.active',
'SDL.States.info.nonMedia.active',
'SDL.States.media.sdlmedia.active',
@@ -200,7 +200,9 @@ SDL.SDLController = Em.Object
SDL.VRHelpListView.deactivate();
}
}
- }
+ } else if (SDL.VRHelpListView.active) {
+ SDL.VRHelpListView.deactivate();
+ }
}.observes('SDL.SDLModel.VRActive', 'SDL.SDLModel.interactionData.vrHelp'),
/**
@@ -414,6 +416,15 @@ SDL.SDLController = Em.Object
FFW.BasicCommunication.ExitAllApplications(state);
},
/**
+ * OnAwakeSDL from HMI returns SDL to normal operation
+ * after OnExitAllApplications(SUSPEND)
+ *
+ */
+ onAwakeSDLNotificationSend: function() {
+ FFW.BasicCommunication.OnAwakeSDL();
+ },
+
+ /**
* Method to sent notification with selected reason of OnSystemRequest
*
* @param {String}
@@ -458,6 +469,8 @@ SDL.SDLController = Em.Object
if (choiceID && SDL.TTSPopUp.active && FFW.TTS.requestId == null) {
SDL.TTSPopUp.DeactivateTTS();
}
+
+ SDL.SDLModel.interactionData.helpPrompt = null;
},
/**
* Method to sent notification for Alert
@@ -640,6 +653,10 @@ SDL.SDLController = Em.Object
if (SDL.SDLModel.stateLimited == appID) {
SDL.SDLModel.set('stateLimited', null);
}
+
+ if (SDL.VRHelpListView.active) {
+ this.showVRHelpItems();
+ }
},
/**
* SDL Driver Distraction ON/OFF switcher
@@ -734,6 +751,9 @@ SDL.SDLController = Em.Object
*/
onActivateSDLApp: function(element) {
+ if (SDL.SDLModel.VRActive) {
+ SDL.SDLModel.toggleProperty('VRActive');
+ }
FFW.BasicCommunication.ActivateApp(element.appID);
},
/**
diff --git a/src/components/HMI/app/controller/sdl/RPCController.js b/src/components/HMI/app/controller/sdl/RPCController.js
index d7ab4b2d01..27dd2ec087 100644
--- a/src/components/HMI/app/controller/sdl/RPCController.js
+++ b/src/components/HMI/app/controller/sdl/RPCController.js
@@ -72,41 +72,21 @@ SDL.RPCController = Em.Object
capabilitiesCheck: function(key, value) {
if (key == "imageType" && value == "STATIC") {
- SDL.RPCController.capabilityCheckResult = 'UNSUPPORTED_RESOURCE';
+ SDL.RPCController.capabilityCheckResult = {code: SDL.SDLModel.resultCode['UNSUPPORTED_RESOURCE'], type: value};
}
if (key == "type" && value == "PRE_RECORDED") {
- SDL.RPCController.capabilityCheckResult = 'UNSUPPORTED_RESOURCE';
+ SDL.RPCController.capabilityCheckResult = {code: SDL.SDLModel.resultCode['UNSUPPORTED_RESOURCE'], type: value};
}
if (key == "type" && value == "SAPI_PHONEMES") {
- SDL.RPCController.capabilityCheckResult = 'UNSUPPORTED_RESOURCE';
+ SDL.RPCController.capabilityCheckResult = {code: SDL.SDLModel.resultCode['UNSUPPORTED_RESOURCE'], type: value};
}
if (key == "type" && value == "LHPLUS_PHONEMES") {
- SDL.RPCController.capabilityCheckResult = 'UNSUPPORTED_RESOURCE';
+ SDL.RPCController.capabilityCheckResult = {code: SDL.SDLModel.resultCode['UNSUPPORTED_RESOURCE'], type: value};
}
if (key == "type" && value == "SILENCE") {
- SDL.RPCController.capabilityCheckResult = 'UNSUPPORTED_RESOURCE';
+ SDL.RPCController.capabilityCheckResult = {code: SDL.SDLModel.resultCode['UNSUPPORTED_RESOURCE'], type: value};
}
- },
-
- /**
- * Method to check supported image type in request
- *
- * @param {Object}
- * array
- */
- checkImagesArray: function(array) {
-
- var error = false;
- if (array instanceof Array) {
- for ( var i = 0; i < array.length; i++) {
- if (array[i].image &&
- ((array[i].image.imageType !== "DYNAMIC") &&
- (array[i].image.imageType !== "STATIC"))) {
-
- }
- }
- }
- return error;
+ return value;
},
/**
@@ -1093,17 +1073,6 @@ SDL.RPCController = Em.Object
return this.resultStruct;
}
- if ("softButtons" in params) {
- if (SDL.RPCController
- .checkImagesArray(params.softButtons)) {
- this.resultStruct = {
- "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
- "resultMessage": "Unsupported image type!"
- };
-
- return this.resultStruct;
- }
- }
if ("turnIcon" in params
&& ((params.turnIcon.imageType !== "DYNAMIC") && (params.turnIcon.imageType !== "STATIC"))) {
this.resultStruct = {
@@ -1183,17 +1152,6 @@ SDL.RPCController = Em.Object
return this.resultStruct;
}
- if ("softButtons" in params) {
- if (SDL.RPCController
- .checkImagesArray(params.softButtons)) {
- this.resultStruct = {
- "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
- "resultMessage": "Unsupported image type!"
- };
-
- return this.resultStruct;
- }
- }
if ("turnList" in params) {
for ( var i = 0; i < params.turnList.length; i++) {
@@ -1277,17 +1235,6 @@ SDL.RPCController = Em.Object
return this.resultStruct;
}
- if ("softButtons" in params) {
- if (SDL.RPCController
- .checkImagesArray(params.softButtons)) {
- this.resultStruct = {
- "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
- "resultMessage": "Unsupported image type!"
- };
-
- return this.resultStruct;
- }
- }
if (params.alertStrings == null) {
this.resultStruct = {
@@ -1422,17 +1369,6 @@ SDL.RPCController = Em.Object
return this.resultStruct;
}
- if ("softButtons" in params) {
- if (SDL.RPCController
- .checkImagesArray(params.softButtons)) {
- this.resultStruct = {
- "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
- "resultMessage": "Unsupported image type!"
- };
-
- return this.resultStruct;
- }
- }
if ("graphic" in params
&& ((params.graphic.imageType !== "DYNAMIC") && (params.graphic.imageType !== "STATIC"))) {
this.resultStruct = {
@@ -1934,16 +1870,6 @@ SDL.RPCController = Em.Object
return this.resultStruct;
}
- if ("vrHelp" in params) {
- if (SDL.RPCController.checkImagesArray(params.vrHelp)) {
- this.resultStruct = {
- "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
- "resultMessage": "Unsupported image type!"
- };
-
- return this.resultStruct;
- }
- }
if (params.appID == null) {
this.resultStruct = {
@@ -2278,17 +2204,6 @@ SDL.RPCController = Em.Object
return this.resultStruct;
}
- if ("softButtons" in params) {
- if (SDL.RPCController
- .checkImagesArray(params.softButtons)) {
- this.resultStruct = {
- "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
- "resultMessage": "Unsupported image type!"
- };
-
- return this.resultStruct;
- }
- }
if (params.messageText == null) {
this.resultStruct = {
@@ -2434,17 +2349,6 @@ SDL.RPCController = Em.Object
ShowVrHelp: function(params) {
if (params) {
- if ("vrHelp" in params) {
- if (SDL.RPCController
- .checkImagesArray(params.vrHelp)) {
- this.resultStruct = {
- "resultCode": SDL.SDLModel.resultCode["INVALID_DATA"],
- "resultMessage": "Unsupported image type!"
- };
-
- return this.resultStruct;
- }
- }
if ("appID" in params) {
if (typeof params.appID != 'number') {
diff --git a/src/components/HMI/app/model/sdl/MediaModel.js b/src/components/HMI/app/model/sdl/MediaModel.js
index b51156d2fd..0feceb2119 100644
--- a/src/components/HMI/app/model/sdl/MediaModel.js
+++ b/src/components/HMI/app/model/sdl/MediaModel.js
@@ -336,10 +336,12 @@ SDL.SDLMediaModel = SDL.SDLAppModel.extend({
this.appInfo.set('alignment', "text-align:center");
}
- if (params.graphic && params.graphic.value != '') {
- this.appInfo.set('trackIcon', params.graphic.value);
- } else {
- this.appInfo.set('trackIcon', 'images/sdl/audio_icon.jpg');
+ if (params.graphic != null) {
+ if (params.graphic.value != "") {
+ this.appInfo.set('trackIcon', params.graphic.value);
+ } else {
+ this.appInfo.set('trackIcon', 'images/sdl/audio_icon.jpg');
+ }
}
if ("softButtons" in params) {
diff --git a/src/components/HMI/app/model/sdl/Model.js b/src/components/HMI/app/model/sdl/Model.js
index a902e649ec..4d54e20e5a 100644
--- a/src/components/HMI/app/model/sdl/Model.js
+++ b/src/components/HMI/app/model/sdl/Model.js
@@ -1224,7 +1224,6 @@ SDL.SDLModel = Em.Object.create({
setTimeout(function(){
if (SDL.SDLModel.vrActiveRequests.vrPerformInteraction) {
SDL.SDLModel.onPrompt(message.params.timeoutPrompt);
- SDL.SDLModel.interactionData.helpPrompt = null;
}
}, message.params.timeout - 2000); //Magic numer is a platform depended HMI behavior: -2 seconds for timeout prompt
diff --git a/src/components/HMI/app/model/sdl/NonMediaModel.js b/src/components/HMI/app/model/sdl/NonMediaModel.js
index d9a14b32f2..42ac14bc0c 100644
--- a/src/components/HMI/app/model/sdl/NonMediaModel.js
+++ b/src/components/HMI/app/model/sdl/NonMediaModel.js
@@ -198,10 +198,12 @@ SDL.SDLNonMediaModel = SDL.SDLAppModel.extend({
this.appInfo.set('alignment', "text-align:center");
}
- if (params.graphic) {
- this.appInfo.set('mainImage', params.graphic.value);
- } else {
- this.appInfo.set('mainImage', 'images/sdl/audio_icon.jpg');
+ if (params.graphic != null) {
+ if (params.graphic.value != "") {
+ this.appInfo.set('mainImage', params.graphic.value);
+ } else {
+ this.appInfo.set('mainImage', 'images/sdl/audio_icon.jpg');
+ }
}
// Magic number is a count of Preset Buttons on HMI = 8
diff --git a/src/components/HMI/app/view/sdl/ExitAppView.js b/src/components/HMI/app/view/sdl/ExitAppView.js
index 4f423f06af..81e9c7ad5f 100644
--- a/src/components/HMI/app/view/sdl/ExitAppView.js
+++ b/src/components/HMI/app/view/sdl/ExitAppView.js
@@ -47,7 +47,9 @@ SDL.ExitApp = Em.ContainerView.create( {
[
'exitAppViewLabel',
'exitAppViewTitle',
- 'exitAppViewSelect'
+ 'exitAppViewSelect',
+ 'onAwakeSDLLabel',
+ 'onAwakeSDLButton'
],
/**
@@ -104,6 +106,24 @@ SDL.ExitApp = Em.ContainerView.create( {
}
} ),
+ onAwakeSDLLabel: SDL.Label.extend( {
+
+ elementId: 'onAwakeSDLLabel',
+
+ classNames: 'onAwakeSDLLabel',
+
+ content: 'onAwakeSDL notification send'
+ } ),
+
+ onAwakeSDLButton: SDL.Button.extend( {
+ classNames: 'button onAwakeSDLButton',
+ text: 'Send onAwakeSDL',
+ action: 'onAwakeSDLNotificationSend',
+ target: 'SDL.SDLController',
+ buttonAction: true,
+ onDown: false
+ }),
+
/**
* Trigger function that activates and deactivates tbtClientStateView
*/
diff --git a/src/components/HMI/app/view/sdl/TTSPopUp.js b/src/components/HMI/app/view/sdl/TTSPopUp.js
index 4fc0c7669c..be5652ff90 100644
--- a/src/components/HMI/app/view/sdl/TTSPopUp.js
+++ b/src/components/HMI/app/view/sdl/TTSPopUp.js
@@ -45,7 +45,9 @@ SDL.TTSPopUp = Em.ContainerView.create( {
'popUp',
'message',
'okButton',
- 'timerText'
+ 'timerText',
+ 'checkBoxLabel',
+ 'checkBox'
],
requestId: null,
@@ -86,6 +88,25 @@ SDL.TTSPopUp = Em.ContainerView.create( {
disabledBinding: 'parentView.buttons'
}),
+ checkBoxLabel: SDL.Label.extend({
+
+ elementId: 'checkBoxLabel',
+
+ classNames: 'checkBoxLabel',
+
+ content: 'Send response'
+ }),
+
+ checkBox: Em.Checkbox.extend( {
+
+ elementId: 'checkBoxTTS',
+
+ classNames: 'checkBoxTTS',
+
+ checked: true
+
+ }),
+
timerText: SDL.Label.extend({
elementId: 'timerText',
@@ -95,6 +116,8 @@ SDL.TTSPopUp = Em.ContainerView.create( {
contentBinding: 'parentView.timerSeconds'
}),
+
+
resetTimeout: function () {
this.set('timerSeconds', 10);
FFW.TTS.OnResetTimeout(this.appID, "TTS.Speak");
@@ -126,9 +149,12 @@ SDL.TTSPopUp = Em.ContainerView.create( {
DeactivateTTS: function() {
clearInterval(this.timer);
this.set('active', false);
- this.set('timerSeconds', 10);
- SDL.SDLController.TTSResponseHandler();
- FFW.TTS.Stopped();
+ this.set('timerSeconds', 5);
+
+ if (this.checkBox.checked) {
+ SDL.SDLController.TTSResponseHandler();
+ FFW.TTS.Stopped();
+ }
},
/**
diff --git a/src/components/HMI/app/view/sdl/shared/interactionChoicesView.js b/src/components/HMI/app/view/sdl/shared/interactionChoicesView.js
index d01165dd14..288031ab17 100644
--- a/src/components/HMI/app/view/sdl/shared/interactionChoicesView.js
+++ b/src/components/HMI/app/view/sdl/shared/interactionChoicesView.js
@@ -86,8 +86,10 @@ SDL.InteractionChoicesView = SDL.SDLAbstractView.create({
],
click: function() {
- SDL.InteractionChoicesView.timerUpdate();
- SDL.SDLController.onResetTimeout(SDL.SDLAppController.model.appID, "UI.PerformInteraction");
+ if (this._parentView.active) {
+ SDL.InteractionChoicesView.timerUpdate();
+ SDL.SDLController.onResetTimeout(SDL.SDLAppController.model.appID, "UI.PerformInteraction");
+ }
},
naviChoises: Em.ContainerView.extend({
@@ -119,8 +121,10 @@ SDL.InteractionChoicesView = SDL.SDLAbstractView.create({
itemsOnPage: 5,
items: [],
click: function() {
- SDL.InteractionChoicesView.timerUpdate();
- SDL.SDLController.onResetTimeout(SDL.SDLAppController.model.appID, "UI.PerformInteraction");
+ if (this._parentView.active) {
+ SDL.InteractionChoicesView.timerUpdate();
+ SDL.SDLController.onResetTimeout(SDL.SDLAppController.model.appID, "UI.PerformInteraction");
+ }
}
}),
@@ -143,7 +147,7 @@ SDL.InteractionChoicesView = SDL.SDLAbstractView.create({
* Method updates popup timer when data changes through keyboard
*/
timerUpdate: function (){
- if (this.timeout && this.input.value !== null) {
+ if (this.timeout) {
clearTimeout(this.timer);
var self = this;
this.timer = setTimeout(function () {