Android->HDMIIN:add HDMIIN pip key support

This commit is contained in:
zouxf
2015-11-30 15:57:04 +08:00
parent 596a0501fb
commit 5d194e2bf1
2 changed files with 95 additions and 0 deletions

View File

@ -13,6 +13,8 @@ rild.libargs=-d /dev/ttyACM0
persist.tegra.nvmmlite = 1
ro.audio.monitorOrientation=true
persist.sys.pip=true
#NFC
debug.nfc.fw_download=false
debug.nfc.se=false

View File

@ -226,6 +226,16 @@ public class PhoneWindowManager implements WindowManagerPolicy {
private boolean mKeyguardHidden;
private boolean mKeyguardDrawnOnce;
volatile boolean mPipsizeKeyHandled; // accessed from input reader and handler thread
volatile boolean mPipExitKeyHandled; // accessed from input reader and handler thread
private boolean mPipSizeKeyTriggered;
private long mPipSizeKeyDowmTime;
private boolean mPipExitKeyTriggered;
private long mPipExitKeyDowmTime;
private int mPipSizeKey;
private int mPipExitKey;
/* Table of Application Launch keys. Maps from key codes to intent categories.
*
* These are special keys that are used to launch particular kinds of applications,
@ -1084,6 +1094,52 @@ public class PhoneWindowManager implements WindowManagerPolicy {
}
}
private void cancelPipSizeChangeKeyAction() {
if (!mPipsizeKeyHandled) {
mHandler.removeCallbacks(PIPSizeChangeBroadCastRunnable);
}
}
private void cancelPipExitKeyAction() {
if (!mPipExitKeyHandled) {
mHandler.removeCallbacks(PIPExitBroadCastRunnable);
}
}
private void iterceptPIPSizeChange(){
if (mPipSizeKeyTriggered) {
mHandler.postDelayed(PIPSizeChangeBroadCastRunnable, ViewConfiguration.getGlobalActionKeyTimeout()*3);
}
}
private void iterceptPIPExit(){
if (mPipExitKeyTriggered) {
mHandler.postDelayed(PIPExitBroadCastRunnable, ViewConfiguration.getGlobalActionKeyTimeout()*3);
}
}
private final Runnable PIPSizeChangeBroadCastRunnable = new Runnable() {
@Override
public void run() {
Log.i(TAG, "PIPSizeChangeBroadCastRunnable");
mPipsizeKeyHandled = true;
Intent i = new Intent();
i.setAction("com.android.rk.pip.sizechange");
mContext.sendBroadcast(i);
}
};
private final Runnable PIPExitBroadCastRunnable = new Runnable() {
@Override
public void run() {
Log.i(TAG, "PIPExitBroadCastRunnable");
mPipExitKeyHandled = true;
Intent i = new Intent();
i.setAction("com.android.rk.pip.exit");
mContext.sendBroadcast(i);
}
};
private void powerPress(long eventTime, boolean interactive, int count) {
if (mScreenOnEarly && !mScreenOnFully) {
Slog.i(TAG, "Suppressed redundant power key press while "
@ -1536,6 +1592,11 @@ public class PhoneWindowManager implements WindowManagerPolicy {
wm.getDefaultDisplay().getMetrics(displayMetrics);
screenWidth = displayMetrics.widthPixels;
screenHeight = displayMetrics.heightPixels;
//pip beigin
mPipExitKey = KeyEvent.KEYCODE_DPAD_UP;
mPipSizeKey = KeyEvent.KEYCODE_DPAD_DOWN;
//pid end
}
/**
@ -5287,6 +5348,38 @@ public class PhoneWindowManager implements WindowManagerPolicy {
&& (policyFlags & WindowManagerPolicy.FLAG_VIRTUAL) != 0
&& event.getRepeatCount() == 0;
if("true".equals(SystemProperties.get("persist.sys.pip"))){
if(mPipExitKey==keyCode){
if (down) {
if ( !mPipExitKeyTriggered
&& (event.getFlags() & KeyEvent.FLAG_FALLBACK) == 0) {
mPipExitKeyTriggered = true;
mPipExitKeyDowmTime= event.getDownTime();
//cancelPendingPowerKeyAction();
iterceptPIPExit();
}
} else {
mPipExitKeyHandled= false;
mPipExitKeyTriggered = false;
cancelPipExitKeyAction();
}
}
else if(mPipSizeKey == keyCode){
if (down) {
if ( !mPipSizeKeyTriggered
&& (event.getFlags() & KeyEvent.FLAG_FALLBACK) == 0) {
mPipSizeKeyTriggered = true;
mPipSizeKeyDowmTime= event.getDownTime();
iterceptPIPSizeChange();
}
} else {
mPipsizeKeyHandled = false;
mPipSizeKeyTriggered = false;
cancelPipSizeChangeKeyAction();
}
}
}
// Handle special keys.
switch (keyCode) {
case KeyEvent.KEYCODE_VOLUME_DOWN: