summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--api/current.xml11
-rw-r--r--core/java/android/os/IPowerManager.aidl1
-rw-r--r--core/java/android/os/PowerManager.java20
-rw-r--r--core/java/android/webkit/WebView.java4
-rw-r--r--services/java/com/android/server/PowerManagerService.java6
-rw-r--r--services/java/com/android/server/WindowManagerService.java12
6 files changed, 45 insertions, 9 deletions
diff --git a/api/current.xml b/api/current.xml
index 2cda5bd96bf8..50b45d6c7322 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 5ac543d81058..bcf769da339b 100644
--- a/core/java/android/os/IPowerManager.aidl
+++ b/core/java/android/os/IPowerManager.aidl
@@ -31,6 +31,7 @@ interface IPowerManager
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 11c96d2b4b3c..2efc23041038 100644
--- a/core/java/android/os/PowerManager.java
+++ b/core/java/android/os/PowerManager.java
@@ -420,6 +420,26 @@ public class PowerManager
}
}
+ /**
+ * 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/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java
index fe912295562d..06c70cafe3e2 100644
--- a/core/java/android/webkit/WebView.java
+++ b/core/java/android/webkit/WebView.java
@@ -1713,6 +1713,7 @@ public class WebView extends AbsoluteLayout
* as the data member with "url" as key. The result can be null.
*/
public void requestImageRef(Message msg) {
+ if (0 == mNativeClass) return; // client isn't initialized
int contentX = viewToContentX((int) mLastTouchX + mScrollX);
int contentY = viewToContentY((int) mLastTouchY + mScrollY);
String ref = nativeImageURI(contentX, contentY);
@@ -2331,6 +2332,7 @@ public class WebView extends AbsoluteLayout
* @param forward Direction to search.
*/
public void findNext(boolean forward) {
+ if (0 == mNativeClass) return; // client isn't initialized
nativeFindNext(forward);
}
@@ -2341,6 +2343,7 @@ public class WebView extends AbsoluteLayout
* that were found.
*/
public int findAll(String find) {
+ if (0 == mNativeClass) return 0; // client isn't initialized
if (mFindIsUp == false) {
recordNewContentSize(mContentWidth, mContentHeight + mFindHeight,
false);
@@ -3431,6 +3434,7 @@ public class WebView extends AbsoluteLayout
* @hide
*/
public void emulateShiftHeld() {
+ if (0 == mNativeClass) return; // client isn't initialized
mExtendSelection = false;
mShiftIsPressed = true;
nativeHideCursor();
diff --git a/services/java/com/android/server/PowerManagerService.java b/services/java/com/android/server/PowerManagerService.java
index 611a86e3576a..270e3cba52a3 100644
--- a/services/java/com/android/server/PowerManagerService.java
+++ b/services/java/com/android/server/PowerManagerService.java
@@ -1780,13 +1780,13 @@ class PowerManagerService extends IPowerManager.Stub
}
}
- 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 @@ class PowerManagerService extends IPowerManager.Stub
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 d3645c35ffa5..9acc97ab49cb 100644
--- a/services/java/com/android/server/WindowManagerService.java
+++ b/services/java/com/android/server/WindowManagerService.java
@@ -6095,8 +6095,8 @@ public class WindowManagerService extends IWindowManager.Stub
}
// 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 @@ public class WindowManagerService extends IWindowManager.Stub
}
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 @@ public class WindowManagerService extends IWindowManager.Stub
}
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)) {