# Register speed violations listener

```
/**
* Register speed violations listener
*
* @param listener Speed violations
* @param speedLimitKmH speed limit in km per hour, must me >=1
* @param speedLimitTimeoutMs the time we give for driver to reduce speed before throwing violation, must be >= 1000
* @return true if listener registered
* @throws IllegalArgumentException if speedLimitKmH < 1
* @throws IllegalArgumentException if speedLimitTimeoutMs < 1000
*/
```

```
fun registerSpeedViolations(
       speedLimitKmH: Float,
       speedLimitTimeoutMs: Long,
       listener: SpeedViolationsListener
): Boolean
```

```
interface SpeedViolationsListener {
   void onSpeedViolation(SpeedViolation violation);
}
```

```
class SpeedViolation(
       val date: Long,
       val latitude: Double,
       val long: Double,
       val yourSpeed: Float,
       val speedLimit: Float
)
```

```
/**
* Unregister speed violations listener
*
* @return true if listener unregistered
*/fun unregisterSpeedViolations(): Boolean
```
