Loading services/inputflinger/InputReader.cpp +30 −1 Original line number Diff line number Diff line Loading @@ -2373,6 +2373,35 @@ bool KeyboardInputMapper::isKeyboardOrGamepadKey(int32_t scanCode) { || (scanCode >= BTN_JOYSTICK && scanCode < BTN_DIGI); } bool KeyboardInputMapper::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; } return false; } void KeyboardInputMapper::processKey(nsecs_t when, bool down, int32_t scanCode, int32_t usageCode) { int32_t keyCode; Loading Loading @@ -2446,7 +2475,7 @@ void KeyboardInputMapper::processKey(nsecs_t when, bool down, int32_t scanCode, // For internal keyboards, 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 && getDevice()->isExternal()) { if (down && getDevice()->isExternal() && !isMediaKey(keyCode)) { policyFlags |= POLICY_FLAG_WAKE; } Loading services/inputflinger/InputReader.h +1 −0 Original line number Diff line number Diff line Loading @@ -1128,6 +1128,7 @@ private: void dumpParameters(String8& dump); bool isKeyboardOrGamepadKey(int32_t scanCode); bool isMediaKey(int32_t keyCode); void processKey(nsecs_t when, bool down, int32_t scanCode, int32_t usageCode); Loading Loading
services/inputflinger/InputReader.cpp +30 −1 Original line number Diff line number Diff line Loading @@ -2373,6 +2373,35 @@ bool KeyboardInputMapper::isKeyboardOrGamepadKey(int32_t scanCode) { || (scanCode >= BTN_JOYSTICK && scanCode < BTN_DIGI); } bool KeyboardInputMapper::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; } return false; } void KeyboardInputMapper::processKey(nsecs_t when, bool down, int32_t scanCode, int32_t usageCode) { int32_t keyCode; Loading Loading @@ -2446,7 +2475,7 @@ void KeyboardInputMapper::processKey(nsecs_t when, bool down, int32_t scanCode, // For internal keyboards, 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 && getDevice()->isExternal()) { if (down && getDevice()->isExternal() && !isMediaKey(keyCode)) { policyFlags |= POLICY_FLAG_WAKE; } Loading
services/inputflinger/InputReader.h +1 −0 Original line number Diff line number Diff line Loading @@ -1128,6 +1128,7 @@ private: void dumpParameters(String8& dump); bool isKeyboardOrGamepadKey(int32_t scanCode); bool isMediaKey(int32_t keyCode); void processKey(nsecs_t when, bool down, int32_t scanCode, int32_t usageCode); Loading