Revert "Change carrier name shown No Service to ECO"

This reverts commit b023773a18c37a8a50a6d18e552b1e440dff13e7.

Reason for revert: Not yet decided to release this at this stage

Change-Id: Ic0018cadcc228667a64f6f8c694bb6a04f00adc9

Bug: 130857483
Bug: 133201131
Bug: 132291669
diff --git a/packages/SystemUI/src/com/android/keyguard/CarrierTextController.java b/packages/SystemUI/src/com/android/keyguard/CarrierTextController.java
index c26fdc2..2090748 100644
--- a/packages/SystemUI/src/com/android/keyguard/CarrierTextController.java
+++ b/packages/SystemUI/src/com/android/keyguard/CarrierTextController.java
@@ -324,25 +324,13 @@
         final CharSequence[] carrierNames = new CharSequence[numSubs];
         if (DEBUG) Log.d(TAG, "updateCarrierText(): " + numSubs);
 
-        boolean anySimEmergency = mKeyguardUpdateMonitor.isAnySimEmergencyAble();
         for (int i = 0; i < numSubs; i++) {
             int subId = subs.get(i).getSubscriptionId();
             carrierNames[i] = "";
             subsIds[i] = subId;
             subOrderBySlot[subs.get(i).getSimSlotIndex()] = i;
             IccCardConstants.State simState = mKeyguardUpdateMonitor.getSimState(subId);
-            ServiceState s = mKeyguardUpdateMonitor.getServiceState(subId);
             CharSequence carrierName = subs.get(i).getCarrierName();
-            // If this sub is showing No service but at least one slot currently supports emergency
-            // calls, it should replace it by Emergency calls only
-            if (s != null && s.getState() != ServiceState.STATE_IN_SERVICE && !s.isEmergencyOnly()
-                    && anySimEmergency) {
-                carrierName = getContext().getText(
-                        com.android.internal.R.string.emergency_calls_only);
-                if (DEBUG) {
-                    Log.d(TAG, "Subscription " + subId + "switched to ECO");
-                }
-            }
             CharSequence carrierTextForSimState = getCarrierTextForSimState(simState, carrierName);
             if (DEBUG) {
                 Log.d(TAG, "Handling (subId=" + subId + "): " + simState + " " + carrierName);
@@ -352,15 +340,16 @@
                 carrierNames[i] = carrierTextForSimState;
             }
             if (simState == IccCardConstants.State.READY) {
-                if (s != null && s.getDataRegState() == ServiceState.STATE_IN_SERVICE) {
+                ServiceState ss = mKeyguardUpdateMonitor.mServiceStates.get(subId);
+                if (ss != null && ss.getDataRegState() == ServiceState.STATE_IN_SERVICE) {
                     // hack for WFC (IWLAN) not turning off immediately once
                     // Wi-Fi is disassociated or disabled
-                    if (s.getRilDataRadioTechnology() != ServiceState.RIL_RADIO_TECHNOLOGY_IWLAN
+                    if (ss.getRilDataRadioTechnology() != ServiceState.RIL_RADIO_TECHNOLOGY_IWLAN
                             || (mWifiManager.isWifiEnabled()
                             && mWifiManager.getConnectionInfo() != null
                             && mWifiManager.getConnectionInfo().getBSSID() != null)) {
                         if (DEBUG) {
-                            Log.d(TAG, "SIM ready and in service: subId=" + subId + ", ss=" + s);
+                            Log.d(TAG, "SIM ready and in service: subId=" + subId + ", ss=" + ss);
                         }
                         anySimReadyAndInService = true;
                     }
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
index 446366b..6a4dbc8d 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
@@ -195,12 +195,6 @@
     HashMap<Integer, SimData> mSimDatas = new HashMap<Integer, SimData>();
     HashMap<Integer, ServiceState> mServiceStates = new HashMap<Integer, ServiceState>();
 
-    /**
-     * Support up to 3 slots which is what's supported by {@link TelephonyManager#getPhoneCount}
-     */
-    private static final int SIM_SLOTS = 3;
-    private final ServiceState[] mServiceStatesBySlot = new ServiceState[SIM_SLOTS];
-
     private int mRingMode;
     private int mPhoneState;
     private boolean mKeyguardIsVisible;
@@ -332,7 +326,7 @@
                     handleAirplaneModeChanged();
                     break;
                 case MSG_SERVICE_STATE_CHANGE:
-                    handleServiceStateChange(msg.arg1, msg.arg2, (ServiceState) msg.obj);
+                    handleServiceStateChange(msg.arg1, (ServiceState) msg.obj);
                     break;
                 case MSG_SCREEN_TURNED_ON:
                     handleScreenTurnedOn();
@@ -1044,13 +1038,12 @@
                 ServiceState serviceState = ServiceState.newFromBundle(intent.getExtras());
                 int subId = intent.getIntExtra(PhoneConstants.SUBSCRIPTION_KEY,
                         SubscriptionManager.INVALID_SUBSCRIPTION_ID);
-                int slotId = intent.getIntExtra(PhoneConstants.SLOT_KEY, -1);
                 if (DEBUG) {
                     Log.v(TAG, "action " + action + " serviceState=" + serviceState + " subId="
                             + subId);
                 }
-                mHandler.obtainMessage(MSG_SERVICE_STATE_CHANGE, subId, slotId, serviceState)
-                        .sendToTarget();
+                mHandler.sendMessage(
+                        mHandler.obtainMessage(MSG_SERVICE_STATE_CHANGE, subId, 0, serviceState));
             } else if (DevicePolicyManager.ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED.equals(
                     action)) {
                 mHandler.sendEmptyMessage(MSG_DEVICE_POLICY_MANAGER_STATE_CHANGED);
@@ -2049,14 +2042,6 @@
      */
     @VisibleForTesting
     void handleServiceStateChange(int subId, ServiceState serviceState) {
-        handleServiceStateChange(subId, -1, serviceState);
-    }
-
-    /**
-     * Handle {@link #MSG_SERVICE_STATE_CHANGE}
-     */
-    @VisibleForTesting
-    void handleServiceStateChange(int subId, int slotId, ServiceState serviceState) {
         if (DEBUG) {
             Log.d(TAG,
                     "handleServiceStateChange(subId=" + subId + ", serviceState=" + serviceState);
@@ -2070,7 +2055,6 @@
         }
 
         mServiceStates.put(subId, serviceState);
-        if (slotId >= 0 && slotId < SIM_SLOTS) mServiceStatesBySlot[slotId] = serviceState;
 
         for (int j = 0; j < mCallbacks.size(); j++) {
             KeyguardUpdateMonitorCallback cb = mCallbacks.get(j).get();
@@ -2296,21 +2280,6 @@
         return mServiceStates.get(subId);
     }
 
-    /**
-     * @return true iff at least one slot currently supports emergency calls
-     */
-    public boolean isAnySimEmergencyAble() {
-        for (int i = 0; i < SIM_SLOTS; i++) {
-            ServiceState s = mServiceStatesBySlot[i];
-            if (s != null) {
-                if (s.getState() == ServiceState.STATE_IN_SERVICE || s.isEmergencyOnly()) {
-                    return true;
-                }
-            }
-        }
-        return false;
-    }
-
     public void clearBiometricRecognized() {
         mUserFingerprintAuthenticated.clear();
         mUserFaceAuthenticated.clear();
diff --git a/packages/SystemUI/tests/src/com/android/keyguard/CarrierTextControllerTest.java b/packages/SystemUI/tests/src/com/android/keyguard/CarrierTextControllerTest.java
index fa81e40..db45ad78 100644
--- a/packages/SystemUI/tests/src/com/android/keyguard/CarrierTextControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/keyguard/CarrierTextControllerTest.java
@@ -27,7 +27,6 @@
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.reset;
 import static org.mockito.Mockito.verify;
@@ -37,7 +36,6 @@
 import android.net.ConnectivityManager;
 import android.net.wifi.WifiManager;
 import android.os.Handler;
-import android.telephony.ServiceState;
 import android.telephony.SubscriptionInfo;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
@@ -45,7 +43,6 @@
 import android.testing.AndroidTestingRunner;
 import android.testing.TestableLooper;
 
-import com.android.internal.R;
 import com.android.internal.telephony.IccCardConstants;
 import com.android.systemui.Dependency;
 import com.android.systemui.SysuiTestCase;
@@ -59,6 +56,7 @@
 import org.mockito.MockitoAnnotations;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 
 @SmallTest
@@ -70,7 +68,6 @@
     private static final String TEST_CARRIER = "TEST_CARRIER";
     private static final String TEST_CARRIER_2 = "TEST_CARRIER_2";
     private static final String TEST_GROUP_UUID = "59b5c870-fc4c-47a4-a99e-9db826b48b24";
-    private static final String EMERGENCY = "Emergency";
     private static final int TEST_CARRIER_ID = 1;
     private static final SubscriptionInfo TEST_SUBSCRIPTION = new SubscriptionInfo(0, "", 0,
             TEST_CARRIER, TEST_CARRIER, NAME_SOURCE_DEFAULT_SOURCE, 0xFFFFFF, "",
@@ -109,8 +106,6 @@
         mContext.addMockSystemService(ConnectivityManager.class, mConnectivityManager);
         mContext.addMockSystemService(TelephonyManager.class, mTelephonyManager);
         mContext.addMockSystemService(SubscriptionManager.class, mSubscriptionManager);
-        mContext.getOrCreateTestableResources().addOverride(
-                R.string.emergency_calls_only, EMERGENCY);
         mDependency.injectMockDependency(WakefulnessLifecycle.class);
         mDependency.injectTestDependency(Dependency.MAIN_HANDLER,
                 new Handler(mTestableLooper.getLooper()));
@@ -195,6 +190,8 @@
         when(mKeyguardUpdateMonitor.getSimState(anyInt())).thenReturn(IccCardConstants.State.READY);
         when(mKeyguardUpdateMonitor.getSubscriptionInfo(anyBoolean())).thenReturn(list);
 
+        mKeyguardUpdateMonitor.mServiceStates = new HashMap<>();
+
         ArgumentCaptor<CarrierTextController.CarrierTextCallbackInfo> captor =
                 ArgumentCaptor.forClass(
                         CarrierTextController.CarrierTextCallbackInfo.class);
@@ -217,6 +214,8 @@
         when(mKeyguardUpdateMonitor.getSimState(anyInt())).thenReturn(IccCardConstants.State.READY);
         when(mKeyguardUpdateMonitor.getSubscriptionInfo(anyBoolean())).thenReturn(list);
 
+        mKeyguardUpdateMonitor.mServiceStates = new HashMap<>();
+
         ArgumentCaptor<CarrierTextController.CarrierTextCallbackInfo> captor =
                 ArgumentCaptor.forClass(
                         CarrierTextController.CarrierTextCallbackInfo.class);
@@ -260,6 +259,8 @@
         when(mKeyguardUpdateMonitor.getSimState(anyInt())).thenReturn(IccCardConstants.State.READY);
         when(mKeyguardUpdateMonitor.getSubscriptionInfo(anyBoolean())).thenReturn(list);
 
+        mKeyguardUpdateMonitor.mServiceStates = new HashMap<>();
+
         ArgumentCaptor<CarrierTextController.CarrierTextCallbackInfo> captor =
                 ArgumentCaptor.forClass(
                         CarrierTextController.CarrierTextCallbackInfo.class);
@@ -283,6 +284,8 @@
                 .thenReturn(IccCardConstants.State.NOT_READY);
         when(mKeyguardUpdateMonitor.getSubscriptionInfo(anyBoolean())).thenReturn(list);
 
+        mKeyguardUpdateMonitor.mServiceStates = new HashMap<>();
+
         ArgumentCaptor<CarrierTextController.CarrierTextCallbackInfo> captor =
                 ArgumentCaptor.forClass(
                         CarrierTextController.CarrierTextCallbackInfo.class);
@@ -306,6 +309,8 @@
                 .thenReturn(IccCardConstants.State.READY);
         when(mKeyguardUpdateMonitor.getSubscriptionInfo(anyBoolean())).thenReturn(list);
 
+        mKeyguardUpdateMonitor.mServiceStates = new HashMap<>();
+
         ArgumentCaptor<CarrierTextController.CarrierTextCallbackInfo> captor =
                 ArgumentCaptor.forClass(
                         CarrierTextController.CarrierTextCallbackInfo.class);
@@ -330,6 +335,7 @@
                 .thenReturn(IccCardConstants.State.NOT_READY)
                 .thenReturn(IccCardConstants.State.READY);
         when(mKeyguardUpdateMonitor.getSubscriptionInfo(anyBoolean())).thenReturn(list);
+        mKeyguardUpdateMonitor.mServiceStates = new HashMap<>();
 
         ArgumentCaptor<CarrierTextController.CarrierTextCallbackInfo> captor =
                 ArgumentCaptor.forClass(
@@ -352,6 +358,7 @@
         when(mKeyguardUpdateMonitor.getSimState(anyInt()))
             .thenReturn(IccCardConstants.State.READY);
 
+        mKeyguardUpdateMonitor.mServiceStates = new HashMap<>();
         mCarrierTextController.updateDisplayOpportunisticSubscriptionCarrierText(true);
         when(mSubscriptionManager.getActiveSubscriptionInfoList(anyBoolean())).thenReturn(list);
 
@@ -366,127 +373,6 @@
         assertEquals(TEST_CARRIER_2, captor.getValue().carrierText);
     }
 
-    @Test
-    public void testCarrierText_replaceOutOfServiceWithEmergency() {
-        reset(mCarrierTextCallback);
-
-        List<SubscriptionInfo> list = new ArrayList<>();
-        list.add(TEST_SUBSCRIPTION);
-        when(mKeyguardUpdateMonitor.getSubscriptionInfo(anyBoolean())).thenReturn(list);
-
-        when(mKeyguardUpdateMonitor.getSimState(anyInt()))
-                .thenReturn(IccCardConstants.State.READY);
-        ServiceState s = mock(ServiceState.class);
-        when(mKeyguardUpdateMonitor.getServiceState(anyInt())).thenReturn(s);
-        when(s.getState()).thenReturn(ServiceState.STATE_OUT_OF_SERVICE);
-
-        when(mKeyguardUpdateMonitor.isAnySimEmergencyAble()).thenReturn(true);
-
-        ArgumentCaptor<CarrierTextController.CarrierTextCallbackInfo> captor =
-                ArgumentCaptor.forClass(
-                        CarrierTextController.CarrierTextCallbackInfo.class);
-
-        mCarrierTextController.updateCarrierText();
-        mTestableLooper.processAllMessages();
-        verify(mCarrierTextCallback).updateCarrierInfo(captor.capture());
-
-        assertEquals(1, captor.getValue().listOfCarriers.length);
-        assertEquals(EMERGENCY, captor.getValue().listOfCarriers[0]);
-    }
-
-    @Test
-    public void testCarrierText_replaceOutOfServiceWithEmergencyOnlyInNoService() {
-        reset(mCarrierTextCallback);
-
-        List<SubscriptionInfo> list = new ArrayList<>();
-        list.add(TEST_SUBSCRIPTION);
-        list.add(TEST_SUBSCRIPTION_2);
-        when(mKeyguardUpdateMonitor.getSubscriptionInfo(anyBoolean())).thenReturn(list);
-
-        when(mKeyguardUpdateMonitor.getSimState(anyInt()))
-                .thenReturn(IccCardConstants.State.READY);
-        ServiceState sInService = mock(ServiceState.class);
-        ServiceState sOutOfService = mock(ServiceState.class);
-        when(mKeyguardUpdateMonitor.getServiceState(anyInt()))
-                .thenReturn(sInService)
-                .thenReturn(sOutOfService);
-        when(sInService.getState()).thenReturn(ServiceState.STATE_IN_SERVICE);
-        when(sOutOfService.getState()).thenReturn(ServiceState.STATE_OUT_OF_SERVICE);
-
-        when(mKeyguardUpdateMonitor.isAnySimEmergencyAble()).thenReturn(true);
-
-        ArgumentCaptor<CarrierTextController.CarrierTextCallbackInfo> captor =
-                ArgumentCaptor.forClass(
-                        CarrierTextController.CarrierTextCallbackInfo.class);
-
-        mCarrierTextController.updateCarrierText();
-        mTestableLooper.processAllMessages();
-        verify(mCarrierTextCallback).updateCarrierInfo(captor.capture());
-
-        assertEquals(2, captor.getValue().listOfCarriers.length);
-        assertEquals(TEST_CARRIER, captor.getValue().listOfCarriers[0]);
-        assertEquals(EMERGENCY, captor.getValue().listOfCarriers[1]);
-    }
-
-    @Test
-    public void testCarrierText_dontReplaceWithEmergencyIfNotAble() {
-        reset(mCarrierTextCallback);
-
-        List<SubscriptionInfo> list = new ArrayList<>();
-        list.add(TEST_SUBSCRIPTION);
-        list.add(TEST_SUBSCRIPTION_2);
-        when(mKeyguardUpdateMonitor.getSubscriptionInfo(anyBoolean())).thenReturn(list);
-
-        when(mKeyguardUpdateMonitor.getSimState(anyInt()))
-                .thenReturn(IccCardConstants.State.READY);
-        ServiceState sOutOfService = mock(ServiceState.class);
-        when(mKeyguardUpdateMonitor.getServiceState(anyInt())).thenReturn(sOutOfService);
-        when(sOutOfService.getState()).thenReturn(ServiceState.STATE_OUT_OF_SERVICE);
-
-        when(mKeyguardUpdateMonitor.isAnySimEmergencyAble()).thenReturn(false);
-
-        ArgumentCaptor<CarrierTextController.CarrierTextCallbackInfo> captor =
-                ArgumentCaptor.forClass(
-                        CarrierTextController.CarrierTextCallbackInfo.class);
-
-        mCarrierTextController.updateCarrierText();
-        mTestableLooper.processAllMessages();
-        verify(mCarrierTextCallback).updateCarrierInfo(captor.capture());
-
-        assertEquals(2, captor.getValue().listOfCarriers.length);
-        assertEquals(TEST_CARRIER, captor.getValue().listOfCarriers[0]);
-        assertEquals(TEST_CARRIER_2, captor.getValue().listOfCarriers[1]);
-    }
-
-    @Test
-    public void testCarrierText_dontReplaceWithEmergencyIfAlreadyEmergency() {
-        reset(mCarrierTextCallback);
-
-        List<SubscriptionInfo> list = new ArrayList<>();
-        list.add(TEST_SUBSCRIPTION);
-        when(mKeyguardUpdateMonitor.getSubscriptionInfo(anyBoolean())).thenReturn(list);
-
-        when(mKeyguardUpdateMonitor.getSimState(anyInt()))
-                .thenReturn(IccCardConstants.State.READY);
-        ServiceState sOutOfService = mock(ServiceState.class);
-        when(mKeyguardUpdateMonitor.getServiceState(anyInt())).thenReturn(sOutOfService);
-        when(sOutOfService.getState()).thenReturn(ServiceState.STATE_OUT_OF_SERVICE);
-        when(sOutOfService.isEmergencyOnly()).thenReturn(true);
-
-        when(mKeyguardUpdateMonitor.isAnySimEmergencyAble()).thenReturn(false);
-
-        ArgumentCaptor<CarrierTextController.CarrierTextCallbackInfo> captor =
-                ArgumentCaptor.forClass(
-                        CarrierTextController.CarrierTextCallbackInfo.class);
-
-        mCarrierTextController.updateCarrierText();
-        mTestableLooper.processAllMessages();
-        verify(mCarrierTextCallback).updateCarrierInfo(captor.capture());
-
-        assertEquals(1, captor.getValue().listOfCarriers.length);
-        assertEquals(TEST_CARRIER, captor.getValue().listOfCarriers[0]);
-    }
-
     public static class TestCarrierTextController extends CarrierTextController {
         private KeyguardUpdateMonitor mKUM;
 
diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java
index 3a3cbad..6208ab8 100644
--- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java
+++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java
@@ -22,7 +22,6 @@
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.reset;
 import static org.mockito.Mockito.spy;
@@ -362,52 +361,6 @@
         assertThat(mKeyguardUpdateMonitor.getUserCanSkipBouncer(user)).isTrue();
     }
 
-    @Test
-    public void testAnySimEmergency_allSimsInService() {
-        ServiceState s0 = mock(ServiceState.class);
-        when(s0.getState()).thenReturn(ServiceState.STATE_IN_SERVICE);
-
-        mKeyguardUpdateMonitor.handleServiceStateChange(0, 0, s0);
-        assertThat(mKeyguardUpdateMonitor.isAnySimEmergencyAble()).isTrue();
-    }
-
-    @Test
-    public void testAnySimEmergency_someSimsInServiceOthersNotECC() {
-        ServiceState s0 = mock(ServiceState.class);
-        when(s0.getState()).thenReturn(ServiceState.STATE_OUT_OF_SERVICE);
-        ServiceState s1 = mock(ServiceState.class);
-        when(s1.getState()).thenReturn(ServiceState.STATE_IN_SERVICE);
-
-        mKeyguardUpdateMonitor.handleServiceStateChange(0, 0, s0);
-        mKeyguardUpdateMonitor.handleServiceStateChange(0, 1, s1);
-        assertThat(mKeyguardUpdateMonitor.isAnySimEmergencyAble()).isTrue();
-    }
-
-    @Test
-    public void testAnySimEmergency_someSimsEmergencyCapable() {
-        ServiceState s0 = mock(ServiceState.class);
-        when(s0.getState()).thenReturn(ServiceState.STATE_POWER_OFF);
-        ServiceState s1 = mock(ServiceState.class);
-        when(s1.getState()).thenReturn(ServiceState.STATE_OUT_OF_SERVICE);
-        when(s1.isEmergencyOnly()).thenReturn(true);
-
-        mKeyguardUpdateMonitor.handleServiceStateChange(0, 0, s0);
-        mKeyguardUpdateMonitor.handleServiceStateChange(0, 1, s1);
-        assertThat(mKeyguardUpdateMonitor.isAnySimEmergencyAble()).isTrue();
-    }
-
-    @Test
-    public void testAnySimEmergency_noEmergencyCapable() {
-        ServiceState s0 = mock(ServiceState.class);
-        when(s0.getState()).thenReturn(ServiceState.STATE_POWER_OFF);
-        ServiceState s1 = mock(ServiceState.class);
-        when(s1.getState()).thenReturn(ServiceState.STATE_OUT_OF_SERVICE);
-
-        mKeyguardUpdateMonitor.handleServiceStateChange(0, 0, s0);
-        mKeyguardUpdateMonitor.handleServiceStateChange(0, 1, s1);
-        assertThat(mKeyguardUpdateMonitor.isAnySimEmergencyAble()).isFalse();
-    }
-
     private Intent putPhoneInfo(Intent intent, Bundle data, Boolean simInited) {
         int subscription = simInited
                 ? 1/* mock subid=1 */ : SubscriptionManager.DUMMY_SUBSCRIPTION_ID_BASE;