Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d887c7d1 authored by Michal Brzezinski's avatar Michal Brzezinski
Browse files

Handling case when device returned from InputManager is null

getInputDevice is @Nullable so we should handle that case and indicate the device is not valid keyboard

Fixes: 278065638
Test: emitsDisconnected_whenDeviceWithIdDoesNotExist
Change-Id: I7e267cc6809b12457de22173bf6450b355b5ab63
parent 50ab78c2
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -106,7 +106,7 @@ constructor(
    }

    private fun isPhysicalFullKeyboard(deviceId: Int): Boolean {
        val device = inputManager.getInputDevice(deviceId)
        val device = inputManager.getInputDevice(deviceId) ?: return false
        return !device.isVirtual && device.isFullKeyboard
    }

+11 −0
Original line number Diff line number Diff line
@@ -95,6 +95,16 @@ class KeyboardRepositoryTest : SysuiTestCase() {
            assertThat(isKeyboardConnected).isTrue()
        }

    @Test
    fun emitsDisconnected_whenDeviceWithIdDoesNotExist() =
        testScope.runTest {
            val deviceListener = captureDeviceListener()
            val isKeyboardConnected by collectLastValue(underTest.keyboardConnected)

            deviceListener.onInputDeviceAdded(NULL_DEVICE_ID)
            assertThat(isKeyboardConnected).isFalse()
        }

    @Test
    fun emitsDisconnected_whenKeyboardDisconnects() =
        testScope.runTest {
@@ -172,6 +182,7 @@ class KeyboardRepositoryTest : SysuiTestCase() {
        private const val VIRTUAL_FULL_KEYBOARD_ID = 2
        private const val PHYSICAL_NOT_FULL_KEYBOARD_ID = 3
        private const val ANOTHER_PHYSICAL_FULL_KEYBOARD_ID = 4
        private const val NULL_DEVICE_ID = 5

        private val INPUT_DEVICES_MAP: Map<Int, InputDevice> =
            mapOf(