Launcher can match certain values against regular expressions to customize intents and groups
Overview
Filtering of custom intents and definition of implied groups can be accomplished with and/or criteria and regular expressions (regex). A criterion checks the value stored in a replacement variable from the device, Launcher, the configuration file, or session object against a regex pattern to determine what device behavior or layout should apply in a specific scenario.
Technical Guide
Criteria Arrays
Field
Description
criteria_OR
array Filters for instances where at least one field matches its pattern.
criteria_AND
array Filters for instances where all fields must must match their respective patterns.
Both "criteria_OR" and "criteria_AND" arrays need to be included in an object, even if one is empty.
Criteria Object Parameters
Field
Description
field
string A replacement variable, written in the format "_${replacement variable}" (e.g. "_${device.MODEL}").
pattern
string The regular expression that is desired to match the field's content.
Examples
Criteria for Custom Intent Filtering
"intents": {"boot": [// Run a StageNow XML on boot for all device models starting with "TC": {"typeIntent":"p","action":"XML","data":"file/path/to/stageNowFile.xml","criteria_OR": [ {"field":"_${device.MODEL}","pattern":"/^TC.*$/" } ],"criteria_AND": [] } ],"cradle": [// Rotate the Launcher to landscape on cradle for device models starting with "ET" or "CC": {"action":"com.bluefletch.launcher.ACTION_ROTATE_LANDSCAPE","typeIntent":"p","criteria_OR": [ {"field":"_${device.MODEL}","pattern":"/^ET.*$/" }, {"field":"_${device.MODEL}","pattern":"/^CC.*$/" } ],"criteria_AND": [] },// Mute audio on cradle if device is logged out (no user ID) and is at site 1001: {"action":"MUTE_AUDIO","typeIntent":"p","criteria_AND": [ {"field":"_${session.userId}","pattern":"^_$" }, {"field":"_${config.ex.siteId}","pattern":"1001" } ],"criteria_OR": [] } ] }
Criteria for Implied Groups
"impliedGroups" : [// Display this group's layout if the session object's group name contains "Blue" or "BLUE": {"group":"ContainsBLUE_or_Blue_Group","criteria_OR": [ { "field":"${session.groups}","pattern":".*Blue.*|.*BLUE.*" } ],"criteria_AND": [] },// Display this group's layout if the session object's passwordExpiration attribute contains one or more digits: {"group":"ContainsNumber_Group","criteria_OR": [ { "field":"${session.ex.passwordExpiration}","pattern":"[0-9]+" } ],"criteria_AND": [] },// Display this group's layout if the session object's group name ends with "Managers"// OR the site ID is 1133: {"group":"EndsWithManager_Or_isSite113_Group","criteria_OR": [ { "field":"${session.groups}","pattern":".*Managers$" }, { "field":"${config.ex.siteId}","pattern":"1133" } ],"criteria_AND": [] },// Display this group's layout if the session object's group name contains "VTV"// AND the site name is "Pilot"// OR if group name contains "Managers": {"group":"Pilot_VTV_And_Managers","criteria_AND": [ { "field":"${session.groups}","pattern":".*VTV.*" }, { "field":"${config.ex.siteName}","pattern":"Pilot" } ],"criteria_OR": [ { "field":"${session.groups}","pattern":".*Managers.*" } ] }]