This module contains the service API for 'safety lock' related functionality.

Safety lock is a feature that allows the UI to disable or change certain functionality depending on whether or not it's safe for the driver to do so. E.g., while driving it is commonly considered unsafe for the driver to be typing, and so a frontend that allows text input may disable its input field when SafetyLockService.isSafetyLockEnabled is set to true.

The exact criteria for enabling safety lock depends on the service implementation. Common criteria include the vehicle's speed based or the gear stick position.

This service has multiple instances to allow activating safety lock on one display (for the driver) without activating it on others (such as for the passenger). The service implementation can either determine this internally based on its IviInstanceId or the service may be unavailable in certain IVI instances. Because the service may not be available in the client's instance, clients should access the service through SafetyLockService.Companion.createApiOrNull rather than SafetyLockService.Companion.createApi.