diff --git a/app/controller/NavigationController.js b/app/controller/NavigationController.js index e78d441f2..fb911f058 100644 --- a/app/controller/NavigationController.js +++ b/app/controller/NavigationController.js @@ -49,7 +49,7 @@ SDL.NavigationController = Em.Object.create( * @param {Object} request */ sendLocation: function(request) { - this.model.push( + this.model.LocationDetails.push( { coordinate: { latitudeDegrees: request.params.latitudeDegrees, @@ -109,7 +109,8 @@ SDL.NavigationController = Em.Object.create( FFW.Navigation.wayPointSend( SDL.SDLModel.data.resultCode.SUCCESS, SDL.NavigationModel.LocationDetails, - request.id + request.id, + request.params.appID ); SDL.NavigationModel.appReqPull.splice( SDL.NavigationModel.appReqPull.indexOf(request.params.appID), 1 diff --git a/app/controller/SettingsController.js b/app/controller/SettingsController.js index 7b0d1f315..338eebe50 100644 --- a/app/controller/SettingsController.js +++ b/app/controller/SettingsController.js @@ -341,21 +341,12 @@ SDL.SettingsController = Em.Object.create( 1000; SDL.SDLModel.data.policyUpdateRetry.timer = setTimeout( function() { - if(FLAGS.ExternalPolicies === true) { - FFW.ExternalPolicies.pack({ - type: 'PROPRIETARY', - policyUpdateFile: SDL.SettingsController.policyUpdateFile, - url: SDL.SDLModel.data.policyURLs[0].url, - appID: SDL.SDLModel.data.policyURLs[0].appID - }) - } else { - FFW.BasicCommunication.OnSystemRequest( - 'PROPRIETARY', - SDL.SettingsController.policyUpdateFile, - SDL.SDLModel.data.policyURLs[0].url, - SDL.SDLModel.data.policyURLs[0].appID - ); - } + FFW.BasicCommunication.OnSystemRequest( + 'PROPRIETARY', + SDL.SettingsController.policyUpdateFile, + SDL.SDLModel.data.policyURLs[0].url, + SDL.SDLModel.data.policyURLs[0].appID + ); SDL.SettingsController.policyUpdateRetry(); }, SDL.SDLModel.data.policyUpdateRetry.oldTimer ); diff --git a/app/controller/sdl/RPCController.js b/app/controller/sdl/RPCController.js index de6ece571..98d91d98c 100644 --- a/app/controller/sdl/RPCController.js +++ b/app/controller/sdl/RPCController.js @@ -1109,6 +1109,39 @@ SDL.RPCController = Em.Object.create( }; return this.resultStruct; }, + /** + * Validate method for request SetGlobalProperties + * + * @param {Object} + * params + */ + SetGlobalProperties: function(params) { + if (params == null) { + this.resultStruct = { + 'resultCode': SDL.SDLModel.data.resultCode.INVALID_DATA, + 'resultMessage': 'Parameter \'params\' does not exists!' + }; + return this.resultStruct; + } + if (params.appID == null) { + this.resultStruct = { + 'resultCode': SDL.SDLModel.data.resultCode.INVALID_DATA, + 'resultMessage': 'Parameter \'appID\' does not exists!' + }; + return this.resultStruct; + } + if (typeof params.appID != 'number') { + this.resultStruct = { + 'resultCode': SDL.SDLModel.data.resultCode.INVALID_DATA, + 'resultMessage': 'Wrong type of parameter \'appID\'!' + }; + return this.resultStruct; + } + this.resultStruct = { + 'resultCode': SDL.SDLModel.data.resultCode.SUCCESS + }; + return this.resultStruct; + }, /** * Validate method for request IsReady * @@ -1229,6 +1262,12 @@ SDL.RPCController = Em.Object.create( return this.resultStruct; } }, + SendHapticData: function(params) { + this.resultStruct = { + 'resultCode': SDL.SDLModel.data.resultCode.SUCCESS + }; + return this.resultStruct; + }, /** * Validate method for request Show * diff --git a/app/model/NavigationModel.js b/app/model/NavigationModel.js index a72e60c42..fb2b7b81f 100644 --- a/app/model/NavigationModel.js +++ b/app/model/NavigationModel.js @@ -77,11 +77,11 @@ SDL.NavigationModel = Em.Object.create({ longitudeDegrees: 0 }, locationName: 'locationName', - addressLines: 'addressLines', + addressLines: ['addressLines'], locationDescription: 'locationDescription', phoneNumber: 'phoneNumber', locationImage: { - value: '', + value: 'images/common/defaultButtonImage.png', imageType: 'DYNAMIC' }, searchAddress: { @@ -102,7 +102,7 @@ SDL.NavigationModel = Em.Object.create({ longitudeDegrees: 0 }, locationName: 'locationName', - addressLines: 'addressLines', + addressLines: ['addressLines'], locationDescription: 'locationDescription', phoneNumber: 'phoneNumber', locationImage: { @@ -127,11 +127,11 @@ SDL.NavigationModel = Em.Object.create({ longitudeDegrees: 0 }, locationName: 'locationName', - addressLines: 'addressLines', + addressLines: ['addressLines'], locationDescription: 'locationDescription', phoneNumber: 'phoneNumber', locationImage: { - value: '', + value: 'images/common/defaultButtonImage.png', imageType: 'DYNAMIC' }, searchAddress: { @@ -152,7 +152,7 @@ SDL.NavigationModel = Em.Object.create({ longitudeDegrees: 0 }, locationName: 'locationName', - addressLines: 'addressLines', + addressLines: ['addressLines'], locationDescription: 'locationDescription', phoneNumber: 'phoneNumber', locationImage: { diff --git a/app/model/sdl/Abstract/data.js b/app/model/sdl/Abstract/data.js index dc0972919..fa191c796 100644 --- a/app/model/sdl/Abstract/data.js +++ b/app/model/sdl/Abstract/data.js @@ -380,8 +380,13 @@ SDL.SDLModelData = Em.Object.create( { name: 'FOTA', id: 19 + }, + { + name: 'OEM_SPECIFIC', + id: 20 } ], + /** * Data for AudioPassThruPopUp that contains params for visualisation * diff --git a/app/model/sdl/VehicleInfoModel.js b/app/model/sdl/VehicleInfoModel.js index 80255c19c..f4ebb4f44 100644 --- a/app/model/sdl/VehicleInfoModel.js +++ b/app/model/sdl/VehicleInfoModel.js @@ -447,14 +447,18 @@ SDL.SDLVehicleInfoModel = Em.Object.create( var data = {}; text = 'Params ', result = true; for (var key in message.params) { + oldKey = key; + if (key === 'clusterModeStatus') { + key = 'clusterModes'; + } if (key != 'appID') { if (this.vehicleData[key]) { - data[key] = this.vehicleData[key]; + data[oldKey] = this.vehicleData[key]; } else { if (!result) { - text += ', ' + key; + text += ', ' + oldKey; } else { - text += key; + text += oldKey; result = false; } } diff --git a/app/view/sdl/SystemRequestView.js b/app/view/sdl/SystemRequestView.js index 0b2ff639a..ba715b1f6 100644 --- a/app/view/sdl/SystemRequestView.js +++ b/app/view/sdl/SystemRequestView.js @@ -43,8 +43,22 @@ SDL.SystemRequest = Em.ContainerView.create( 'systemRequestViewLabel', 'systemRequestViewTitle', 'systemRequestViewSelect', + 'jsonOffsetLabel', + 'jsonOffsetInput', + 'jsonLengthLabel', + 'jsonLengthInput', + 'jsonTimeoutLabel', + 'jsonTimeoutInput', + 'jsonOffsetCheckBox', + 'jsonLengthCheckBox', + 'jsonTimeoutCheckBox', + 'urlsCheckBox', + 'appIDSelectTitleCheckBox', + 'subTypeCheckBox', 'urlsLabel', + 'systemRequestLabel', 'urlsInput', + 'requestSubTypeInput', 'appIDSelect', 'appIDSelectTitle', 'sendButton', @@ -65,6 +79,13 @@ SDL.SystemRequest = Em.ContainerView.create( * Property indicates the activity state of SystemRequest View */ active: false, + offsetEnabled: true, + lengthEnabled: true, + timeoutEnabled: true, + urlsInputEnabled: true, + appIDSelectEnabled: true, + requestSubTypeInputEnabled: true, + /** * Title of systemRequest group of parameters */ @@ -72,7 +93,7 @@ SDL.SystemRequest = Em.ContainerView.create( { elementId: 'systemRequestViewTitle', classNames: 'systemRequestViewTitle', - content: 'System Request reason' + content: 'Reason' } ), /** @@ -84,9 +105,205 @@ SDL.SystemRequest = Em.ContainerView.create( classNames: 'systemRequestViewSelect', contentBinding: 'SDL.SDLModel.data.systemRequestState', optionValuePath: 'content.id', - optionLabelPath: 'content.name' + optionLabelPath: 'content.name', + classNameBindings: [ + 'SDL.SystemRequest.systemRequestViewSelectEnabled::inactiveTextField' + ], + } + ), + /** + * Label for "JSON" parameter "offset" Input + */ + jsonOffsetLabel: SDL.Label.extend( + { + elementId: 'jsonOffsetLabel', + classNames: 'jsonOffsetLabel', + content: 'Offset' } ), + /** + * Input for offset value changes + */ + jsonOffsetInput: Ember.TextField.extend( + { + elementId: 'jsonOffsetInput', + classNames: 'jsonOffsetInput', + classNameBindings: [ + 'SDL.SystemRequest.offsetEnabled::inactiveTextField' + ], + value:'1000', + } + ), + + /** + * Label for "JSON" parameter "length" Input + */ + jsonLengthLabel: SDL.Label.extend( + { + elementId: 'jsonLengthLabel', + classNames: 'jsonLengthLabel', + content: 'Length' + } + ), + /** + * Input for Length value changes + */ + jsonLengthInput: Ember.TextField.extend( + { + elementId: 'jsonLengthInput', + classNames: 'jsonLengthInput', + classNameBindings: [ + 'SDL.SystemRequest.lengthEnabled::inactiveTextField' + ], + value:'1500', + } + ), + + /** + * Label for "JSON" parameter "timeout" Input + */ + jsonTimeoutLabel: SDL.Label.extend( + { + elementId: 'jsonTimeoutLabel', + classNames: 'jsonTimeoutLabel', + content: 'Timeout' + } + ), + /** + * Input for Length value changes + */ + jsonTimeoutInput: Ember.TextField.extend( + { + elementId: 'jsonTimeoutInput', + classNames: 'jsonTimeoutInput', + classNameBindings: [ + 'SDL.SystemRequest.timeoutEnabled::inactiveTextField' + ], + value:'2000', + } + ), + + /** + * CheckBox for Offset parameter in OnSystemRequest + */ + jsonOffsetCheckBox: Em.Checkbox.extend({ + + elementId: 'jsonOffsetCheckBox', + + classNames: 'jsonOffsetCheckBox', + + checked: function(){ + return SDL.SystemRequest.offsetEnabled; + }.property('SDL.SystemRequest.offsetEnabled'), + + click: function (evt) { + var isCheked = SDL.SystemRequest.get('offsetEnabled'); + SDL.SystemRequest.set('offsetEnabled',!isCheked); + } + } + ), + + /** + * CheckBox for Length parameter in OnSystemRequest + */ + jsonLengthCheckBox: Em.Checkbox.extend({ + + elementId: 'jsonLengthCheckBox', + + classNames: 'jsonLengthCheckBox', + + checked: function(){ + return SDL.SystemRequest.lengthEnabled; + }.property('SDL.SystemRequest.offsetEnabled'), + + click: function (evt) { + var isCheked = SDL.SystemRequest.get('lengthEnabled'); + SDL.SystemRequest.set('lengthEnabled',!isCheked); + } + + } + ), + + /** + * CheckBox for Timeout parameter in OnSystemRequest + */ + jsonTimeoutCheckBox: Em.Checkbox.extend({ + + elementId: 'jsonTimeoutCheckBox', + + classNames: 'jsonTimeoutCheckBox', + + checked: function(){ + return SDL.SystemRequest.timeoutEnabled; + }.property('SDL.SystemRequest.timeoutEnabled'), + + click: function (evt) { + var isCheked = SDL.SystemRequest.get('timeoutEnabled'); + SDL.SystemRequest.set('timeoutEnabled',!isCheked); + } + } + ), + + /** + * CheckBox for URL parameter in OnSystemRequest + */ + urlsCheckBox: Em.Checkbox.extend({ + + elementId: 'urlsCheckBox', + + classNames: 'urlsCheckBox', + + checked: function(){ + return SDL.SystemRequest.urlsInputEnabled; + }.property('SDL.SystemRequest.urlsInputEnabled'), + + click: function (evt) { + var isCheked = SDL.SystemRequest.get('urlsInputEnabled'); + SDL.SystemRequest.set('urlsInputEnabled',!isCheked); + } + } + ), + + /** + * CheckBox for SubType parameter in OnSystemRequest + */ + subTypeCheckBox: Em.Checkbox.extend({ + + elementId: 'subTypeCheckBox', + + classNames: 'subTypeCheckBox', + + checked: function(){ + return SDL.SystemRequest.requestSubTypeInputEnabled; + }.property('SDL.SystemRequest.requestSubTypeInputEnabled'), + + click: function (evt) { + var isCheked = SDL.SystemRequest.get('requestSubTypeInputEnabled'); + SDL.SystemRequest.set('requestSubTypeInputEnabled',!isCheked); + } + } + ), + + /** + * CheckBox for appID parameter in OnSystemRequest + */ + appIDSelectTitleCheckBox: Em.Checkbox.extend({ + + elementId: 'appIDSelectTitleCheckBox', + + classNames: 'appIDSelectTitleCheckBox', + + checked: function(){ + return SDL.SystemRequest.appIDSelectEnabled; + }.property('SDL.SystemRequest.appIDSelectEnabled'), + + click: function (evt) { + var isCheked = SDL.SystemRequest.get('appIDSelectEnabled'); + SDL.SystemRequest.set('appIDSelectEnabled',!isCheked); + } + } + ), + /** * Label for URLs Input */ @@ -97,6 +314,16 @@ SDL.SystemRequest = Em.ContainerView.create( content: 'URL' } ), + /** + * Label for System Request Input + */ + systemRequestLabel: SDL.Label.extend( + { + elementId: 'systemRequestLabel', + classNames: 'systemRequestLabel', + content: 'subType' + } + ), /** * Input for urls value changes */ @@ -104,9 +331,26 @@ SDL.SystemRequest = Em.ContainerView.create( { elementId: 'urlsInput', classNames: 'urlsInput', - value: document.location.pathname.replace( - 'index.html', 'IVSU/PROPRIETARY_REQUEST' - ) + classNameBindings: [ + 'SDL.SystemRequest.urlsInputEnabled::inactiveTextField' + ], + value: document.location.pathname.replace( + 'index.html', 'IVSU/PROPRIETARY_REQUEST' + ) + } + ), + + /** + * Input for request subType value changes + */ + requestSubTypeInput: Ember.TextField.extend( + { + elementId: 'requestSubTypeInput', + classNames: 'requestSubTypeInput', + classNameBindings: [ + 'SDL.SystemRequest.requestSubTypeInputEnabled::inactiveTextField' + ], + value: 'OEM specific request', } ), /** @@ -136,7 +380,10 @@ SDL.SystemRequest = Em.ContainerView.create( list.addObject(''); return list; }.property('SDL.SDLModel.data.registeredApps.@each'), - valueBinding: 'SDL.SDLVehicleInfoModel.prndlSelectState' + valueBinding: 'SDL.SDLVehicleInfoModel.prndlSelectState', + classNameBindings: [ + 'SDL.SystemRequest.appIDSelectEnabled::inactiveTextField' + ], } ), /** @@ -169,11 +416,34 @@ SDL.SystemRequest = Em.ContainerView.create( classNames: 'button sendButton', text: 'Send OnSystemRequest', action: function(element) { + var offset = SDL.SystemRequest.offsetEnabled ? + parseInt(element._parentView.jsonOffsetInput.value): + null; + var length = SDL.SystemRequest.lengthEnabled ? + parseInt(element._parentView.jsonLengthInput.value): + null; + var timeout = SDL.SystemRequest.timeoutEnabled ? + parseInt(element._parentView.jsonTimeoutInput.value): + null; + var appID = SDL.SystemRequest.appIDSelectEnabled ? + element._parentView.appIDSelect.selection: + null; + var urls = SDL.SystemRequest.urlsInputEnabled ? + element._parentView.urlsInput.value: + null; + var subType = SDL.SystemRequest.requestSubTypeInputEnabled ? + element._parentView.requestSubTypeInput.value: + null; + FFW.BasicCommunication.OnSystemRequest( element._parentView.systemRequestViewSelect.selection.name, element._parentView.fileNameInput.value, - element._parentView.urlsInput.value, - element._parentView.appIDSelect.selection + urls, + appID, + subType, + offset, + length, + timeout ); }, onDown: false diff --git a/css/sdl.css b/css/sdl.css index 19d4dae12..406d22101 100644 --- a/css/sdl.css +++ b/css/sdl.css @@ -602,8 +602,6 @@ } #exitAppView .exitAppViewTitle, -#systemRequestView .systemRequestViewTitle, -#systemRequestView .appIDSelectTitle, #tbtClientStateView .tbtClientState, #VehicleInfo .vehicleDataLabel, #VehicleInfo .fuelLevelLabel, @@ -611,7 +609,7 @@ #PrimaryDevice .chooseLabel { top: 70px; width: 600px; - left: 40px; + left: 35px; height: 20px; padding: 10px; background: #535353; @@ -646,12 +644,13 @@ } #systemRequestView .systemRequestViewTitle { - width: 280px; + top: 83px; + left: 63px; } #systemRequestView .appIDSelectTitle { - width: 280px; - left: 360px; + top: 83px; + left: 455px; } #exitAppView .exitAppViewSelect, @@ -664,7 +663,7 @@ #PrimaryDevice .deviceSelect, #policies_settings_appPermissions .privacyModeSelect, #policies_settings_appPermissions .appIDSelect{ - top: 125px; + top: 70px; position: absolute; width: 150px; left: 275px; @@ -713,12 +712,12 @@ } #systemRequestView .systemRequestViewSelect { - left: 170px; + left: 130px; } #systemRequestView .appIDSelect { - top: 125px; - left: 490px; + top: 70px; + left: 515px; } #exitAppView .exitAppViewSelect option, @@ -775,7 +774,11 @@ #VehicleInfo .speedInput, #VehicleInfo .fuelLevelInput, #systemRequestView .urlsInput, +#systemRequestView .requestSubTypeInput, #systemRequestView .policyAppIdInput, +#systemRequestView .jsonOffsetInput, +#systemRequestView .jsonLengthInput, +#systemRequestView .jsonTimeoutInput, #systemRequestView .fileNameInput, #policies_settings_get_urls .listInput { width: 265px; @@ -798,7 +801,26 @@ left: 260px; } +#systemRequestView .jsonOffsetLabel { + top: 130px; + left: 62px; +} + +#systemRequestView .jsonLengthLabel { + top: 130px; + left: 270px; +} + +#systemRequestView .jsonTimeoutLabel { + top: 130px; + left: 505px; +} + +#systemRequestView .jsonOffsetInput, +#systemRequestView .jsonLengthInput, +#systemRequestView .jsonTimeoutInput, #systemRequestView .urlsInput, +#systemRequestView .requestSubTypeInput, #systemRequestView .policyAppIdInput, #systemRequestView .fileNameInput { height: 30px; @@ -808,9 +830,50 @@ font-size: 16px; } +#systemRequestView .inactiveTextField +{ + color: #4e5353; + pointer-events:none; +} + +#systemRequestView .jsonOffsetInput + { + top: 120px; + left: 130px; + height: 30px; + width: 65px; + line-height: 30px; + font-size: 16px; +} + +#systemRequestView .jsonLengthInput + { + top: 120px; + left: 330px; + height: 30px; + width: 65px; + line-height: 30px; + font-size: 16px; +} + +#systemRequestView .jsonTimeoutInput + { + top: 120px; + left: 575px; + height: 30px; + width: 65px; + line-height: 30px; + font-size: 16px; +} + #systemRequestView .urlsLabel { - top: 188px; - left: 60px; + top: 185px; + left: 62px; +} + +#systemRequestView .systemRequestLabel { + top: 224px; + left: 56px; } #systemRequestView .policyAppIdLabel { @@ -823,10 +886,51 @@ left: 44px; } +#systemRequestView .jsonOffsetCheckBox { + position: absolute; + top: 133px; + left: 42px; +} + +#systemRequestView .jsonLengthCheckBox { + position: absolute; + top: 133px; + left: 248px; +} + +#systemRequestView .jsonTimeoutCheckBox { + position: absolute; + top: 133px; + left:485px; +} + +#systemRequestView .urlsCheckBox { + position: absolute; + top: 185px; + left: 42px; +} + +#systemRequestView .subTypeCheckBox { + position: absolute; + top: 226px; + left: 38px; +} + +#systemRequestView .appIDSelectTitleCheckBox { + position: absolute; + top: 85px; + left: 430px; +} + #systemRequestView .urlsInput { top: 180px; } +#systemRequestView .requestSubTypeInput { + top: 217px; + +} + #systemRequestView .policyAppIdInput { top: 217px; } diff --git a/ffw/BasicCommunicationRPC.js b/ffw/BasicCommunicationRPC.js index 6fb65b082..ba81e8d58 100644 --- a/ffw/BasicCommunicationRPC.js +++ b/ffw/BasicCommunicationRPC.js @@ -243,7 +243,10 @@ FFW.BasicCommunication = FFW.RPCObserver } else { this.OnSystemRequest('PROPRIETARY'); } - SDL.SettingsController.policyUpdateRetry(); + + if (FLAGS.ExternalPolicies === true) { + SDL.SettingsController.policyUpdateRetry(); + } } }, /** @@ -289,6 +292,11 @@ FFW.BasicCommunication = FFW.RPCObserver case 'UP_TO_DATE': { messageCode = 'StatusUpToDate'; + //Update is complete, stop retry sequence + if (FLAGS.ExternalPolicies === true) { + SDL.SettingsController.policyUpdateRetry('ABORT'); + } + SDL.SettingsController.policyUpdateFile = null; break; } case 'UPDATING': @@ -397,13 +405,11 @@ FFW.BasicCommunication = FFW.RPCObserver SDL.InfoAppsView.showAppList(); } if (request.method == 'BasicCommunication.SystemRequest') { - SDL.SettingsController.policyUpdateRetry('ABORT'); if(FLAGS.ExternalPolicies === true) { FFW.ExternalPolicies.unpack(request.params.fileName); } else { this.OnReceivedPolicyUpdate(request.params.fileName); } - SDL.SettingsController.policyUpdateFile = null; this.sendBCResult( SDL.SDLModel.data.resultCode.SUCCESS, request.id, @@ -1122,7 +1128,7 @@ FFW.BasicCommunication = FFW.RPCObserver /** * Initiated by HMI. */ - OnSystemRequest: function(type, fileName, url, appID) { + OnSystemRequest: function(type, fileName, url, appID, subType, offset, length, timeout) { Em.Logger.log('FFW.BasicCommunication.OnSystemRequest'); // send request var JSONMessage = { @@ -1131,9 +1137,6 @@ FFW.BasicCommunication = FFW.RPCObserver 'params': { 'requestType': type, 'fileType': 'JSON', - 'offset': 1000, - 'length': 10000, - 'timeout': 500, 'fileName': fileName } }; @@ -1142,6 +1145,23 @@ FFW.BasicCommunication = FFW.RPCObserver } if (appID) { JSONMessage.params.appID = appID; + } + if(subType && subType.length > 0){ + if (type == 'OEM_SPECIFIC'|| + type == 'HTTP'|| + type == 'PROPRIETARY') { + JSONMessage.params.requestSubType = subType; + } + } + + if (offset) { + JSONMessage.params.offset = offset; + } + if (length) { + JSONMessage.params.length = length; + } + if (timeout) { + JSONMessage.params.timeout = timeout; } this.client.send(JSONMessage); }, diff --git a/ffw/NavigationRPC.js b/ffw/NavigationRPC.js index 181b809e5..f7a5a76b3 100644 --- a/ffw/NavigationRPC.js +++ b/ffw/NavigationRPC.js @@ -511,7 +511,7 @@ FFW.Navigation = FFW.RPCObserver.create( * @param {Object} data * @param {number} id */ - wayPointSend: function(resultCode, data, id) { + wayPointSend: function(resultCode, data, id, appID) { if (resultCode == SDL.SDLModel.data.resultCode.SUCCESS && data && id) { // send repsonse @@ -519,6 +519,8 @@ FFW.Navigation = FFW.RPCObserver.create( 'jsonrpc': '2.0', 'id': id, 'result': { + 'code': resultCode, // type (enum) from SDL protocol + 'appID': appID, 'wayPoints': data, 'method': 'Navigation.GetWayPoints' } diff --git a/ffw/UIRPC.js b/ffw/UIRPC.js index 18269befd..6b3b314ff 100644 --- a/ffw/UIRPC.js +++ b/ffw/UIRPC.js @@ -293,8 +293,8 @@ FFW.UI = FFW.RPCObserver.create( request.params.appID ).sdlSetMediaClockTimer(request.params); if (resultCode === SDL.SDLModel.data.resultCode.SUCCESS) { - if(params.enableSeek) { - this.OnSeekMediaClockTimer(params.startTime, params.appID); + if(request.params.enableSeek) { + this.OnSeekMediaClockTimer(request.params.startTime, request.params.appID); } this.sendUIResult(resultCode, request.id, request.method); } else { @@ -321,6 +321,14 @@ FFW.UI = FFW.RPCObserver.create( } break; } + case 'UI.SendHapticData': + { + this.sendError( + SDL.SDLModel.data.resultCode.UNSUPPORTED_REQUEST, request.id, + request.method, 'Haptic data is not supported' + ); + break; + } case 'UI.ChangeRegistration': { if (request.params.appName) {