Merge "Notify keyguard of when power button is pressed." into oc-dev

am: dd273de09e

Change-Id: I2e8061b695e1823ea9ab7b46c8fdb78111601ced
This commit is contained in:
Andrew Zeng
2017-06-02 22:03:30 +00:00
committed by android-build-merger
6 changed files with 42 additions and 3 deletions

View File

@@ -93,4 +93,10 @@ oneway interface IKeyguardService {
* @param fadeoutDuration the duration of the exit animation, in milliseconds
*/
void startKeyguardExitAnimation(long startTime, long fadeoutDuration);
/**
* Notifies the Keyguard that the power key was pressed while locked and launched Home rather
* than putting the device to sleep or waking up.
*/
void onShortPowerPressedGoHome();
}

View File

@@ -194,6 +194,12 @@ public class KeyguardService extends Service {
mKeyguardViewMediator.startKeyguardExitAnimation(startTime, fadeoutDuration);
Trace.endSection();
}
@Override
public void onShortPowerPressedGoHome() {
checkPermission();
mKeyguardViewMediator.onShortPowerPressedGoHome();
}
};
}

View File

@@ -2013,6 +2013,10 @@ public class KeyguardViewMediator extends SystemUI {
Trace.endSection();
}
public void onShortPowerPressedGoHome() {
// do nothing
}
public ViewMediatorCallback getViewMediatorCallback() {
return mViewMediatorCallback;
}

View File

@@ -1418,7 +1418,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
launchHomeFromHotKey();
break;
case SHORT_PRESS_POWER_GO_HOME:
launchHomeFromHotKey(true /* awakenFromDreams */, false /*respectKeyguard*/);
shortPressPowerGoHome();
break;
case SHORT_PRESS_POWER_CLOSE_IME_OR_GO_HOME: {
if (mDismissImeOnBackKeyPressed) {
@@ -1430,8 +1430,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
mInputMethodManagerInternal.hideCurrentInputMethod();
}
} else {
launchHomeFromHotKey(true /* awakenFromDreams */,
false /*respectKeyguard*/);
shortPressPowerGoHome();
}
break;
}
@@ -1439,6 +1438,15 @@ public class PhoneWindowManager implements WindowManagerPolicy {
}
}
private void shortPressPowerGoHome() {
launchHomeFromHotKey(true /* awakenFromDreams */, false /*respectKeyguard*/);
if (isKeyguardShowingAndNotOccluded()) {
// Notify keyguard so it can do any special handling for the power button since the
// device will not power off and only launch home.
mKeyguardDelegate.onShortPowerPressedGoHome();
}
}
private void powerMultiPressAction(long eventTime, boolean interactive, int behavior) {
switch (behavior) {
case MULTI_PRESS_POWER_NOTHING:

View File

@@ -372,6 +372,12 @@ public class KeyguardServiceDelegate {
mKeyguardState.bootCompleted = true;
}
public void onShortPowerPressedGoHome() {
if (mKeyguardService != null) {
mKeyguardService.onShortPowerPressedGoHome();
}
}
public void dump(String prefix, PrintWriter pw) {
pw.println(prefix + TAG);
prefix += " ";

View File

@@ -218,6 +218,15 @@ public class KeyguardServiceWrapper implements IKeyguardService {
}
}
@Override
public void onShortPowerPressedGoHome() {
try {
mService.onShortPowerPressedGoHome();
} catch (RemoteException e) {
Slog.w(TAG , "Remote Exception", e);
}
}
@Override // Binder interface
public IBinder asBinder() {
return mService.asBinder();