| <?xml version="1.0" encoding="utf-8"?> |
| |
| <!-- |
| This XML allows OEMs to configure a driving state to UX restrictions. There are 2 major classes |
| of configuration: |
| 1. Restriction Mapping as defined by the <restrictionMapping> tag. |
| 2. Restriction Parameters for restrictions that can be parametrized as defined by |
| <restrictionParameters> tag. |
| |
| Note: |
| 1. The tags and attributes are declared in packages/services/Car/service/res/attrs.xml. |
| 2. The driving states defined there should align with driving states (@CarDrivingState) defined in |
| packages/services/Car/car-lib/src/android/car/drivingstate/CarDrivingStateEvent.java |
| 3. Similarly the UX restrictions should align with |
| packages/services/Car/car-lib/src/android/car/drivingstate/CarUxRestrictions.java |
| --> |
| |
| <UxRestrictions xmlns:car="http://schemas.android.com/apk/res-auto"> |
| <!-- Map the driving states to UX restrictions here --> |
| <!-- Note - The platform takes a fully restricted approach when there is no information or if |
| the information is malformed. As a result, |
| 1. Default values for requiresDistractionOptimization is true, and uxr is fully_restricted. |
| 2. If uxr != baseline, then requiresDistractionOptimization is automatically promoted to true, |
| even if it is declared as false. Because it doesn't make sense to have an non baseline UX |
| restriction without requiresDistractionOptimization set to true. |
| So if we don't want any restrictions, requiresDistractionOptimization should be explicitly |
| marked as false and uxr should be explicitly set to baseline. --> |
| <RestrictionMapping> |
| <DrivingState car:state="parked"> |
| <Restrictions car:requiresDistractionOptimization="false" car:uxr="baseline"/> |
| </DrivingState> |
| |
| <DrivingState car:state="idling"> |
| <Restrictions car:requiresDistractionOptimization="false" car:uxr="baseline"/> |
| </DrivingState> |
| |
| <!-- This is to illustrate how to add multiple speed ranges. The restrictions here |
| are the same for both the speed ranges, but could be configured to be different. |
| NOTE: |
| 1. The speed units is in meters per second to be in accordance with the |
| PERF_VEHICLE SPEED definition in hardware/interfaces/automotive/vehicle/2.0/types.hal |
| 2. The speed ranges should be non overlapping, i.e one speed value cannot be in more |
| than one range. It is denoted in a left closed, right open interval [minSpeed, maxSpeed). |
| For ex: [0,5) indicates speed >= 0 && speed < 5.0m/s. |
| 3. For a speed range with no high limit, maxSpeed is not filled. For ex., if the speed |
| range is anything >=5m/s, only the minSpeed is filled with a value of 5m/s. There cannot be |
| a range higher than this, which will violate the 2nd condition above. |
| 4. If the above conditions are not met, mapping behavior is undefined. --> |
| <!-- This is restrictions for moving and speed [0,5m/s) --> |
| <DrivingState car:state="moving" car:minSpeed="0" car:maxSpeed="5.0"> |
| <Restrictions car:requiresDistractionOptimization="true" car:uxr="fully_restricted"/> |
| </DrivingState> |
| |
| <!-- Restrictions for speed >=5 --> |
| <DrivingState car:state="moving" car:minSpeed="5.0"> |
| <Restrictions car:requiresDistractionOptimization="true" car:uxr="fully_restricted"/> |
| </DrivingState> |
| </RestrictionMapping> |
| |
| <!-- Configure restriction parameters here--> |
| <RestrictionParameters> |
| <!-- Parameters to express displayed String related restrictions --> |
| <StringRestrictions car:maxLength="120"/> |
| <!-- Parameters to express content related restrictions --> |
| <ContentRestrictions car:maxCumulativeItems="21" car:maxDepth="3"/> |
| </RestrictionParameters> |
| |
| </UxRestrictions> |