22 {
23 SessionActivity session = SessionActivity.activeSession;
24 if (session == null)
25 return super.onKeyEvent(event);
26
27 InputDevice device = event.getDevice();
28 if (device != null &&
29 (device.getSources() & InputDevice.SOURCE_GAMEPAD) == InputDevice.SOURCE_GAMEPAD)
30 return super.onKeyEvent(event);
31
32 switch (event.getKeyCode())
33 {
34 case KeyEvent.KEYCODE_VOLUME_UP:
35 case KeyEvent.KEYCODE_VOLUME_DOWN:
36 case KeyEvent.KEYCODE_POWER:
37 return super.onKeyEvent(event);
38 }
39
40
41 if (event.getScanCode() == 1 && event.getKeyCode() != KeyEvent.KEYCODE_ESCAPE)
42 {
43 event =
44 new KeyEvent(event.getDownTime(), event.getEventTime(), event.getAction(),
45 KeyEvent.KEYCODE_ESCAPE, event.getRepeatCount(), event.getMetaState());
46 }
47
48 return session.handleKeyEvent(event);
49 }