Skip to content

Commit

Permalink
Remove redundant conditional branch
Browse files Browse the repository at this point in the history
  • Loading branch information
chikoski committed May 20, 2024
1 parent 2643026 commit 149466c
Showing 1 changed file with 16 additions and 35 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -31,20 +31,6 @@ import androidx.compose.ui.input.key.onKeyEvent
import androidx.compose.ui.input.key.onPreviewKeyEvent
import androidx.compose.ui.layout.onPlaced

private val DPadEventsKeyCodes = listOf(
KeyEvent.KEYCODE_DPAD_LEFT,
KeyEvent.KEYCODE_SYSTEM_NAVIGATION_LEFT,
KeyEvent.KEYCODE_DPAD_RIGHT,
KeyEvent.KEYCODE_SYSTEM_NAVIGATION_RIGHT,
KeyEvent.KEYCODE_DPAD_UP,
KeyEvent.KEYCODE_SYSTEM_NAVIGATION_UP,
KeyEvent.KEYCODE_DPAD_DOWN,
KeyEvent.KEYCODE_SYSTEM_NAVIGATION_DOWN,
KeyEvent.KEYCODE_DPAD_CENTER,
KeyEvent.KEYCODE_ENTER,
KeyEvent.KEYCODE_NUMPAD_ENTER
)

/**
* Handles horizontal (Left & Right) D-Pad Keys and consumes the event(s) so that the focus doesn't
* accidentally move to another element.
Expand All @@ -58,30 +44,28 @@ fun Modifier.handleDPadKeyEvents(
if (it.nativeKeyEvent.action == KeyEvent.ACTION_UP) block()
}

if (DPadEventsKeyCodes.contains(it.nativeKeyEvent.keyCode)) {
when (it.nativeKeyEvent.keyCode) {
KeyEvent.KEYCODE_DPAD_LEFT, KeyEvent.KEYCODE_SYSTEM_NAVIGATION_LEFT -> {
onLeft?.apply {
onActionUp(::invoke)
return@onPreviewKeyEvent true
}
when (it.nativeKeyEvent.keyCode) {
KeyEvent.KEYCODE_DPAD_LEFT, KeyEvent.KEYCODE_SYSTEM_NAVIGATION_LEFT -> {
onLeft?.apply {
onActionUp(::invoke)
return@onPreviewKeyEvent true
}
}

KeyEvent.KEYCODE_DPAD_RIGHT, KeyEvent.KEYCODE_SYSTEM_NAVIGATION_RIGHT -> {
onRight?.apply {
onActionUp(::invoke)
return@onPreviewKeyEvent true
}
KeyEvent.KEYCODE_DPAD_RIGHT, KeyEvent.KEYCODE_SYSTEM_NAVIGATION_RIGHT -> {
onRight?.apply {
onActionUp(::invoke)
return@onPreviewKeyEvent true
}
}

KeyEvent.KEYCODE_DPAD_CENTER, KeyEvent.KEYCODE_ENTER, KeyEvent.KEYCODE_NUMPAD_ENTER -> {
onEnter?.apply {
onActionUp(::invoke)
return@onPreviewKeyEvent true
}
KeyEvent.KEYCODE_DPAD_CENTER, KeyEvent.KEYCODE_ENTER, KeyEvent.KEYCODE_NUMPAD_ENTER -> {
onEnter?.invoke().also {
return@onPreviewKeyEvent true
}
}
}

false
}

Expand All @@ -96,10 +80,7 @@ fun Modifier.handleDPadKeyEvents(
onEnter: (() -> Unit)? = null
) = onKeyEvent {

if (
DPadEventsKeyCodes.contains(it.nativeKeyEvent.keyCode) &&
it.nativeKeyEvent.action == KeyEvent.ACTION_UP
) {
if (it.nativeKeyEvent.action == KeyEvent.ACTION_UP) {
when (it.nativeKeyEvent.keyCode) {
KeyEvent.KEYCODE_DPAD_LEFT, KeyEvent.KEYCODE_SYSTEM_NAVIGATION_LEFT -> {
onLeft?.invoke().also { return@onKeyEvent true }
Expand Down

0 comments on commit 149466c

Please sign in to comment.