Add direct keys to launch applications.
Many TV remotes have direct keys to launch the specific application such as Netflix. KEYCODE_APP_X are intended to be used for such a purpose and to be handled by GlobalKeyManager. Categorized like below. - KEYCODE_VIDEO_APP_X - KEYCODE_FEATURED_APP_X - KEYCODE_DEMO_APP_X Prevent KEYCODE_APP_X from being sent to the apps. Bug: 182532772 Test: atest KeyEventInterceptTest Change-Id: I13c469c92da97014be5c76c230806331f0602b54 Merged-In: I13c469c92da97014be5c76c230806331f0602b54
This commit is contained in:
committed by
Siarhei Vishniakou
parent
27c03c7f68
commit
11e61ab1fd
@@ -47505,6 +47505,10 @@ package android.view {
|
||||
field public static final int KEYCODE_CUT = 277; // 0x115
|
||||
field public static final int KEYCODE_D = 32; // 0x20
|
||||
field public static final int KEYCODE_DEL = 67; // 0x43
|
||||
field public static final int KEYCODE_DEMO_APP_1 = 301; // 0x12d
|
||||
field public static final int KEYCODE_DEMO_APP_2 = 302; // 0x12e
|
||||
field public static final int KEYCODE_DEMO_APP_3 = 303; // 0x12f
|
||||
field public static final int KEYCODE_DEMO_APP_4 = 304; // 0x130
|
||||
field public static final int KEYCODE_DPAD_CENTER = 23; // 0x17
|
||||
field public static final int KEYCODE_DPAD_DOWN = 20; // 0x14
|
||||
field public static final int KEYCODE_DPAD_DOWN_LEFT = 269; // 0x10d
|
||||
@@ -47536,6 +47540,10 @@ package android.view {
|
||||
field public static final int KEYCODE_F7 = 137; // 0x89
|
||||
field public static final int KEYCODE_F8 = 138; // 0x8a
|
||||
field public static final int KEYCODE_F9 = 139; // 0x8b
|
||||
field public static final int KEYCODE_FEATURED_APP_1 = 297; // 0x129
|
||||
field public static final int KEYCODE_FEATURED_APP_2 = 298; // 0x12a
|
||||
field public static final int KEYCODE_FEATURED_APP_3 = 299; // 0x12b
|
||||
field public static final int KEYCODE_FEATURED_APP_4 = 300; // 0x12c
|
||||
field public static final int KEYCODE_FOCUS = 80; // 0x50
|
||||
field public static final int KEYCODE_FORWARD = 125; // 0x7d
|
||||
field public static final int KEYCODE_FORWARD_DEL = 112; // 0x70
|
||||
@@ -47701,6 +47709,14 @@ package android.view {
|
||||
field public static final int KEYCODE_U = 49; // 0x31
|
||||
field public static final int KEYCODE_UNKNOWN = 0; // 0x0
|
||||
field public static final int KEYCODE_V = 50; // 0x32
|
||||
field public static final int KEYCODE_VIDEO_APP_1 = 289; // 0x121
|
||||
field public static final int KEYCODE_VIDEO_APP_2 = 290; // 0x122
|
||||
field public static final int KEYCODE_VIDEO_APP_3 = 291; // 0x123
|
||||
field public static final int KEYCODE_VIDEO_APP_4 = 292; // 0x124
|
||||
field public static final int KEYCODE_VIDEO_APP_5 = 293; // 0x125
|
||||
field public static final int KEYCODE_VIDEO_APP_6 = 294; // 0x126
|
||||
field public static final int KEYCODE_VIDEO_APP_7 = 295; // 0x127
|
||||
field public static final int KEYCODE_VIDEO_APP_8 = 296; // 0x128
|
||||
field public static final int KEYCODE_VOICE_ASSIST = 231; // 0xe7
|
||||
field public static final int KEYCODE_VOLUME_DOWN = 25; // 0x19
|
||||
field public static final int KEYCODE_VOLUME_MUTE = 164; // 0xa4
|
||||
|
||||
@@ -2748,7 +2748,7 @@ package android.view {
|
||||
method public static String actionToString(int);
|
||||
method public final void setDisplayId(int);
|
||||
field public static final int FLAG_IS_ACCESSIBILITY_EVENT = 2048; // 0x800
|
||||
field public static final int LAST_KEYCODE = 288; // 0x120
|
||||
field public static final int LAST_KEYCODE = 304; // 0x130
|
||||
}
|
||||
|
||||
public final class KeyboardShortcutGroup implements android.os.Parcelable {
|
||||
|
||||
@@ -830,13 +830,45 @@ public class KeyEvent extends InputEvent implements Parcelable {
|
||||
* consuming content. May be consumed by system to set account globally.
|
||||
*/
|
||||
public static final int KEYCODE_PROFILE_SWITCH = 288;
|
||||
/** Key code constant: Video Application key #1. */
|
||||
public static final int KEYCODE_VIDEO_APP_1 = 289;
|
||||
/** Key code constant: Video Application key #2. */
|
||||
public static final int KEYCODE_VIDEO_APP_2 = 290;
|
||||
/** Key code constant: Video Application key #3. */
|
||||
public static final int KEYCODE_VIDEO_APP_3 = 291;
|
||||
/** Key code constant: Video Application key #4. */
|
||||
public static final int KEYCODE_VIDEO_APP_4 = 292;
|
||||
/** Key code constant: Video Application key #5. */
|
||||
public static final int KEYCODE_VIDEO_APP_5 = 293;
|
||||
/** Key code constant: Video Application key #6. */
|
||||
public static final int KEYCODE_VIDEO_APP_6 = 294;
|
||||
/** Key code constant: Video Application key #7. */
|
||||
public static final int KEYCODE_VIDEO_APP_7 = 295;
|
||||
/** Key code constant: Video Application key #8. */
|
||||
public static final int KEYCODE_VIDEO_APP_8 = 296;
|
||||
/** Key code constant: Featured Application key #1. */
|
||||
public static final int KEYCODE_FEATURED_APP_1 = 297;
|
||||
/** Key code constant: Featured Application key #2. */
|
||||
public static final int KEYCODE_FEATURED_APP_2 = 298;
|
||||
/** Key code constant: Featured Application key #3. */
|
||||
public static final int KEYCODE_FEATURED_APP_3 = 299;
|
||||
/** Key code constant: Featured Application key #4. */
|
||||
public static final int KEYCODE_FEATURED_APP_4 = 300;
|
||||
/** Key code constant: Demo Application key #1. */
|
||||
public static final int KEYCODE_DEMO_APP_1 = 301;
|
||||
/** Key code constant: Demo Application key #2. */
|
||||
public static final int KEYCODE_DEMO_APP_2 = 302;
|
||||
/** Key code constant: Demo Application key #3. */
|
||||
public static final int KEYCODE_DEMO_APP_3 = 303;
|
||||
/** Key code constant: Demo Application key #4. */
|
||||
public static final int KEYCODE_DEMO_APP_4 = 304;
|
||||
|
||||
/**
|
||||
/**
|
||||
* Integer value of the last KEYCODE. Increases as new keycodes are added to KeyEvent.
|
||||
* @hide
|
||||
*/
|
||||
@TestApi
|
||||
public static final int LAST_KEYCODE = KEYCODE_PROFILE_SWITCH;
|
||||
public static final int LAST_KEYCODE = KEYCODE_DEMO_APP_4;
|
||||
|
||||
// NOTE: If you add a new keycode here you must also add it to:
|
||||
// isSystem()
|
||||
|
||||
@@ -1984,6 +1984,22 @@
|
||||
<enum name="KEYCODE_THUMBS_UP" value="286" />
|
||||
<enum name="KEYCODE_THUMBS_DOWN" value="287" />
|
||||
<enum name="KEYCODE_PROFILE_SWITCH" value="288" />
|
||||
<enum name="KEYCODE_VIDEO_APP_1" value="289" />
|
||||
<enum name="KEYCODE_VIDEO_APP_2" value="290" />
|
||||
<enum name="KEYCODE_VIDEO_APP_3" value="291" />
|
||||
<enum name="KEYCODE_VIDEO_APP_4" value="292" />
|
||||
<enum name="KEYCODE_VIDEO_APP_5" value="293" />
|
||||
<enum name="KEYCODE_VIDEO_APP_6" value="294" />
|
||||
<enum name="KEYCODE_VIDEO_APP_7" value="295" />
|
||||
<enum name="KEYCODE_VIDEO_APP_8" value="296" />
|
||||
<enum name="KEYCODE_FEATURED_APP_1" value="297" />
|
||||
<enum name="KEYCODE_FEATURED_APP_2" value="298" />
|
||||
<enum name="KEYCODE_FEATURED_APP_3" value="299" />
|
||||
<enum name="KEYCODE_FEATURED_APP_4" value="300" />
|
||||
<enum name="KEYCODE_DEMO_APP_1" value="301" />
|
||||
<enum name="KEYCODE_DEMO_APP_2" value="302" />
|
||||
<enum name="KEYCODE_DEMO_APP_3" value="303" />
|
||||
<enum name="KEYCODE_DEMO_APP_4" value="304" />
|
||||
</attr>
|
||||
|
||||
<!-- ***************************************************************** -->
|
||||
|
||||
@@ -2666,6 +2666,24 @@ public class PhoneWindowManager implements WindowManagerPolicy {
|
||||
Slog.wtf(TAG, "KEYCODE_VOICE_ASSIST should be handled in"
|
||||
+ " interceptKeyBeforeQueueing");
|
||||
return key_consumed;
|
||||
case KeyEvent.KEYCODE_VIDEO_APP_1:
|
||||
case KeyEvent.KEYCODE_VIDEO_APP_2:
|
||||
case KeyEvent.KEYCODE_VIDEO_APP_3:
|
||||
case KeyEvent.KEYCODE_VIDEO_APP_4:
|
||||
case KeyEvent.KEYCODE_VIDEO_APP_5:
|
||||
case KeyEvent.KEYCODE_VIDEO_APP_6:
|
||||
case KeyEvent.KEYCODE_VIDEO_APP_7:
|
||||
case KeyEvent.KEYCODE_VIDEO_APP_8:
|
||||
case KeyEvent.KEYCODE_FEATURED_APP_1:
|
||||
case KeyEvent.KEYCODE_FEATURED_APP_2:
|
||||
case KeyEvent.KEYCODE_FEATURED_APP_3:
|
||||
case KeyEvent.KEYCODE_FEATURED_APP_4:
|
||||
case KeyEvent.KEYCODE_DEMO_APP_1:
|
||||
case KeyEvent.KEYCODE_DEMO_APP_2:
|
||||
case KeyEvent.KEYCODE_DEMO_APP_3:
|
||||
case KeyEvent.KEYCODE_DEMO_APP_4:
|
||||
Slog.wtf(TAG, "KEYCODE_APP_X should be handled in interceptKeyBeforeQueueing");
|
||||
return key_consumed;
|
||||
case KeyEvent.KEYCODE_SYSRQ:
|
||||
if (down && repeatCount == 0) {
|
||||
mScreenshotRunnable.setScreenshotType(TAKE_SCREENSHOT_FULLSCREEN);
|
||||
@@ -3773,6 +3791,26 @@ public class PhoneWindowManager implements WindowManagerPolicy {
|
||||
}
|
||||
break;
|
||||
}
|
||||
case KeyEvent.KEYCODE_VIDEO_APP_1:
|
||||
case KeyEvent.KEYCODE_VIDEO_APP_2:
|
||||
case KeyEvent.KEYCODE_VIDEO_APP_3:
|
||||
case KeyEvent.KEYCODE_VIDEO_APP_4:
|
||||
case KeyEvent.KEYCODE_VIDEO_APP_5:
|
||||
case KeyEvent.KEYCODE_VIDEO_APP_6:
|
||||
case KeyEvent.KEYCODE_VIDEO_APP_7:
|
||||
case KeyEvent.KEYCODE_VIDEO_APP_8:
|
||||
case KeyEvent.KEYCODE_FEATURED_APP_1:
|
||||
case KeyEvent.KEYCODE_FEATURED_APP_2:
|
||||
case KeyEvent.KEYCODE_FEATURED_APP_3:
|
||||
case KeyEvent.KEYCODE_FEATURED_APP_4:
|
||||
case KeyEvent.KEYCODE_DEMO_APP_1:
|
||||
case KeyEvent.KEYCODE_DEMO_APP_2:
|
||||
case KeyEvent.KEYCODE_DEMO_APP_3:
|
||||
case KeyEvent.KEYCODE_DEMO_APP_4: {
|
||||
// Just drop if keys are not intercepted for direct key.
|
||||
result &= ~ACTION_PASS_TO_USER;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Intercept the Accessibility keychord (CTRL + ALT + Z) for keyboard users.
|
||||
|
||||
Reference in New Issue
Block a user