diff options
| -rw-r--r-- | api/current.xml | 11 | ||||
| -rw-r--r-- | core/java/android/os/IPowerManager.aidl | 1 | ||||
| -rw-r--r-- | core/java/android/os/PowerManager.java | 20 | ||||
| -rw-r--r-- | core/java/android/webkit/WebView.java | 4 | ||||
| -rw-r--r-- | services/java/com/android/server/PowerManagerService.java | 6 | ||||
| -rw-r--r-- | services/java/com/android/server/WindowManagerService.java | 12 |
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)) { |