4848import android .os .SystemClock ;
4949import android .os .UserId ;
5050import android .provider .Settings ;
51+ import android .service .dreams .IDreamManager ;
5152import android .util .DisplayMetrics ;
5253import android .util .Log ;
5354import android .util .Slog ;
@@ -153,6 +154,7 @@ public class PhoneStatusBar extends BaseStatusBar {
153154 Display mDisplay ;
154155
155156 IWindowManager mWindowManager ;
157+ IDreamManager mDreamManager ;
156158
157159 StatusBarWindowView mStatusBarWindow ;
158160 PhoneStatusBarView mStatusBarView ;
@@ -302,6 +304,9 @@ public void start() {
302304 mWindowManager = IWindowManager .Stub .asInterface (
303305 ServiceManager .getService (Context .WINDOW_SERVICE ));
304306
307+ mDreamManager = IDreamManager .Stub .asInterface (
308+ ServiceManager .checkService ("dreams" ));
309+
305310 super .start (); // calls createAndAddWindows()
306311
307312 addNavigationBar ();
@@ -606,6 +611,7 @@ public void onClick(View v) {
606611 private Runnable mShowSearchPanel = new Runnable () {
607612 public void run () {
608613 showSearchPanel ();
614+ awakenDreams ();
609615 }
610616 };
611617
@@ -622,12 +628,23 @@ public boolean onTouch(View v, MotionEvent event) {
622628 case MotionEvent .ACTION_UP :
623629 case MotionEvent .ACTION_CANCEL :
624630 mHandler .removeCallbacks (mShowSearchPanel );
631+ awakenDreams ();
625632 break ;
626633 }
627634 return false ;
628635 }
629636 };
630637
638+ private void awakenDreams () {
639+ if (mDreamManager != null ) {
640+ try {
641+ mDreamManager .awaken ();
642+ } catch (RemoteException e ) {
643+ // fine, stay asleep then
644+ }
645+ }
646+ }
647+
631648 private void prepareNavigationBarView () {
632649 mNavigationBarView .reorient ();
633650
0 commit comments