From 18b1a84e9ce34b86f5d8cb9d680949b1ec684383 Mon Sep 17 00:00:00 2001 From: Florian Mayer Date: Wed, 5 Feb 2020 11:10:29 +0000 Subject: [PATCH] Revert "[Settings] Avoid rename inactive subscription from NullPointerException" This reverts commit 1b71b5e6015f67b35c780bdb4cca8448f0084d59. Bug: 148924129 Reason for revert: Broke tests Change-Id: I27da954a105bb28f3f8c5f18961073a59c4d820f --- .../RenameMobileNetworkDialogFragment.java | 20 ++------- ...RenameMobileNetworkDialogFragmentTest.java | 45 ++++++++----------- 2 files changed, 22 insertions(+), 43 deletions(-) diff --git a/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragment.java b/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragment.java index fa5deab2bb9..ab8327c7f97 100644 --- a/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragment.java +++ b/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragment.java @@ -48,8 +48,6 @@ import com.android.settings.R; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settingslib.DeviceInfoUtils; -import java.util.List; - /** * A dialog allowing the display name of a mobile network subscription to be changed */ @@ -117,9 +115,9 @@ public class RenameMobileNetworkDialogFragment extends InstrumentedDialogFragmen .setPositiveButton(R.string.mobile_network_sim_name_rename, (dialog, which) -> { mSubscriptionManager.setDisplayName(mNameView.getText().toString(), mSubId, SubscriptionManager.NAME_SOURCE_USER_INPUT); - final Color color = (mColorSpinner == null) ? mColors[0] - : mColors[mColorSpinner.getSelectedItemPosition()]; - mSubscriptionManager.setIconTint(color.getColor(), mSubId); + mSubscriptionManager.setIconTint( + mColors[mColorSpinner.getSelectedItemPosition()].getColor(), + mSubId); }) .setNegativeButton(android.R.string.cancel, null); return builder.create(); @@ -128,17 +126,7 @@ public class RenameMobileNetworkDialogFragment extends InstrumentedDialogFragmen @VisibleForTesting protected void populateView(View view) { mNameView = view.findViewById(R.id.name_edittext); - SubscriptionInfo info = null; - final List infoList = mSubscriptionManager - .getAvailableSubscriptionInfoList(); - if (infoList != null) { - for (SubscriptionInfo subInfo : infoList) { - if (subInfo.getSubscriptionId() == mSubId) { - info = subInfo; - break; - } - } - } + final SubscriptionInfo info = mSubscriptionManager.getActiveSubscriptionInfo(mSubId); if (info == null) { Log.w(TAG, "got null SubscriptionInfo for mSubId:" + mSubId); return; diff --git a/tests/robotests/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragmentTest.java b/tests/robotests/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragmentTest.java index b40698662d7..a69ab53f563 100644 --- a/tests/robotests/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragmentTest.java +++ b/tests/robotests/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragmentTest.java @@ -23,12 +23,12 @@ import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import android.content.Context; import android.content.DialogInterface; import android.graphics.Color; import android.telephony.ServiceState; @@ -48,6 +48,7 @@ import com.android.settings.R; import com.android.settings.testutils.shadow.ShadowAlertDialogCompat; import org.junit.Before; +import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; @@ -55,13 +56,7 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; -import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; -import org.robolectric.shadow.api.Shadow; -import org.robolectric.shadows.ShadowTelephonyManager; - -import java.util.ArrayList; -import java.util.List; @RunWith(RobolectricTestRunner.class) @Config(shadows = ShadowAlertDialogCompat.class) @@ -70,8 +65,6 @@ public class RenameMobileNetworkDialogFragmentTest { @Mock private TelephonyManager mTelephonyMgr; @Mock - private ServiceState mServiceState; - @Mock private SubscriptionManager mSubscriptionMgr; @Mock private SubscriptionInfo mSubscriptionInfo; @@ -79,35 +72,23 @@ public class RenameMobileNetworkDialogFragmentTest { private FragmentActivity mActivity; private RenameMobileNetworkDialogFragment mFragment; private int mSubscriptionId = 1234; - private List mSubscriptionInfoList; @Before public void setUp() { MockitoAnnotations.initMocks(this); - - Context context = spy(RuntimeEnvironment.application); - - final ShadowTelephonyManager stm = Shadow.extract(context.getSystemService( - TelephonyManager.class)); - stm.setTelephonyManagerForSubscriptionId(mSubscriptionId, mTelephonyMgr); - when(mTelephonyMgr.createForSubscriptionId(anyInt())).thenReturn(mTelephonyMgr); - - when(mTelephonyMgr.getServiceState()).thenReturn(mServiceState); - when(mServiceState.getOperatorAlphaLong()).thenReturn("fake carrier name"); + mActivity = spy(Robolectric.buildActivity(FragmentActivity.class).setup().get()); when(mSubscriptionInfo.getSubscriptionId()).thenReturn(mSubscriptionId); when(mSubscriptionInfo.getDisplayName()).thenReturn("test"); - when(mSubscriptionMgr.setDisplayName(any(), anyInt(), anyInt())).thenReturn(0); - - mActivity = spy(Robolectric.buildActivity(FragmentActivity.class).setup().get()); mFragment = spy(RenameMobileNetworkDialogFragment.newInstance(mSubscriptionId)); + doReturn(mTelephonyMgr).when(mFragment).getTelephonyManager(any()); doReturn(mSubscriptionMgr).when(mFragment).getSubscriptionManager(any()); - mSubscriptionInfoList = new ArrayList(); - mSubscriptionInfoList.add(mSubscriptionInfo); - when(mSubscriptionMgr.getAvailableSubscriptionInfoList()).thenReturn( - mSubscriptionInfoList); + final ServiceState serviceState = mock(ServiceState.class); + when(serviceState.getOperatorAlphaLong()).thenReturn("fake carrier name"); + when(mTelephonyMgr.createForSubscriptionId(anyInt())).thenReturn(mTelephonyMgr); + when(mTelephonyMgr.getServiceState()).thenReturn(serviceState); } @Test @@ -119,7 +100,10 @@ public class RenameMobileNetworkDialogFragmentTest { } @Test + @Ignore public void dialog_cancelButtonClicked_setDisplayNameAndIconTintNotCalled() { + when(mSubscriptionMgr.getActiveSubscriptionInfo(mSubscriptionId)).thenReturn( + mSubscriptionInfo); final AlertDialog dialog = startDialog(); final EditText nameView = mFragment.getNameView(); nameView.setText("test2"); @@ -132,7 +116,11 @@ public class RenameMobileNetworkDialogFragmentTest { } @Test + @Ignore public void dialog_saveButtonClicked_setDisplayNameAndIconTint() { + when(mSubscriptionMgr.getActiveSubscriptionInfo(mSubscriptionId)).thenReturn( + mSubscriptionInfo); + final AlertDialog dialog = startDialog(); final EditText nameView = mFragment.getNameView(); nameView.setText("test2"); @@ -152,9 +140,12 @@ public class RenameMobileNetworkDialogFragmentTest { } @Test + @Ignore public void populateView_infoIsOpportunistic_hideNumberLabel() { final View view = LayoutInflater.from(mActivity).inflate( R.layout.dialog_mobile_network_rename, null); + when(mSubscriptionMgr.getActiveSubscriptionInfo(mSubscriptionId)).thenReturn( + mSubscriptionInfo); when(mSubscriptionInfo.isOpportunistic()).thenReturn(true); startDialog();