ril: Fix update screen events.
Mohamad Ayyash [Thu, 16 Oct 2014 21:01:13 +0000 (14:01 -0700)]
- Handle invalid states in updateScreenState.
- Call updateScreenState in onRadioAvailalbe instead.

BUG: 17991196
Change-Id: I567aa74b1dd6b4bbadb273c05296fe82be575f7f
Signed-off-by: Mohamad Ayyash <mkayyash@google.com>

src/java/com/android/internal/telephony/RIL.java

index 0789b66..f59e883 100644 (file)
@@ -2216,8 +2216,8 @@ public final class RIL extends BaseCommands implements CommandsInterface {
             if (oldState != Display.STATE_ON
                     && mDefaultDisplayState == Display.STATE_ON) {
                 sendScreenState(true);
-            } else if (oldState == Display.STATE_ON
-                    && mDefaultDisplayState != Display.STATE_ON) {
+            } else if ((oldState == Display.STATE_ON || oldState == Display.STATE_UNKNOWN)
+                        && mDefaultDisplayState != Display.STATE_ON) {
                 sendScreenState(false);
             }
         }
@@ -2239,9 +2239,7 @@ public final class RIL extends BaseCommands implements CommandsInterface {
     onRadioAvailable() {
         // In case screen state was lost (due to process crash),
         // this ensures that the RIL knows the correct screen state.
-
-        PowerManager pm = (PowerManager)mContext.getSystemService(Context.POWER_SERVICE);
-        sendScreenState(pm.isScreenOn());
+        updateScreenState();
    }
 
     private RadioState getRadioStateFromInt(int stateInt) {