Loading services/inputflinger/reader/mapper/KeyboardInputMapper.cpp +2 −34 Original line number Diff line number Diff line Loading @@ -61,36 +61,6 @@ static bool isSupportedScanCode(int32_t scanCode) { scanCode >= BTN_WHEEL; } static bool isMediaKey(int32_t keyCode) { switch (keyCode) { case AKEYCODE_MEDIA_PLAY: case AKEYCODE_MEDIA_PAUSE: case AKEYCODE_MEDIA_PLAY_PAUSE: case AKEYCODE_MUTE: case AKEYCODE_HEADSETHOOK: case AKEYCODE_MEDIA_STOP: case AKEYCODE_MEDIA_NEXT: case AKEYCODE_MEDIA_PREVIOUS: case AKEYCODE_MEDIA_REWIND: case AKEYCODE_MEDIA_RECORD: case AKEYCODE_MEDIA_FAST_FORWARD: case AKEYCODE_MEDIA_SKIP_FORWARD: case AKEYCODE_MEDIA_SKIP_BACKWARD: case AKEYCODE_MEDIA_STEP_FORWARD: case AKEYCODE_MEDIA_STEP_BACKWARD: case AKEYCODE_MEDIA_AUDIO_TRACK: case AKEYCODE_VOLUME_UP: case AKEYCODE_VOLUME_DOWN: case AKEYCODE_VOLUME_MUTE: case AKEYCODE_TV_AUDIO_DESCRIPTION: case AKEYCODE_TV_AUDIO_DESCRIPTION_MIX_UP: case AKEYCODE_TV_AUDIO_DESCRIPTION_MIX_DOWN: return true; default: return false; } } // --- KeyboardInputMapper --- KeyboardInputMapper::KeyboardInputMapper(InputDeviceContext& deviceContext, uint32_t source, Loading Loading @@ -295,14 +265,12 @@ std::list<NotifyArgs> KeyboardInputMapper::processKey(nsecs_t when, nsecs_t read keyMetaState = mMetaState; } // Key down on external an keyboard should wake the device. // Any key down on an external keyboard should wake the device. // We don't do this for internal keyboards to prevent them from waking up in your pocket. // For internal keyboards and devices for which the default wake behavior is explicitly // prevented (e.g. TV remotes), the key layout file should specify the policy flags for each // wake key individually. // TODO: Use the input device configuration to control this behavior more finely. if (down && getDeviceContext().isExternal() && !mParameters.doNotWakeByDefault && !isMediaKey(keyCode)) { if (down && getDeviceContext().isExternal() && !mParameters.doNotWakeByDefault) { policyFlags |= POLICY_FLAG_WAKE; } Loading services/inputflinger/tests/InputReader_test.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -3658,8 +3658,8 @@ protected: }; TEST_F(KeyboardInputMapperTest_ExternalDevice, WakeBehavior) { // For external devices, non-media keys will trigger wake on key down. Media keys need to be // marked as WAKE in the keylayout file to trigger wake. // For external devices, keys will trigger wake on key down. Media keys should also trigger // wake if triggered from external devices. mFakeEventHub->addKey(EVENTHUB_ID, KEY_HOME, 0, AKEYCODE_HOME, 0); mFakeEventHub->addKey(EVENTHUB_ID, KEY_PLAY, 0, AKEYCODE_MEDIA_PLAY, 0); Loading @@ -3681,7 +3681,7 @@ TEST_F(KeyboardInputMapperTest_ExternalDevice, WakeBehavior) { process(mapper, ARBITRARY_TIME, READ_TIME, EV_KEY, KEY_PLAY, 1); ASSERT_NO_FATAL_FAILURE(mFakeListener->assertNotifyKeyWasCalled(&args)); ASSERT_EQ(uint32_t(0), args.policyFlags); ASSERT_EQ(POLICY_FLAG_WAKE, args.policyFlags); process(mapper, ARBITRARY_TIME + 1, READ_TIME, EV_KEY, KEY_PLAY, 0); ASSERT_NO_FATAL_FAILURE(mFakeListener->assertNotifyKeyWasCalled(&args)); Loading Loading
services/inputflinger/reader/mapper/KeyboardInputMapper.cpp +2 −34 Original line number Diff line number Diff line Loading @@ -61,36 +61,6 @@ static bool isSupportedScanCode(int32_t scanCode) { scanCode >= BTN_WHEEL; } static bool isMediaKey(int32_t keyCode) { switch (keyCode) { case AKEYCODE_MEDIA_PLAY: case AKEYCODE_MEDIA_PAUSE: case AKEYCODE_MEDIA_PLAY_PAUSE: case AKEYCODE_MUTE: case AKEYCODE_HEADSETHOOK: case AKEYCODE_MEDIA_STOP: case AKEYCODE_MEDIA_NEXT: case AKEYCODE_MEDIA_PREVIOUS: case AKEYCODE_MEDIA_REWIND: case AKEYCODE_MEDIA_RECORD: case AKEYCODE_MEDIA_FAST_FORWARD: case AKEYCODE_MEDIA_SKIP_FORWARD: case AKEYCODE_MEDIA_SKIP_BACKWARD: case AKEYCODE_MEDIA_STEP_FORWARD: case AKEYCODE_MEDIA_STEP_BACKWARD: case AKEYCODE_MEDIA_AUDIO_TRACK: case AKEYCODE_VOLUME_UP: case AKEYCODE_VOLUME_DOWN: case AKEYCODE_VOLUME_MUTE: case AKEYCODE_TV_AUDIO_DESCRIPTION: case AKEYCODE_TV_AUDIO_DESCRIPTION_MIX_UP: case AKEYCODE_TV_AUDIO_DESCRIPTION_MIX_DOWN: return true; default: return false; } } // --- KeyboardInputMapper --- KeyboardInputMapper::KeyboardInputMapper(InputDeviceContext& deviceContext, uint32_t source, Loading Loading @@ -295,14 +265,12 @@ std::list<NotifyArgs> KeyboardInputMapper::processKey(nsecs_t when, nsecs_t read keyMetaState = mMetaState; } // Key down on external an keyboard should wake the device. // Any key down on an external keyboard should wake the device. // We don't do this for internal keyboards to prevent them from waking up in your pocket. // For internal keyboards and devices for which the default wake behavior is explicitly // prevented (e.g. TV remotes), the key layout file should specify the policy flags for each // wake key individually. // TODO: Use the input device configuration to control this behavior more finely. if (down && getDeviceContext().isExternal() && !mParameters.doNotWakeByDefault && !isMediaKey(keyCode)) { if (down && getDeviceContext().isExternal() && !mParameters.doNotWakeByDefault) { policyFlags |= POLICY_FLAG_WAKE; } Loading
services/inputflinger/tests/InputReader_test.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -3658,8 +3658,8 @@ protected: }; TEST_F(KeyboardInputMapperTest_ExternalDevice, WakeBehavior) { // For external devices, non-media keys will trigger wake on key down. Media keys need to be // marked as WAKE in the keylayout file to trigger wake. // For external devices, keys will trigger wake on key down. Media keys should also trigger // wake if triggered from external devices. mFakeEventHub->addKey(EVENTHUB_ID, KEY_HOME, 0, AKEYCODE_HOME, 0); mFakeEventHub->addKey(EVENTHUB_ID, KEY_PLAY, 0, AKEYCODE_MEDIA_PLAY, 0); Loading @@ -3681,7 +3681,7 @@ TEST_F(KeyboardInputMapperTest_ExternalDevice, WakeBehavior) { process(mapper, ARBITRARY_TIME, READ_TIME, EV_KEY, KEY_PLAY, 1); ASSERT_NO_FATAL_FAILURE(mFakeListener->assertNotifyKeyWasCalled(&args)); ASSERT_EQ(uint32_t(0), args.policyFlags); ASSERT_EQ(POLICY_FLAG_WAKE, args.policyFlags); process(mapper, ARBITRARY_TIME + 1, READ_TIME, EV_KEY, KEY_PLAY, 0); ASSERT_NO_FATAL_FAILURE(mFakeListener->assertNotifyKeyWasCalled(&args)); Loading