@@ -716,6 +716,13 @@ public void init(Context context, IWindowManager windowManager,
716716
717717 // Controls rotation and the like.
718718 initializeHdmiState ();
719+
720+ // Match current screen state.
721+ if (mPowerManager .isScreenOn ()) {
722+ screenTurningOn (null );
723+ } else {
724+ screenTurnedOff (WindowManagerPolicy .OFF_BECAUSE_OF_USER );
725+ }
719726 }
720727
721728 public void setInitialDisplaySize (int width , int height ) {
@@ -2780,31 +2787,42 @@ public void screenTurnedOff(int why) {
27802787 /** {@inheritDoc} */
27812788 public void screenTurningOn (final ScreenOnListener screenOnListener ) {
27822789 EventLog .writeEvent (70000 , 1 );
2783- //Slog.i(TAG, "Screen turning on...");
2784- mKeyguardMediator .onScreenTurnedOn (new KeyguardViewManager .ShowListener () {
2785- @ Override public void onShown (IBinder windowToken ) {
2786- if (windowToken != null ) {
2787- try {
2788- mWindowManager .waitForWindowDrawn (windowToken , new IRemoteCallback .Stub () {
2789- @ Override public void sendResult (Bundle data ) {
2790- Slog .i (TAG , "Lock screen displayed!" );
2791- screenOnListener .onScreenOn ();
2792- synchronized (mLock ) {
2793- mScreenOnFully = true ;
2790+ if (false ) {
2791+ RuntimeException here = new RuntimeException ("here" );
2792+ here .fillInStackTrace ();
2793+ Slog .i (TAG , "Screen turning on..." , here );
2794+ }
2795+ if (screenOnListener != null ) {
2796+ mKeyguardMediator .onScreenTurnedOn (new KeyguardViewManager .ShowListener () {
2797+ @ Override public void onShown (IBinder windowToken ) {
2798+ if (windowToken != null ) {
2799+ try {
2800+ mWindowManager .waitForWindowDrawn (windowToken ,
2801+ new IRemoteCallback .Stub () {
2802+ @ Override public void sendResult (Bundle data ) {
2803+ Slog .i (TAG , "Lock screen displayed!" );
2804+ screenOnListener .onScreenOn ();
2805+ synchronized (mLock ) {
2806+ mScreenOnFully = true ;
2807+ }
27942808 }
2795- }
2796- });
2797- } catch ( RemoteException e ) {
2798- }
2799- } else {
2800- Slog . i ( TAG , "No lock screen!" );
2801- screenOnListener . onScreenOn ();
2802- synchronized ( mLock ) {
2803- mScreenOnFully = true ;
2809+ });
2810+ } catch ( RemoteException e ) {
2811+ }
2812+ } else {
2813+ Slog . i ( TAG , "No lock screen!" );
2814+ screenOnListener . onScreenOn ( );
2815+ synchronized ( mLock ) {
2816+ mScreenOnFully = true ;
2817+ }
28042818 }
28052819 }
2820+ });
2821+ } else {
2822+ synchronized (mLock ) {
2823+ mScreenOnFully = true ;
28062824 }
2807- });
2825+ }
28082826 synchronized (mLock ) {
28092827 mScreenOnEarly = true ;
28102828 updateOrientationListenerLp ();
0 commit comments