Merge "Add support for locking the screen when the lid is closed"

This commit is contained in:
Michael Wright
2015-12-07 21:34:59 +00:00
committed by Gerrit Code Review
5 changed files with 22 additions and 0 deletions

View File

@@ -429,6 +429,11 @@ public interface WindowManagerPolicy {
*/
public int getLidState();
/**
* Lock the device now.
*/
public void lockDeviceNow();
/**
* Returns a code that descripbes whether the camera lens is covered or not.
*/

View File

@@ -673,6 +673,10 @@
closed. The default is 0. -->
<integer name="config_lidNavigationAccessibility">0</integer>
<!-- Indicate whether closing the lid causes the lockscreen to appear.
The default is false. -->
<bool name="config_lidControlsScreenLock">false</bool>
<!-- Indicate whether closing the lid causes the device to go to sleep and opening
it causes the device to wake up.
The default is false. -->

View File

@@ -1474,6 +1474,7 @@
<java-symbol type="bool" name="config_enableLockScreenRotation" />
<java-symbol type="bool" name="config_enableLockScreenTranslucentDecor" />
<java-symbol type="bool" name="config_enableTranslucentDecor" />
<java-symbol type="bool" name="config_lidControlsScreenLock" />
<java-symbol type="bool" name="config_lidControlsSleep" />
<java-symbol type="bool" name="config_reverseDefaultRotation" />
<java-symbol type="bool" name="config_showNavigationBar" />

View File

@@ -392,6 +392,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
boolean mDeskDockEnablesAccelerometer;
int mLidKeyboardAccessibility;
int mLidNavigationAccessibility;
boolean mLidControlsScreenLock;
boolean mLidControlsSleep;
int mShortPressOnPowerBehavior;
int mLongPressOnPowerBehavior;
@@ -1421,6 +1422,8 @@ public class PhoneWindowManager implements WindowManagerPolicy {
com.android.internal.R.integer.config_lidKeyboardAccessibility);
mLidNavigationAccessibility = mContext.getResources().getInteger(
com.android.internal.R.integer.config_lidNavigationAccessibility);
mLidControlsScreenLock = mContext.getResources().getBoolean(
com.android.internal.R.bool.config_lidControlsScreenLock);
mLidControlsSleep = mContext.getResources().getBoolean(
com.android.internal.R.bool.config_lidControlsSleep);
mTranslucentDecorEnabled = mContext.getResources().getBoolean(
@@ -6309,6 +6312,8 @@ public class PhoneWindowManager implements WindowManagerPolicy {
mPowerManager.goToSleep(SystemClock.uptimeMillis(),
PowerManager.GO_TO_SLEEP_REASON_LID_SWITCH,
PowerManager.GO_TO_SLEEP_FLAG_NO_DOZE);
} else if (mLidState == LID_CLOSED && mLidControlsScreenLock) {
mWindowManagerFuncs.lockDeviceNow();
}
synchronized (mLock) {
@@ -6887,6 +6892,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
pw.print(prefix); pw.print("mLidKeyboardAccessibility=");
pw.print(mLidKeyboardAccessibility);
pw.print(" mLidNavigationAccessibility="); pw.print(mLidNavigationAccessibility);
pw.print(" mLidControlsScreenLock="); pw.println(mLidControlsScreenLock);
pw.print(" mLidControlsSleep="); pw.println(mLidControlsSleep);
pw.print(prefix);
pw.print("mShortPressOnPowerBehavior="); pw.print(mShortPressOnPowerBehavior);

View File

@@ -5632,6 +5632,12 @@ public class WindowManagerService extends IWindowManager.Stub
}
}
// Called by window manager policy. Not exposed externally.
@Override
public void lockDeviceNow() {
lockNow(null);
}
// Called by window manager policy. Not exposed externally.
@Override
public int getCameraLensCoverState() {