diff --git a/alps/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java b/alps/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
index 089e3f31e3…a7c0fc8c8e 100755
— a/alps/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/alps/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -3657,13 +3657,53 @@ public class PhoneWindowManager implements WindowManagerPolicy {
final int flags = event.getFlags();
final boolean down = event.getAction() == KeyEvent.ACTION_DOWN;
final boolean canceled = event.isCanceled();
-
Log.d("MMI", "PhoneWindowManager interceptKeyBeforeDispatching interceptKeyTi keyCode = " + keyCode);
-
android.util.Log.d("MMI", "PhoneWindowManager interceptKeyBeforeDispatching event = " + event);
-
android.util.Log.d("MMI", "PhoneWindowManager interceptKeyBeforeDispatching interceptKeyTi keyCode = " + keyCode);
-
android.util.Log.d("MMI", "PhoneWindowManager interceptKeyBeforeDispatching repeatCount = " + repeatCount);
-
android.util.Log.d("MMI", "PhoneWindowManager interceptKeyBeforeDispatching mLauncherKeyEvent = " + mLauncherKeyEvent); //MMI_Buttons_Light @{
-
if (down && (keyCode == KeyEvent.KEYCODE_MENU || keyCode == KeyEvent.KEYCODE_P1
-
|| keyCode == KeyEvent.KEYCODE_DPAD_UP || keyCode == KeyEvent.KEYCODE_DPAD_DOWN || keyCode == KeyEvent.KEYCODE_BACK)) {
-
setButtonsLightEnabled(down);
-
}
-
//if (down && (keyCode == KeyEvent.KEYCODE_MENU || keyCode == KeyEvent.KEYCODE_P1
-
// || keyCode == KeyEvent.KEYCODE_DPAD_UP || keyCode == KeyEvent.KEYCODE_DPAD_DOWN || keyCode == KeyEvent.KEYCODE_BACK)) {
-
// //setButtonsLightEnabled(down);
-
//} //MMI_Buttons_Light @}
-
//MMI_Launcher_Buttons @{
-
//if (repeatCount == 0 && getLauncher3KeyEventLocked() && (keyCode == KeyEvent.KEYCODE_DPAD_UP || keyCode == KeyEvent.KEYCODE_DPAD_DOWN)) {
-
// if (down && mLauncherKeyEvent == false) {
-
// return 0;
-
// } else if (!down && mLauncherKeyEvent == true) {
-
// mLauncherKeyEvent = false;
-
// return 0;
-
//}
-
//}
-
//if (!down && repeatCount == 0 && mLauncherKeyEvent == false && getLauncher3KeyEventLocked() && (keyCode == KeyEvent.KEYCODE_DPAD_UP || keyCode == KeyEvent.KEYCODE_DPAD_DOWN)) {
-
// if (keyCode == KeyEvent.KEYCODE_DPAD_UP) {
-
// mLauncherKeyEvent = true;
-
// keyRemappingSendFakeKeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_UP);
-
// keyRemappingSendFakeKeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_DPAD_UP);
-
// //mLauncherKeyEvent = false;
-
// } else if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN) {
-
// mLauncherKeyEvent = true;
-
// keyRemappingSendFakeKeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_DOWN);
-
// keyRemappingSendFakeKeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_DPAD_DOWN);
-
// //mLauncherKeyEvent = false;
-
// }
-
// //return 0;
-
//}
-
//if (down && repeatCount == 3 && getLauncher3KeyEventLocked() && (keyCode == KeyEvent.KEYCODE_DPAD_UP || keyCode == KeyEvent.KEYCODE_DPAD_DOWN)) {
-
// if (keyCode == KeyEvent.KEYCODE_DPAD_UP) {
-
// keyRemappingSendFakeKeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_LEFT);
-
// keyRemappingSendFakeKeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_DPAD_LEFT);
-
// } else if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN) {
-
// keyRemappingSendFakeKeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_RIGHT);
-
// keyRemappingSendFakeKeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_DPAD_RIGHT);
-
// }
-
// return 0;
-
//}
-
//MMI_Launcher_Buttons @}
-
/// M: Add more log at WMS if (DEBUG_INPUT || mWindowManagerDebugger.WMS_DEBUG_ENG) { Log.d(TAG, "interceptKeyTi keyCode=" + keyCode + " down=" + down + " repeatCount="
@@ -6330,6 +6370,22 @@ public class PhoneWindowManager implements WindowManagerPolicy {
setHdmiPlugged(!mHdmiPlugged);
}
-
private boolean getLauncher3KeyEventLocked() {
-
ActivityManager manager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
-
if (manager != null) {
-
//ActivityManager.RunningTaskInfo info = manager.getRunningTasks(1).get(0);
-
//E InputManager-JNI: An exception was thrown by callback 'interceptKeyBeforeQueueing'.
-
//E InputManager-JNI: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
-
List<ActivityManager.RunningTaskInfo> info = manager.getRunningTasks(1);
-
if (!info.isEmpty() || info.size() > 0) {
-
String pn = info.get(0).topActivity.getPackageName();
-
if (pn != null && pn.equals("com.android.launcher3")) {
-
return true;
-
}
-
}
-
}
-
return false;
-
}
/// chenxs: add for key test in FactoryMode @{
private boolean getKeyEventLocked() {
@@ -6353,6 +6409,9 @@ public class PhoneWindowManager implements WindowManagerPolicy {
/// chenxs: add for volume knob @{
private boolean mVolKnobLastDown;
/// chenxs @} -
private boolean mLauncherKeyEvent = false;
-
private long mStartTime = 0;
-
private long mCurrentTime = 0;
/** {@inheritDoc} */
@Override
@@ -6366,6 +6425,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
final boolean down = event.getAction() == KeyEvent.ACTION_DOWN;
final boolean canceled = event.isCanceled();
final int keyCode = event.getKeyCode(); -
final int repeatCount = event.getRepeatCount(); final boolean isInjected = (policyFlags & WindowManagerPolicy.FLAG_INJECTED) != 0;
@@ -6385,7 +6445,52 @@ public class PhoneWindowManager implements WindowManagerPolicy {
}
android.util.Log.d("MMI", "PhoneWindowManager interceptKeyBeforeQueueing event = " + event);
-
android.util.Log.d("MMI", "PhoneWindowManager interceptKeyBeforeQueueing repeatCount = " + repeatCount);
-
android.util.Log.d("MMI", "PhoneWindowManager interceptKeyBeforeQueueing mLauncherKeyEvent = " + mLauncherKeyEvent);
-
//MMI_Launcher_Buttons @{
-
//if (down && repeatCount == 0 && mLauncherKeyEvent == false && getLauncher3KeyEventLocked() && (keyCode == KeyEvent.KEYCODE_DPAD_UP || keyCode == KeyEvent.KEYCODE_DPAD_DOWN)) {
-
// return 0;
-
//}
-
//if (!down && repeatCount == 0 && mLauncherKeyEvent == true && getLauncher3KeyEventLocked() && (keyCode == KeyEvent.KEYCODE_DPAD_UP || keyCode == KeyEvent.KEYCODE_DPAD_DOWN)) {
-
// mLauncherKeyEvent = false;
-
// return 0;
-
//}
-
if (repeatCount == 0 && getLauncher3KeyEventLocked() && (keyCode == KeyEvent.KEYCODE_DPAD_UP || keyCode == KeyEvent.KEYCODE_DPAD_DOWN)) {
-
if (down && mLauncherKeyEvent == false) {
-
mStartTime = System.currentTimeMillis(); // / 1000
-
return 0;
-
} else if (!down && mLauncherKeyEvent == true) {
-
mLauncherKeyEvent = false;
-
mStartTime = 0;
-
mCurrentTime = 0;
-
return 0;
-
}
-
}
-
if (!down && repeatCount == 0 && mLauncherKeyEvent == false && getLauncher3KeyEventLocked() && (keyCode == KeyEvent.KEYCODE_DPAD_UP || keyCode == KeyEvent.KEYCODE_DPAD_DOWN)) {
-
mCurrentTime = System.currentTimeMillis(); // / 1000
-
android.util.Log.d("MMI", "PhoneWindowManager interceptKeyBeforeQueueing mStartTime = " + mStartTime + ", mCurrentTime = " + mCurrentTime);
-
if (mCurrentTime - mStartTime < 1200 && keyCode == KeyEvent.KEYCODE_DPAD_UP) {
-
mLauncherKeyEvent = true;
-
keyRemappingSendFakeKeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_UP);
-
keyRemappingSendFakeKeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_DPAD_UP);
-
//mLauncherKeyEvent = false;
-
} else if (mCurrentTime - mStartTime < 1200 && keyCode == KeyEvent.KEYCODE_DPAD_DOWN) {
-
mLauncherKeyEvent = true;
-
keyRemappingSendFakeKeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_DOWN);
-
keyRemappingSendFakeKeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_DPAD_DOWN);
-
//mLauncherKeyEvent = false;
-
} else if (mCurrentTime - mStartTime >= 1200 && keyCode == KeyEvent.KEYCODE_DPAD_UP) {
-
keyRemappingSendFakeKeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_LEFT);
-
keyRemappingSendFakeKeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_DPAD_LEFT);
-
} else if (mCurrentTime - mStartTime >= 1200 && keyCode == KeyEvent.KEYCODE_DPAD_DOWN) {
-
keyRemappingSendFakeKeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_RIGHT);
-
keyRemappingSendFakeKeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_DPAD_RIGHT);
-
}
-
mStartTime = 0;
-
mCurrentTime = 0;
-
return 0;
-
}
-
//MMI_Launcher_Buttons @} /// chenxs: add for volume knob @{ if (!isInjected && (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN
@@ -7411,7 +7516,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
}
}
reportScreenStateToVrManager(false);
-
writeStringToFile("/sys/class/leds/keyboard-backlight/brightness", "0"); //MMI_Buttons_Light
-
//writeStringToFile("/sys/class/leds/keyboard-backlight/brightness", "0"); //MMI_Buttons_Light
}
private long getKeyguardDrawnTimeout() {
@@ -7457,7 +7562,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
}
reportScreenStateToVrManager(true);
//writeStringToFile(“/sys/class/leds/keyboard-backlight/brightness”, “1”); //MMI_Buttons_Light
-
setButtonsLightEnabled(true);
-
//setButtonsLightEnabled(true);
}
@Override
@@ -9746,4 +9851,18 @@ public class PhoneWindowManager implements WindowManagerPolicy {
}*/
}
//MMI_Buttons_Light @} -
//MMI_Launcher_Buttons @{
-
private long mKeyRemappingSendFakeKeyDownTime;
-
private void keyRemappingSendFakeKeyEvent(int action, int keyCode) {
-
long eventTime = SystemClock.uptimeMillis();
-
if (action == KeyEvent.ACTION_DOWN) {
-
mKeyRemappingSendFakeKeyDownTime = eventTime;
-
}
-
KeyEvent keyEvent = new KeyEvent(mKeyRemappingSendFakeKeyDownTime, eventTime, action, keyCode, 0);
-
InputManager inputManager = (InputManager) mContext.getSystemService(Context.INPUT_SERVICE);
-
inputManager.injectInputEvent(keyEvent, InputManager.INJECT_INPUT_EVENT_MODE_ASYNC);
-
}
-
//MMI_Launcher_Buttons @}
}