Skip to content

Commit e5743af

Browse files
ShobhitAdiCollin
andauthored
Fix/Check priority ranking when there is an existing alert (#298)
* Add priority to appModel and check priority ranking when there is an existing alert * Apply suggestions from code review Co-Authored-By: Collin <[email protected]> * Style fix Co-authored-by: Collin <[email protected]>
1 parent ee584ae commit e5743af

File tree

6 files changed

+40
-8
lines changed

6 files changed

+40
-8
lines changed

app/controller/sdl/Abstract/Controller.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -919,7 +919,8 @@ SDL.SDLController = Em.Object.extend(
919919
dayColorScheme: isDayColorSchemeDefined ? params.dayColorScheme : SDL.SDLModelData.data.defaultColorScheme,
920920
nightColorScheme: isNightColorSchemeDefined ? params.nightColorScheme : SDL.SDLModelData.data.defaultColorScheme,
921921
policyAppID: params.policyAppID,
922-
webEngineApp: isWebEngineApp
922+
webEngineApp: isWebEngineApp,
923+
priority: params.priority ? params.priority : 'NONE'
923924
}
924925
)
925926
);
@@ -938,7 +939,8 @@ SDL.SDLController = Em.Object.extend(
938939
dayColorScheme: isDayColorSchemeDefined ? params.dayColorScheme : SDL.SDLModelData.data.defaultColorScheme,
939940
nightColorScheme: isNightColorSchemeDefined ? params.nightColorScheme : SDL.SDLModelData.data.defaultColorScheme,
940941
policyAppID: params.policyAppID,
941-
webEngineApp: isWebEngineApp
942+
webEngineApp: isWebEngineApp,
943+
priority: params.priority ? params.priority : 'NONE'
942944
}
943945
)
944946
);

app/controller/sdl/RController.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,8 @@ SDL.RController = SDL.SDLController.extend(
308308
dayColorScheme: "dayColorScheme" in params ? params.dayColorScheme : SDL.SDLModelData.defaultTemplateColorScheme,
309309
nightColorScheme: "nightColorScheme" in params ? params.nightColorScheme : SDL.SDLModelData.defaultTemplateColorScheme,
310310
policyAppID: params.policyAppID,
311-
webEngineApp: isWebEngineApp
311+
webEngineApp: isWebEngineApp,
312+
priority: params.priority ? params.priority : 'NONE'
312313
}
313314
)
314315
);
@@ -329,7 +330,8 @@ SDL.RController = SDL.SDLController.extend(
329330
dayColorScheme: "dayColorScheme" in params ? params.dayColorScheme : SDL.SDLModelData.data.defaultColorScheme,
330331
nightColorScheme: "nightColorScheme" in params ? params.nightColorScheme : SDL.SDLModelData.data.defaultColorScheme,
331332
policyAppID: params.policyAppID,
332-
webEngineApp: isWebEngineApp
333+
webEngineApp: isWebEngineApp,
334+
priority: params.priority ? params.priority : 'NONE'
333335
}
334336
)
335337
);
@@ -348,7 +350,8 @@ SDL.RController = SDL.SDLController.extend(
348350
dayColorScheme: "dayColorScheme" in params ? params.dayColorScheme : SDL.SDLModelData.defaultTemplateColorScheme,
349351
nightColorScheme: "nightColorScheme" in params ? params.nightColorScheme : SDL.SDLModelData.defaultTemplateColorScheme,
350352
policyAppID: params.policyAppID,
351-
webEngineApp: isWebEngineApp
353+
webEngineApp: isWebEngineApp,
354+
priority: params.priority ? params.priority : 'NONE'
352355
}
353356
)
354357
);

app/model/sdl/Abstract/Model.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1119,10 +1119,22 @@ SDL.SDLModel = Em.Object.extend({
11191119
*/
11201120
onUIAlert: function(message, alertRequestId) {
11211121

1122+
let appModel = SDL.SDLController.getApplicationModel(message.appID)
1123+
11221124
if (!SDL.AlertPopUp.active) {
1123-
SDL.AlertPopUp.AlertActive(message, alertRequestId);
1125+
SDL.AlertPopUp.AlertActive(message, alertRequestId, appModel.priority);
11241126
return true;
11251127
} else {
1128+
let currentAlertPriority = SDL.AlertPopUp.priority
1129+
if (currentAlertPriority && currentAlertPriority in SDL.SDLModel.data.appPriority
1130+
&& appModel.priority in SDL.SDLModel.data.appPriority) {
1131+
if (SDL.SDLModel.data.appPriority[currentAlertPriority] > SDL.SDLModel.data.appPriority[appModel.priority]) {
1132+
// Enum is arranged in descending order (EMERGENCY being the highest, NONE being the lowest)
1133+
SDL.AlertPopUp.deactivate('ABORTED', 'Lower priority than the incoming alert')
1134+
SDL.AlertPopUp.AlertActive(message, alertRequestId, appModel.priority);
1135+
return true;
1136+
}
1137+
}
11261138
SDL.SDLController.alertResponse(this.data.resultCode.REJECTED,
11271139
alertRequestId
11281140
);

app/model/sdl/Abstract/data.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -457,6 +457,17 @@ SDL.SDLModelData = Em.Object.create(
457457
'GENERIC_ERROR': 22,
458458
'USER_DISALLOWED': 23
459459
},
460+
/**
461+
* Enum with app priority rankings
462+
*/
463+
appPriority: {
464+
'EMERGENCY': 0,
465+
'NAVIGATION': 1,
466+
'VOICE_COMMUNICATION': 2,
467+
'COMMUNICATION': 3,
468+
'NORMAL': 4,
469+
'NONE': 5
470+
},
460471
/**
461472
* Info navigationApp data for ShowConstantTBT request
462473
*

app/view/sdl/AlertPopUp.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ SDL.AlertPopUp = Em.ContainerView.create(
220220
}
221221
}
222222
},
223-
AlertActive: function(message, alertRequestId) {
223+
AlertActive: function(message, alertRequestId, priority) {
224224
var self = this;
225225
this.set('alertRequestId', alertRequestId);
226226
this.set('cancelID', message.cancelID);
@@ -258,6 +258,7 @@ SDL.AlertPopUp = Em.ContainerView.create(
258258
// for
259259
// Alert
260260
// popUp
261+
this.set('priority', priority);
261262
clearTimeout(this.timer);
262263
this.timer = setTimeout(
263264
function() {

ffw/BasicCommunicationRPC.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -500,8 +500,11 @@ FFW.BasicCommunication = FFW.RPCObserver
500500
}
501501
}
502502
if (notification.method == this.onAppRegisteredNotification) {
503+
let appModel = Object.assign(notification.params.application, {
504+
"priority": notification.params.priority ? notification.params.priority : 'NONE'
505+
});
503506
SDL.SDLModel.onAppRegistered(
504-
notification.params.application, notification.params.vrSynonyms
507+
appModel, notification.params.vrSynonyms
505508
);
506509
this.OnFindApplications();
507510
const mainWindowID = 0;

0 commit comments

Comments
 (0)