@@ -182,6 +182,7 @@ public class PhoneStatusBar extends BaseStatusBar {
182182 private TextView mCarrierLabel ;
183183 private boolean mCarrierLabelVisible = false ;
184184 private int mCarrierLabelHeight ;
185+ private TextView mEmergencyCallLabel ;
185186
186187 // drag bar
187188 CloseDragHandle mCloseView ;
@@ -409,14 +410,6 @@ public boolean onTouch(View v, MotionEvent event) {
409410 mPile = (NotificationRowLayout )mStatusBarWindow .findViewById (R .id .latestItems );
410411 mPile .setLayoutTransitionsEnabled (false );
411412 mPile .setLongPressListener (getNotificationLongClicker ());
412- if (SHOW_CARRIER_LABEL ) {
413- mPile .setOnSizeChangedListener (new OnSizeChangedListener () {
414- @ Override
415- public void onSizeChanged (View view , int w , int h , int oldw , int oldh ) {
416- updateCarrierLabelVisibility (false );
417- }
418- });
419- }
420413 mExpandedContents = mPile ; // was: expanded.findViewById(R.id.notificationLinearLayout);
421414
422415 mClearButton = mStatusBarWindow .findViewById (R .id .clear_all_button );
@@ -429,9 +422,6 @@ public void onSizeChanged(View view, int w, int h, int oldw, int oldh) {
429422 mSettingsButton .setOnClickListener (mSettingsButtonListener );
430423 mRotationButton = (RotationToggle ) mStatusBarWindow .findViewById (R .id .rotation_lock_button );
431424
432- mCarrierLabel = (TextView )mStatusBarWindow .findViewById (R .id .carrier_label );
433- mCarrierLabel .setVisibility (mCarrierLabelVisible ? View .VISIBLE : View .INVISIBLE );
434-
435425 mScrollView = (ScrollView )mStatusBarWindow .findViewById (R .id .scroll );
436426 mScrollView .setVerticalScrollBarEnabled (false ); // less drawing during pulldowns
437427
@@ -460,14 +450,36 @@ public void onSizeChanged(View view, int w, int h, int oldw, int oldh) {
460450 mNetworkController .addSignalCluster (signalCluster );
461451 signalCluster .setNetworkController (mNetworkController );
462452
453+ mEmergencyCallLabel = (TextView )mStatusBarWindow .findViewById (R .id .emergency_calls_only );
454+ if (mEmergencyCallLabel != null ) {
455+ mNetworkController .addEmergencyLabelView (mEmergencyCallLabel );
456+ mEmergencyCallLabel .addOnLayoutChangeListener (new View .OnLayoutChangeListener () {
457+ @ Override
458+ public void onLayoutChange (View v , int left , int top , int right , int bottom ,
459+ int oldLeft , int oldTop , int oldRight , int oldBottom ) {
460+ updateCarrierLabelVisibility (false );
461+ }});
462+ }
463+
463464 if (SHOW_CARRIER_LABEL ) {
465+ mCarrierLabel = (TextView )mStatusBarWindow .findViewById (R .id .carrier_label );
466+ mCarrierLabel .setVisibility (mCarrierLabelVisible ? View .VISIBLE : View .INVISIBLE );
467+
464468 // for mobile devices, we always show mobile connection info here (SPN/PLMN)
465469 // for other devices, we show whatever network is connected
466470 if (mNetworkController .hasMobileDataFeature ()) {
467471 mNetworkController .addMobileLabelView (mCarrierLabel );
468472 } else {
469473 mNetworkController .addCombinedLabelView (mCarrierLabel );
470474 }
475+
476+ // set up the dynamic hide/show of the label
477+ mPile .setOnSizeChangedListener (new OnSizeChangedListener () {
478+ @ Override
479+ public void onSizeChanged (View view , int w , int h , int oldw , int oldh ) {
480+ updateCarrierLabelVisibility (false );
481+ }
482+ });
471483 }
472484
473485// final ImageView wimaxRSSI =
@@ -919,9 +931,11 @@ protected void updateCarrierLabelVisibility(boolean force) {
919931 Slog .d (TAG , String .format ("pileh=%d scrollh=%d carrierh=%d" ,
920932 mPile .getHeight (), mScrollView .getHeight (), mCarrierLabelHeight ));
921933 }
922-
923- final boolean makeVisible =
924- mPile .getHeight () < (mScrollView .getHeight () - mCarrierLabelHeight );
934+
935+ final boolean emergencyCallsShownElsewhere = mEmergencyCallLabel != null ;
936+ final boolean makeVisible =
937+ !(emergencyCallsShownElsewhere && mNetworkController .isEmergencyOnly ())
938+ && mPile .getHeight () < (mScrollView .getHeight () - mCarrierLabelHeight );
925939
926940 if (force || mCarrierLabelVisible != makeVisible ) {
927941 mCarrierLabelVisible = makeVisible ;
0 commit comments