Make sure onScreenTurnedOn is called at power on.

KeyguardViewMediator.onScreenTurnedOn is not called if the device is
booted into the power-on state. In this case mScreenOn remains false
and the lockscreen will always appear after outgoing calls. This fix
ensures that onScreenTurnedOn is called when the device is powered
up in the on state.

Fixes bug 6709173.

Change-Id: I7557d8f002307b9125bc53b13bc3cb4c5c9b2758
diff --git a/policy/src/com/android/internal/policy/impl/KeyguardViewMediator.java b/policy/src/com/android/internal/policy/impl/KeyguardViewMediator.java
index 85156998..e84e912 100644
--- a/policy/src/com/android/internal/policy/impl/KeyguardViewMediator.java
+++ b/policy/src/com/android/internal/policy/impl/KeyguardViewMediator.java
@@ -442,7 +442,9 @@
             mScreenOn = true;
             mDelayedShowingSequence++;
             if (DEBUG) Log.d(TAG, "onScreenTurnedOn, seq = " + mDelayedShowingSequence);
-            notifyScreenOnLocked(showListener);
+            if (showListener != null) {
+                notifyScreenOnLocked(showListener);
+            }
         }
     }
 
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
index beeea8e..756a3df 100755
--- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
+++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
@@ -3608,6 +3608,10 @@
                 });
             }
         } else {
+            if (mKeyguardMediator != null) {
+                // Must set mScreenOn = true.
+                mKeyguardMediator.onScreenTurnedOn(null);
+            }
             synchronized (mLock) {
                 mScreenOnFully = true;
             }