am 25b9cec8: Merge change 22692 into eclair
Merge commit '25b9cec8de75bd38c4868515e611cd69aff524ca' into eclair-plus-aosp * commit '25b9cec8de75bd38c4868515e611cd69aff524ca': PowerManagerService: Disallow all user activity when in proximity wake lock.
This commit is contained in:
@@ -150,6 +150,7 @@ class PowerManagerService extends IPowerManager.Stub
|
|||||||
private int mUserState;
|
private int mUserState;
|
||||||
private boolean mKeyboardVisible = false;
|
private boolean mKeyboardVisible = false;
|
||||||
private boolean mUserActivityAllowed = true;
|
private boolean mUserActivityAllowed = true;
|
||||||
|
private boolean mProximitySensorActive = false;
|
||||||
private int mTotalDelaySetting;
|
private int mTotalDelaySetting;
|
||||||
private int mKeylightDelay;
|
private int mKeylightDelay;
|
||||||
private int mDimDelay;
|
private int mDimDelay;
|
||||||
@@ -1252,6 +1253,10 @@ class PowerManagerService extends IPowerManager.Stub
|
|||||||
if (noChangeLights) {
|
if (noChangeLights) {
|
||||||
newState = (newState & ~LIGHTS_MASK) | (mPowerState & LIGHTS_MASK);
|
newState = (newState & ~LIGHTS_MASK) | (mPowerState & LIGHTS_MASK);
|
||||||
}
|
}
|
||||||
|
if (mProximitySensorActive) {
|
||||||
|
// don't turn on the screen when the proximity sensor lock is held
|
||||||
|
newState = (newState & ~SCREEN_BRIGHT);
|
||||||
|
}
|
||||||
|
|
||||||
if (batteryIsLow()) {
|
if (batteryIsLow()) {
|
||||||
newState |= BATTERY_LOW_BIT;
|
newState |= BATTERY_LOW_BIT;
|
||||||
@@ -1748,11 +1753,13 @@ class PowerManagerService extends IPowerManager.Stub
|
|||||||
Log.d(TAG, "userActivity mLastEventTime=" + mLastEventTime + " time=" + time
|
Log.d(TAG, "userActivity mLastEventTime=" + mLastEventTime + " time=" + time
|
||||||
+ " mUserActivityAllowed=" + mUserActivityAllowed
|
+ " mUserActivityAllowed=" + mUserActivityAllowed
|
||||||
+ " mUserState=0x" + Integer.toHexString(mUserState)
|
+ " mUserState=0x" + Integer.toHexString(mUserState)
|
||||||
+ " mWakeLockState=0x" + Integer.toHexString(mWakeLockState));
|
+ " mWakeLockState=0x" + Integer.toHexString(mWakeLockState)
|
||||||
|
+ " mProximitySensorActive=" + mProximitySensorActive
|
||||||
|
+ " force=" + force);
|
||||||
}
|
}
|
||||||
if (mLastEventTime <= time || force) {
|
if (mLastEventTime <= time || force) {
|
||||||
mLastEventTime = time;
|
mLastEventTime = time;
|
||||||
if (mUserActivityAllowed || force) {
|
if ((mUserActivityAllowed && !mProximitySensorActive) || force) {
|
||||||
// Only turn on button backlights if a button was pressed.
|
// Only turn on button backlights if a button was pressed.
|
||||||
if (eventType == BUTTON_EVENT) {
|
if (eventType == BUTTON_EVENT) {
|
||||||
mUserState = (mKeyboardVisible ? ALL_BRIGHT : SCREEN_BUTTON_BRIGHT);
|
mUserState = (mKeyboardVisible ? ALL_BRIGHT : SCREEN_BUTTON_BRIGHT);
|
||||||
@@ -2042,22 +2049,37 @@ class PowerManagerService extends IPowerManager.Stub
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void enableProximityLockLocked() {
|
private void enableProximityLockLocked() {
|
||||||
|
if (mSpew) {
|
||||||
|
Log.d(TAG, "enableProximityLockLocked");
|
||||||
|
}
|
||||||
mSensorManager.registerListener(this, mProximitySensor, SensorManager.SENSOR_DELAY_NORMAL);
|
mSensorManager.registerListener(this, mProximitySensor, SensorManager.SENSOR_DELAY_NORMAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void disableProximityLockLocked() {
|
private void disableProximityLockLocked() {
|
||||||
|
if (mSpew) {
|
||||||
|
Log.d(TAG, "disableProximityLockLocked");
|
||||||
|
}
|
||||||
mSensorManager.unregisterListener(this);
|
mSensorManager.unregisterListener(this);
|
||||||
|
mProximitySensorActive = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onSensorChanged(SensorEvent event) {
|
public void onSensorChanged(SensorEvent event) {
|
||||||
long milliseconds = event.timestamp / 1000000;
|
long milliseconds = event.timestamp / 1000000;
|
||||||
if (event.values[0] == 0.0) {
|
synchronized (mLocks) {
|
||||||
goToSleep(milliseconds);
|
if (event.values[0] == 0.0) {
|
||||||
} else {
|
if (mSpew) {
|
||||||
// proximity sensor negative events user activity.
|
Log.d(TAG, "onSensorChanged: proximity active");
|
||||||
// temporarily set mUserActivityAllowed to true so this will work
|
}
|
||||||
// even when the keyguard is on.
|
goToSleepLocked(milliseconds);
|
||||||
synchronized (mLocks) {
|
mProximitySensorActive = true;
|
||||||
|
} else {
|
||||||
|
// proximity sensor negative events user activity.
|
||||||
|
// temporarily set mUserActivityAllowed to true so this will work
|
||||||
|
// even when the keyguard is on.
|
||||||
|
if (mSpew) {
|
||||||
|
Log.d(TAG, "onSensorChanged: proximity inactive");
|
||||||
|
}
|
||||||
|
mProximitySensorActive = false;
|
||||||
boolean savedActivityAllowed = mUserActivityAllowed;
|
boolean savedActivityAllowed = mUserActivityAllowed;
|
||||||
mUserActivityAllowed = true;
|
mUserActivityAllowed = true;
|
||||||
userActivity(milliseconds, false);
|
userActivity(milliseconds, false);
|
||||||
|
|||||||
Reference in New Issue
Block a user