Expose PowerManager.isScreenOn in the public api.
Change-Id: I6ccd2ebcbf3f8ad9ffa4b86a9c037cb0c25a7b78
diff --git a/api/current.xml b/api/current.xml
index 2cda5bd..50b45d6 100644
--- a/api/current.xml
+++ b/api/current.xml
@@ -105888,6 +105888,17 @@
<parameter name="time" type="long">
</parameter>
</method>
+<method name="isScreenOn"
+ return="boolean"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
<method name="newWakeLock"
return="android.os.PowerManager.WakeLock"
abstract="false"
diff --git a/core/java/android/os/IPowerManager.aidl b/core/java/android/os/IPowerManager.aidl
index 5ac543d..bcf769d 100644
--- a/core/java/android/os/IPowerManager.aidl
+++ b/core/java/android/os/IPowerManager.aidl
@@ -31,6 +31,7 @@
long getScreenOnTime();
void preventScreenOn(boolean prevent);
void setScreenBrightnessOverride(int brightness);
+ boolean isScreenOn();
// sets the brightness of the backlights (screen, keyboard, button) 0-255
void setBacklightBrightness(int brightness);
diff --git a/core/java/android/os/PowerManager.java b/core/java/android/os/PowerManager.java
index 11c96d2..2efc230 100644
--- a/core/java/android/os/PowerManager.java
+++ b/core/java/android/os/PowerManager.java
@@ -420,6 +420,26 @@
}
}
+ /**
+ * Returns whether the screen is currently on. The screen could be bright
+ * or dim.
+ *
+ * {@samplecode
+ * PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
+ * boolean isScreenOn = pm.isScreenOn();
+ * }
+ *
+ * @return whether the screen is on (bright or dim).
+ */
+ public boolean isScreenOn()
+ {
+ try {
+ return mService.isScreenOn();
+ } catch (RemoteException e) {
+ return false;
+ }
+ }
+
private PowerManager()
{
}
diff --git a/services/java/com/android/server/PowerManagerService.java b/services/java/com/android/server/PowerManagerService.java
index 611a86e..270e3cb 100644
--- a/services/java/com/android/server/PowerManagerService.java
+++ b/services/java/com/android/server/PowerManagerService.java
@@ -1780,13 +1780,13 @@
}
}
- boolean screenIsOn() {
+ public boolean isScreenOn() {
synchronized (mLocks) {
return (mPowerState & SCREEN_ON_BIT) != 0;
}
}
- boolean screenIsBright() {
+ boolean isScreenBright() {
synchronized (mLocks) {
return (mPowerState & SCREEN_BRIGHT) == SCREEN_BRIGHT;
}
@@ -2089,7 +2089,7 @@
boolean enabled = (mode == SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
if (mUseSoftwareAutoBrightness && mAutoBrightessEnabled != enabled) {
mAutoBrightessEnabled = enabled;
- if (screenIsOn()) {
+ if (isScreenOn()) {
// force recompute of backlight values
if (mLightSensorValue >= 0) {
int value = (int)mLightSensorValue;
diff --git a/services/java/com/android/server/WindowManagerService.java b/services/java/com/android/server/WindowManagerService.java
index d3645c3..9acc97a 100644
--- a/services/java/com/android/server/WindowManagerService.java
+++ b/services/java/com/android/server/WindowManagerService.java
@@ -6095,8 +6095,8 @@
}
// XXX end hack
- boolean screenIsOff = !mPowerManager.screenIsOn();
- boolean screenIsDim = !mPowerManager.screenIsBright();
+ boolean screenIsOff = !mPowerManager.isScreenOn();
+ boolean screenIsDim = !mPowerManager.isScreenBright();
int actions = mPolicy.interceptKeyTq(event, !screenIsOff);
if ((actions & WindowManagerPolicy.ACTION_GO_TO_SLEEP) != 0) {
@@ -6126,8 +6126,8 @@
}
case RawInputEvent.EV_REL: {
- boolean screenIsOff = !mPowerManager.screenIsOn();
- boolean screenIsDim = !mPowerManager.screenIsBright();
+ boolean screenIsOff = !mPowerManager.isScreenOn();
+ boolean screenIsDim = !mPowerManager.isScreenBright();
if (screenIsOff) {
if (!mPolicy.isWakeRelMovementTq(event.deviceId,
device.classes, event)) {
@@ -6143,8 +6143,8 @@
}
case RawInputEvent.EV_ABS: {
- boolean screenIsOff = !mPowerManager.screenIsOn();
- boolean screenIsDim = !mPowerManager.screenIsBright();
+ boolean screenIsOff = !mPowerManager.isScreenOn();
+ boolean screenIsDim = !mPowerManager.isScreenBright();
if (screenIsOff) {
if (!mPolicy.isWakeAbsMovementTq(event.deviceId,
device.classes, event)) {