From f82a33231d8083b694a805fbec558dc632f37a90 Mon Sep 17 00:00:00 2001 From: zouxf Date: Fri, 20 Nov 2015 11:33:07 +0800 Subject: [PATCH] Android->Add recent key support --- device/rockchip/common/ff680000_pwm.kl | 1 + frameworks/base/api/current.txt | 1 + frameworks/base/api/system-current.txt | 1 + .../base/core/java/android/view/KeyEvent.java | 3 ++- .../policy/impl/PhoneWindowManager.java | 18 ++++++++++++++++++ frameworks/native/include/android/keycodes.h | 13 ++++++++++++- .../native/include/input/InputEventLabels.h | 1 + 7 files changed, 36 insertions(+), 2 deletions(-) diff --git a/device/rockchip/common/ff680000_pwm.kl b/device/rockchip/common/ff680000_pwm.kl index 65389d92d4..01197b9f5c 100755 --- a/device/rockchip/common/ff680000_pwm.kl +++ b/device/rockchip/common/ff680000_pwm.kl @@ -16,6 +16,7 @@ key 115 VOLUME_UP key 114 VOLUME_DOWN key 143 NOTIFICATION key 113 VOLUME_MUTE +key 250 FIREFLY_RECENT key 388 TV_KEYMOUSE_MODE_SWITCH #key 400 TV_MEDIA_MULT_BACKWARD #key 401 TV_MEDIA_MULT_FORWARD diff --git a/frameworks/base/api/current.txt b/frameworks/base/api/current.txt index 186666012c..1dc43222bb 100644 --- a/frameworks/base/api/current.txt +++ b/frameworks/base/api/current.txt @@ -32857,6 +32857,7 @@ 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_FIREFLY_RECENT = 275; // 0x113 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 diff --git a/frameworks/base/api/system-current.txt b/frameworks/base/api/system-current.txt index f2e8d3b862..f5f4fb0276 100644 --- a/frameworks/base/api/system-current.txt +++ b/frameworks/base/api/system-current.txt @@ -35091,6 +35091,7 @@ 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_FIREFLY_RECENT = 275; // 0x113 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 diff --git a/frameworks/base/core/java/android/view/KeyEvent.java b/frameworks/base/core/java/android/view/KeyEvent.java index f3b69aeff6..ca039f7808 100755 --- a/frameworks/base/core/java/android/view/KeyEvent.java +++ b/frameworks/base/core/java/android/view/KeyEvent.java @@ -773,7 +773,8 @@ public class KeyEvent extends InputEvent implements Parcelable { public static final int KEYCODE_TV_MEDIA_PAUSE = 274; //$_rbox_$_modify_$ end - private static final int LAST_KEYCODE = KEYCODE_TV_MEDIA_PAUSE; + public static final int KEYCODE_FIREFLY_RECENT = 275; + private static final int LAST_KEYCODE = KEYCODE_FIREFLY_RECENT; // NOTE: If you add a new keycode here you must also add it to: // isSystem() diff --git a/frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java index 25cddce1c5..ed6a3880f5 100755 --- a/frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +++ b/frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java @@ -3131,6 +3131,12 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } + if(keyCode == KeyEvent.KEYCODE_FIREFLY_RECENT) + { + startRecent(); + return -1 ; + } + // Shortcuts are invoked through Search+key, so intercept those here // Any printing key that is chorded with Search should be consumed // even if no shortcut was invoked. This prevents text from being @@ -6580,6 +6586,18 @@ public class PhoneWindowManager implements WindowManagerPolicy { startActivityAsUser(mHomeIntent, UserHandle.CURRENT); } + void startRecent() + { + try{ + Intent recentIntent = new Intent(); + recentIntent.setClassName("com.android.systemui","com.android.systemui.recents.RecentsActivity"); + recentIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK + | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); + mContext.startActivityAsUser(recentIntent, UserHandle.CURRENT); + + }catch(Exception ex){} + } + /** * goes to the home screen * @return whether it did anything diff --git a/frameworks/native/include/android/keycodes.h b/frameworks/native/include/android/keycodes.h index ff998df5ac..906e0ad57a 100644 --- a/frameworks/native/include/android/keycodes.h +++ b/frameworks/native/include/android/keycodes.h @@ -302,12 +302,23 @@ enum { AKEYCODE_TV_CONTENTS_MENU = 256, AKEYCODE_TV_MEDIA_CONTEXT_MENU = 257, AKEYCODE_TV_TIMER_PROGRAMMING = 258, + AKEYCODE_HELP = 259, AKEYCODE_TV_KEYMOUSE_LEFT = 260, AKEYCODE_TV_KEYMOUSE_RIGHT = 261, AKEYCODE_TV_KEYMOUSE_UP = 262, AKEYCODE_TV_KEYMOUSE_DOWN = 263, AKEYCODE_TV_KEYMOUSE_MODE_SWITCH = 264, - AKEYCODE_HELP = 259 + AKEYCODE_TV_MEDIA_PLAY_PAUSE = 265, + AKEYCODE_TV_MEDIA_STOP = 266, + AKEYCODE_TV_MEDIA_NEXT = 267, + AKEYCODE_TV_MEDIA_PREVIOUS = 268, + AKEYCODE_TV_MEDIA_FAST_FORWARD = 269, + AKEYCODE_TV_MEDIA_REWIND = 270, + AKEYCODE_TV_MEDIA_MULT_FORWARD = 271, + AKEYCODE_TV_MEDIA_MULT_BACKWARD = 272, + AKEYCODE_TV_MEDIA_PLAY = 273, + AKEYCODE_TV_MEDIA_PAUSE = 274, + AKEYCODE_FIREFLY_RECENT = 275 // NOTE: If you add a new keycode here you must also add it to several other files. // Refer to frameworks/base/core/java/android/view/KeyEvent.java for the full list. diff --git a/frameworks/native/include/input/InputEventLabels.h b/frameworks/native/include/input/InputEventLabels.h index d7a06ddbb0..19f40e6122 100644 --- a/frameworks/native/include/input/InputEventLabels.h +++ b/frameworks/native/include/input/InputEventLabels.h @@ -304,6 +304,7 @@ static const InputEventLabel KEYCODES[] = { DEFINE_KEYCODE(TV_KEYMOUSE_DOWN), DEFINE_KEYCODE(TV_KEYMOUSE_MODE_SWITCH), DEFINE_KEYCODE(HELP), + DEFINE_KEYCODE(FIREFLY_RECENT), { NULL, 0 } };