@@ -297,7 +297,7 @@ protected View makeStatusBarView() {
297297 mNavigationBarView =
298298 (NavigationBarView ) View .inflate (context , R .layout .navigation_bar , null );
299299
300- setNavigationVisibility (mDisabled );
300+ mNavigationBarView . setDisabledFlags (mDisabled );
301301
302302 sb .setOnSystemUiVisibilityChangeListener (
303303 new View .OnSystemUiVisibilityChangeListener () {
@@ -1083,62 +1083,67 @@ public void disable(int state) {
10831083 old , state , diff ));
10841084 }
10851085
1086+ StringBuilder flagdbg = new StringBuilder ();
1087+ flagdbg .append ("disable: < " );
1088+ flagdbg .append (((state & StatusBarManager .DISABLE_EXPAND ) != 0 ) ? "EXPAND" : "expand" );
1089+ flagdbg .append (((diff & StatusBarManager .DISABLE_EXPAND ) != 0 ) ? "* " : " " );
1090+ flagdbg .append (((state & StatusBarManager .DISABLE_NOTIFICATION_ICONS ) != 0 ) ? "ICONS" : "icons" );
1091+ flagdbg .append (((diff & StatusBarManager .DISABLE_NOTIFICATION_ICONS ) != 0 ) ? "* " : " " );
1092+ flagdbg .append (((state & StatusBarManager .DISABLE_NOTIFICATION_ALERTS ) != 0 ) ? "ALERTS" : "alerts" );
1093+ flagdbg .append (((diff & StatusBarManager .DISABLE_NOTIFICATION_ALERTS ) != 0 ) ? "* " : " " );
1094+ flagdbg .append (((state & StatusBarManager .DISABLE_NOTIFICATION_TICKER ) != 0 ) ? "TICKER" : "ticker" );
1095+ flagdbg .append (((diff & StatusBarManager .DISABLE_NOTIFICATION_TICKER ) != 0 ) ? "* " : " " );
1096+ flagdbg .append (((state & StatusBarManager .DISABLE_SYSTEM_INFO ) != 0 ) ? "SYSTEM_INFO" : "system_info" );
1097+ flagdbg .append (((diff & StatusBarManager .DISABLE_SYSTEM_INFO ) != 0 ) ? "* " : " " );
1098+ flagdbg .append (((state & StatusBarManager .DISABLE_NAVIGATION ) != 0 ) ? "NAVIGATION" : "navigation" );
1099+ flagdbg .append (((diff & StatusBarManager .DISABLE_NAVIGATION ) != 0 ) ? "* " : " " );
1100+ flagdbg .append (((state & StatusBarManager .DISABLE_BACK ) != 0 ) ? "BACK" : "back" );
1101+ flagdbg .append (((diff & StatusBarManager .DISABLE_BACK ) != 0 ) ? "* " : " " );
1102+ flagdbg .append (((state & StatusBarManager .DISABLE_CLOCK ) != 0 ) ? "CLOCK" : "clock" );
1103+ flagdbg .append (((diff & StatusBarManager .DISABLE_CLOCK ) != 0 ) ? "* " : " " );
1104+ flagdbg .append (">" );
1105+ Slog .d (TAG , flagdbg .toString ());
1106+
10861107 if ((diff & StatusBarManager .DISABLE_CLOCK ) != 0 ) {
10871108 boolean show = (state & StatusBarManager .DISABLE_CLOCK ) == 0 ;
10881109 showClock (show );
10891110 }
10901111 if ((diff & StatusBarManager .DISABLE_EXPAND ) != 0 ) {
10911112 if ((state & StatusBarManager .DISABLE_EXPAND ) != 0 ) {
1092- Slog .d (TAG , "DISABLE_EXPAND: yes" );
10931113 animateCollapse ();
10941114 }
10951115 }
10961116
10971117 if ((diff & (StatusBarManager .DISABLE_NAVIGATION | StatusBarManager .DISABLE_BACK )) != 0 ) {
1098- setNavigationVisibility (state &
1099- (StatusBarManager .DISABLE_NAVIGATION | StatusBarManager .DISABLE_BACK ));
1118+ // the nav bar will take care of DISABLE_NAVIGATION and DISABLE_BACK
1119+ mNavigationBarView .setDisabledFlags (state );
1120+
1121+ if ((state & StatusBarManager .DISABLE_NAVIGATION ) != 0 ) {
1122+ // close recents if it's visible
1123+ mHandler .removeMessages (MSG_CLOSE_RECENTS_PANEL );
1124+ mHandler .sendEmptyMessage (MSG_CLOSE_RECENTS_PANEL );
1125+ }
11001126 }
11011127
11021128 if ((diff & StatusBarManager .DISABLE_NOTIFICATION_ICONS ) != 0 ) {
11031129 if ((state & StatusBarManager .DISABLE_NOTIFICATION_ICONS ) != 0 ) {
1104- Slog .d (TAG , "DISABLE_NOTIFICATION_ICONS: yes" );
11051130 if (mTicking ) {
11061131 mTicker .halt ();
11071132 } else {
11081133 setNotificationIconVisibility (false , com .android .internal .R .anim .fade_out );
11091134 }
11101135 } else {
1111- Slog .d (TAG , "DISABLE_NOTIFICATION_ICONS: no" );
11121136 if (!mExpandedVisible ) {
11131137 setNotificationIconVisibility (true , com .android .internal .R .anim .fade_in );
11141138 }
11151139 }
11161140 } else if ((diff & StatusBarManager .DISABLE_NOTIFICATION_TICKER ) != 0 ) {
11171141 if (mTicking && (state & StatusBarManager .DISABLE_NOTIFICATION_TICKER ) != 0 ) {
1118- Slog .d (TAG , "DISABLE_NOTIFICATION_TICKER: yes" );
11191142 mTicker .halt ();
11201143 }
11211144 }
11221145 }
11231146
1124- private void setNavigationVisibility (int visibility ) {
1125- boolean disableNavigation = ((visibility & StatusBarManager .DISABLE_NAVIGATION ) != 0 );
1126- boolean disableBack = ((visibility & StatusBarManager .DISABLE_BACK ) != 0 );
1127-
1128- Slog .i (TAG , "DISABLE_BACK: " + (disableBack ? "yes" : "no" ));
1129- Slog .i (TAG , "DISABLE_NAVIGATION: " + (disableNavigation ? "yes" : "no" ));
1130-
1131- if (mNavigationBarView != null ) {
1132- mNavigationBarView .setNavigationVisibility (visibility );
1133- }
1134-
1135- if (disableNavigation ) {
1136- // close recents if it's visible
1137- mHandler .removeMessages (MSG_CLOSE_RECENTS_PANEL );
1138- mHandler .sendEmptyMessage (MSG_CLOSE_RECENTS_PANEL );
1139- }
1140- }
1141-
11421147 /**
11431148 * All changes to the status bar and notifications funnel through here and are batched.
11441149 */
0 commit comments