@@ -186,6 +186,7 @@ public class PhoneStatusBar extends BaseStatusBar {
186186 private TextView mCarrierLabel ;
187187 private boolean mCarrierLabelVisible = false ;
188188 private int mCarrierLabelHeight ;
189+ private TextView mEmergencyCallLabel ;
189190
190191 // drag bar
191192 CloseDragHandle mCloseView ;
@@ -402,14 +403,6 @@ public boolean onTouch(View v, MotionEvent event) {
402403 mPile = (NotificationRowLayout )mStatusBarWindow .findViewById (R .id .latestItems );
403404 mPile .setLayoutTransitionsEnabled (false );
404405 mPile .setLongPressListener (getNotificationLongClicker ());
405- if (SHOW_CARRIER_LABEL ) {
406- mPile .setOnSizeChangedListener (new OnSizeChangedListener () {
407- @ Override
408- public void onSizeChanged (View view , int w , int h , int oldw , int oldh ) {
409- updateCarrierLabelVisibility (false );
410- }
411- });
412- }
413406 mExpandedContents = mPile ; // was: expanded.findViewById(R.id.notificationLinearLayout);
414407
415408 mClearButton = mStatusBarWindow .findViewById (R .id .clear_all_button );
@@ -422,9 +415,6 @@ public void onSizeChanged(View view, int w, int h, int oldw, int oldh) {
422415 mSettingsButton .setOnClickListener (mSettingsButtonListener );
423416 mRotationButton = (RotationToggle ) mStatusBarWindow .findViewById (R .id .rotation_lock_button );
424417
425- mCarrierLabel = (TextView )mStatusBarWindow .findViewById (R .id .carrier_label );
426- mCarrierLabel .setVisibility (mCarrierLabelVisible ? View .VISIBLE : View .INVISIBLE );
427-
428418 mScrollView = (ScrollView )mStatusBarWindow .findViewById (R .id .scroll );
429419 mScrollView .setVerticalScrollBarEnabled (false ); // less drawing during pulldowns
430420
@@ -453,14 +443,36 @@ public void onSizeChanged(View view, int w, int h, int oldw, int oldh) {
453443 mNetworkController .addSignalCluster (signalCluster );
454444 signalCluster .setNetworkController (mNetworkController );
455445
446+ mEmergencyCallLabel = (TextView )mStatusBarWindow .findViewById (R .id .emergency_calls_only );
447+ if (mEmergencyCallLabel != null ) {
448+ mNetworkController .addEmergencyLabelView (mEmergencyCallLabel );
449+ mEmergencyCallLabel .addOnLayoutChangeListener (new View .OnLayoutChangeListener () {
450+ @ Override
451+ public void onLayoutChange (View v , int left , int top , int right , int bottom ,
452+ int oldLeft , int oldTop , int oldRight , int oldBottom ) {
453+ updateCarrierLabelVisibility (false );
454+ }});
455+ }
456+
456457 if (SHOW_CARRIER_LABEL ) {
458+ mCarrierLabel = (TextView )mStatusBarWindow .findViewById (R .id .carrier_label );
459+ mCarrierLabel .setVisibility (mCarrierLabelVisible ? View .VISIBLE : View .INVISIBLE );
460+
457461 // for mobile devices, we always show mobile connection info here (SPN/PLMN)
458462 // for other devices, we show whatever network is connected
459463 if (mNetworkController .hasMobileDataFeature ()) {
460464 mNetworkController .addMobileLabelView (mCarrierLabel );
461465 } else {
462466 mNetworkController .addCombinedLabelView (mCarrierLabel );
463467 }
468+
469+ // set up the dynamic hide/show of the label
470+ mPile .setOnSizeChangedListener (new OnSizeChangedListener () {
471+ @ Override
472+ public void onSizeChanged (View view , int w , int h , int oldw , int oldh ) {
473+ updateCarrierLabelVisibility (false );
474+ }
475+ });
464476 }
465477
466478// final ImageView wimaxRSSI =
@@ -904,9 +916,11 @@ protected void updateCarrierLabelVisibility(boolean force) {
904916 Slog .d (TAG , String .format ("pileh=%d scrollh=%d carrierh=%d" ,
905917 mPile .getHeight (), mScrollView .getHeight (), mCarrierLabelHeight ));
906918 }
907-
908- final boolean makeVisible =
909- mPile .getHeight () < (mScrollView .getHeight () - mCarrierLabelHeight );
919+
920+ final boolean emergencyCallsShownElsewhere = mEmergencyCallLabel != null ;
921+ final boolean makeVisible =
922+ !(emergencyCallsShownElsewhere && mNetworkController .isEmergencyOnly ())
923+ && mPile .getHeight () < (mScrollView .getHeight () - mCarrierLabelHeight );
910924
911925 if (force || mCarrierLabelVisible != makeVisible ) {
912926 mCarrierLabelVisible = makeVisible ;
0 commit comments