---
title: "SoftKeyboardInterceptionModifierNode"
description: "Implement this interface to create a [Modifier.Node] that can intercept hardware Key events
before they are sent to the software keyboard. This can be used to intercept key input from a
DPad, or physical keyboard connected to the device and is not applicable to input that is sent to
the soft keyboard via spell check or autocomplete.

The event is routed to the focused item. Before reaching the focused item,
[onPreInterceptKeyBeforeSoftKeyboard] is called for parents of the focused item. If the parents
don't consume the event, [onPreSoftwareKeyboardKeyEvent]() is called for the focused item. If the
event is still not consumed, [onInterceptKeyBeforeSoftKeyboard] is called on the focused item's
parents."
type: "interface"
---

<div class='type'>Interface</div>


<a id='references'></a>

<div class='sourceset sourceset-common'>Common</div>



```kotlin
interface SoftKeyboardInterceptionModifierNode : DelegatableNode
```


Implement this interface to create a `Modifier.Node` that can intercept hardware Key events
before they are sent to the software keyboard. This can be used to intercept key input from a
DPad, or physical keyboard connected to the device and is not applicable to input that is sent to
the soft keyboard via spell check or autocomplete.

The event is routed to the focused item. Before reaching the focused item,
`onPreInterceptKeyBeforeSoftKeyboard` is called for parents of the focused item. If the parents
don't consume the event, `onPreSoftwareKeyboardKeyEvent`() is called for the focused item. If the
event is still not consumed, `onInterceptKeyBeforeSoftKeyboard` is called on the focused item's
parents.


## Functions

```kotlin
fun onInterceptKeyBeforeSoftKeyboard(event: KeyEvent): Boolean
```


This function is called when a `KeyEvent` is received by this node during the upward pass.
While implementing this callback, return true to stop propagation of this event. If you
return false, the key event will be sent to this `SoftKeyboardInterceptionModifierNode`'s
parent.


```kotlin
fun onPreInterceptKeyBeforeSoftKeyboard(event: KeyEvent): Boolean
```


This function is called when a `KeyEvent` is received by this node during the downward pass.
It gives ancestors of a focused component the chance to intercept an event. Return true to
stop propagation of this event. If you return false, the event will be sent to this
`SoftKeyboardInterceptionModifierNode`'s child. If none of the children consume the event, it
will be sent back up to the root using the `onPreInterceptKeyBeforeSoftKeyboard` function.



