public void onScreenTurnedOn(final ShowListener showListener) {
   if (mKeyguardService != null) {
     if (DEBUG) Log.v(TAG, "onScreenTurnedOn(showListener = " + showListener + ")");
     mKeyguardService.onScreenTurnedOn(new KeyguardShowDelegate(showListener));
   } else {
     // try again when we establish a connection
     Slog.w(TAG, "onScreenTurnedOn(): no keyguard service!");
     // This shouldn't happen, but if it does, invoke the listener immediately
     // to avoid a dark screen...
     showListener.onShown(null);
   }
   mKeyguardState.screenIsOn = true;
 }
 @Override
 public void onServiceConnected(ComponentName name, IBinder service) {
   if (DEBUG) Log.v(TAG, "*** Keyguard connected (yay!)");
   mKeyguardService = new KeyguardServiceWrapper(IKeyguardService.Stub.asInterface(service));
   if (mKeyguardState.systemIsReady) {
     // If the system is ready, it means keyguard crashed and restarted.
     mKeyguardService.onSystemReady();
     // This is used to hide the scrim once keyguard displays.
     mKeyguardService.onScreenTurnedOn(new KeyguardShowDelegate(null));
   }
   if (mKeyguardState.bootCompleted) {
     mKeyguardService.onBootCompleted();
   }
 }
 public void onScreenTurnedOn(final ShowListener showListener) {
   if (mKeyguardService != null) {
     if (DEBUG) Log.v(TAG, "onScreenTurnedOn(showListener = " + showListener + ")");
     mKeyguardService.onScreenTurnedOn(new KeyguardShowDelegate(showListener));
   } else {
     // try again when we establish a connection
     Slog.w(TAG, "onScreenTurnedOn(): no keyguard service!");
     // This shouldn't happen, but if it does, show the scrim immediately and
     // invoke the listener's callback after the service actually connects.
     mShowListenerWhenConnect = showListener;
     showScrim();
   }
   mKeyguardState.screenIsOn = true;
 }