Loading src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragment.java +20 −8 Original line number Original line Diff line number Diff line Loading @@ -39,15 +39,17 @@ import android.widget.ImageView; import android.widget.Spinner; import android.widget.Spinner; import android.widget.TextView; import android.widget.TextView; import com.android.settings.R; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settingslib.DeviceInfoUtils; import androidx.annotation.NonNull; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.annotation.VisibleForTesting; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog; 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 * A dialog allowing the display name of a mobile network subscription to be changed */ */ Loading Loading @@ -115,9 +117,9 @@ public class RenameMobileNetworkDialogFragment extends InstrumentedDialogFragmen .setPositiveButton(R.string.mobile_network_sim_name_rename, (dialog, which) -> { .setPositiveButton(R.string.mobile_network_sim_name_rename, (dialog, which) -> { mSubscriptionManager.setDisplayName(mNameView.getText().toString(), mSubId, mSubscriptionManager.setDisplayName(mNameView.getText().toString(), mSubId, SubscriptionManager.NAME_SOURCE_USER_INPUT); SubscriptionManager.NAME_SOURCE_USER_INPUT); mSubscriptionManager.setIconTint( final Color color = (mColorSpinner == null) ? mColors[0] mColors[mColorSpinner.getSelectedItemPosition()].getColor(), : mColors[mColorSpinner.getSelectedItemPosition()]; mSubId); mSubscriptionManager.setIconTint(color.getColor(), mSubId); }) }) .setNegativeButton(android.R.string.cancel, null); .setNegativeButton(android.R.string.cancel, null); return builder.create(); return builder.create(); Loading @@ -126,7 +128,17 @@ public class RenameMobileNetworkDialogFragment extends InstrumentedDialogFragmen @VisibleForTesting @VisibleForTesting protected void populateView(View view) { protected void populateView(View view) { mNameView = view.findViewById(R.id.name_edittext); mNameView = view.findViewById(R.id.name_edittext); final SubscriptionInfo info = mSubscriptionManager.getActiveSubscriptionInfo(mSubId); SubscriptionInfo info = null; final List<SubscriptionInfo> infoList = mSubscriptionManager .getAvailableSubscriptionInfoList(); if (infoList != null) { for (SubscriptionInfo subInfo : infoList) { if (subInfo.getSubscriptionId() == mSubId) { info = subInfo; break; } } } if (info == null) { if (info == null) { Log.w(TAG, "got null SubscriptionInfo for mSubId:" + mSubId); Log.w(TAG, "got null SubscriptionInfo for mSubId:" + mSubId); return; return; Loading tests/robotests/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragmentTest.java +27 −14 Original line number Original line Diff line number Diff line Loading @@ -23,12 +23,12 @@ import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static org.mockito.Mockito.when; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface; import android.graphics.Color; import android.graphics.Color; import android.telephony.ServiceState; import android.telephony.ServiceState; Loading @@ -55,7 +55,13 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations; import org.robolectric.Robolectric; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; 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) @RunWith(RobolectricTestRunner.class) @Config(shadows = ShadowAlertDialogCompat.class) @Config(shadows = ShadowAlertDialogCompat.class) Loading @@ -64,6 +70,8 @@ public class RenameMobileNetworkDialogFragmentTest { @Mock @Mock private TelephonyManager mTelephonyMgr; private TelephonyManager mTelephonyMgr; @Mock @Mock private ServiceState mServiceState; @Mock private SubscriptionManager mSubscriptionMgr; private SubscriptionManager mSubscriptionMgr; @Mock @Mock private SubscriptionInfo mSubscriptionInfo; private SubscriptionInfo mSubscriptionInfo; Loading @@ -71,23 +79,35 @@ public class RenameMobileNetworkDialogFragmentTest { private FragmentActivity mActivity; private FragmentActivity mActivity; private RenameMobileNetworkDialogFragment mFragment; private RenameMobileNetworkDialogFragment mFragment; private int mSubscriptionId = 1234; private int mSubscriptionId = 1234; private List<SubscriptionInfo> mSubscriptionInfoList; @Before @Before public void setUp() { public void setUp() { MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this); mActivity = spy(Robolectric.buildActivity(FragmentActivity.class).setup().get()); 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"); when(mSubscriptionInfo.getSubscriptionId()).thenReturn(mSubscriptionId); when(mSubscriptionInfo.getSubscriptionId()).thenReturn(mSubscriptionId); when(mSubscriptionInfo.getDisplayName()).thenReturn("test"); 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)); mFragment = spy(RenameMobileNetworkDialogFragment.newInstance(mSubscriptionId)); doReturn(mTelephonyMgr).when(mFragment).getTelephonyManager(any()); doReturn(mSubscriptionMgr).when(mFragment).getSubscriptionManager(any()); doReturn(mSubscriptionMgr).when(mFragment).getSubscriptionManager(any()); final ServiceState serviceState = mock(ServiceState.class); mSubscriptionInfoList = new ArrayList<SubscriptionInfo>(); when(serviceState.getOperatorAlphaLong()).thenReturn("fake carrier name"); mSubscriptionInfoList.add(mSubscriptionInfo); when(mTelephonyMgr.createForSubscriptionId(anyInt())).thenReturn(mTelephonyMgr); when(mSubscriptionMgr.getAvailableSubscriptionInfoList()).thenReturn( when(mTelephonyMgr.getServiceState()).thenReturn(serviceState); mSubscriptionInfoList); } } @Test @Test Loading @@ -100,8 +120,6 @@ public class RenameMobileNetworkDialogFragmentTest { @Test @Test public void dialog_cancelButtonClicked_setDisplayNameAndIconTintNotCalled() { public void dialog_cancelButtonClicked_setDisplayNameAndIconTintNotCalled() { when(mSubscriptionMgr.getActiveSubscriptionInfo(mSubscriptionId)).thenReturn( mSubscriptionInfo); final AlertDialog dialog = startDialog(); final AlertDialog dialog = startDialog(); final EditText nameView = mFragment.getNameView(); final EditText nameView = mFragment.getNameView(); nameView.setText("test2"); nameView.setText("test2"); Loading @@ -115,9 +133,6 @@ public class RenameMobileNetworkDialogFragmentTest { @Test @Test public void dialog_saveButtonClicked_setDisplayNameAndIconTint() { public void dialog_saveButtonClicked_setDisplayNameAndIconTint() { when(mSubscriptionMgr.getActiveSubscriptionInfo(mSubscriptionId)).thenReturn( mSubscriptionInfo); final AlertDialog dialog = startDialog(); final AlertDialog dialog = startDialog(); final EditText nameView = mFragment.getNameView(); final EditText nameView = mFragment.getNameView(); nameView.setText("test2"); nameView.setText("test2"); Loading @@ -140,8 +155,6 @@ public class RenameMobileNetworkDialogFragmentTest { public void populateView_infoIsOpportunistic_hideNumberLabel() { public void populateView_infoIsOpportunistic_hideNumberLabel() { final View view = LayoutInflater.from(mActivity).inflate( final View view = LayoutInflater.from(mActivity).inflate( R.layout.dialog_mobile_network_rename, null); R.layout.dialog_mobile_network_rename, null); when(mSubscriptionMgr.getActiveSubscriptionInfo(mSubscriptionId)).thenReturn( mSubscriptionInfo); when(mSubscriptionInfo.isOpportunistic()).thenReturn(true); when(mSubscriptionInfo.isOpportunistic()).thenReturn(true); startDialog(); startDialog(); Loading Loading
src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragment.java +20 −8 Original line number Original line Diff line number Diff line Loading @@ -39,15 +39,17 @@ import android.widget.ImageView; import android.widget.Spinner; import android.widget.Spinner; import android.widget.TextView; import android.widget.TextView; import com.android.settings.R; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settingslib.DeviceInfoUtils; import androidx.annotation.NonNull; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.annotation.VisibleForTesting; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog; 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 * A dialog allowing the display name of a mobile network subscription to be changed */ */ Loading Loading @@ -115,9 +117,9 @@ public class RenameMobileNetworkDialogFragment extends InstrumentedDialogFragmen .setPositiveButton(R.string.mobile_network_sim_name_rename, (dialog, which) -> { .setPositiveButton(R.string.mobile_network_sim_name_rename, (dialog, which) -> { mSubscriptionManager.setDisplayName(mNameView.getText().toString(), mSubId, mSubscriptionManager.setDisplayName(mNameView.getText().toString(), mSubId, SubscriptionManager.NAME_SOURCE_USER_INPUT); SubscriptionManager.NAME_SOURCE_USER_INPUT); mSubscriptionManager.setIconTint( final Color color = (mColorSpinner == null) ? mColors[0] mColors[mColorSpinner.getSelectedItemPosition()].getColor(), : mColors[mColorSpinner.getSelectedItemPosition()]; mSubId); mSubscriptionManager.setIconTint(color.getColor(), mSubId); }) }) .setNegativeButton(android.R.string.cancel, null); .setNegativeButton(android.R.string.cancel, null); return builder.create(); return builder.create(); Loading @@ -126,7 +128,17 @@ public class RenameMobileNetworkDialogFragment extends InstrumentedDialogFragmen @VisibleForTesting @VisibleForTesting protected void populateView(View view) { protected void populateView(View view) { mNameView = view.findViewById(R.id.name_edittext); mNameView = view.findViewById(R.id.name_edittext); final SubscriptionInfo info = mSubscriptionManager.getActiveSubscriptionInfo(mSubId); SubscriptionInfo info = null; final List<SubscriptionInfo> infoList = mSubscriptionManager .getAvailableSubscriptionInfoList(); if (infoList != null) { for (SubscriptionInfo subInfo : infoList) { if (subInfo.getSubscriptionId() == mSubId) { info = subInfo; break; } } } if (info == null) { if (info == null) { Log.w(TAG, "got null SubscriptionInfo for mSubId:" + mSubId); Log.w(TAG, "got null SubscriptionInfo for mSubId:" + mSubId); return; return; Loading
tests/robotests/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragmentTest.java +27 −14 Original line number Original line Diff line number Diff line Loading @@ -23,12 +23,12 @@ import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static org.mockito.Mockito.when; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface; import android.graphics.Color; import android.graphics.Color; import android.telephony.ServiceState; import android.telephony.ServiceState; Loading @@ -55,7 +55,13 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations; import org.robolectric.Robolectric; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; 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) @RunWith(RobolectricTestRunner.class) @Config(shadows = ShadowAlertDialogCompat.class) @Config(shadows = ShadowAlertDialogCompat.class) Loading @@ -64,6 +70,8 @@ public class RenameMobileNetworkDialogFragmentTest { @Mock @Mock private TelephonyManager mTelephonyMgr; private TelephonyManager mTelephonyMgr; @Mock @Mock private ServiceState mServiceState; @Mock private SubscriptionManager mSubscriptionMgr; private SubscriptionManager mSubscriptionMgr; @Mock @Mock private SubscriptionInfo mSubscriptionInfo; private SubscriptionInfo mSubscriptionInfo; Loading @@ -71,23 +79,35 @@ public class RenameMobileNetworkDialogFragmentTest { private FragmentActivity mActivity; private FragmentActivity mActivity; private RenameMobileNetworkDialogFragment mFragment; private RenameMobileNetworkDialogFragment mFragment; private int mSubscriptionId = 1234; private int mSubscriptionId = 1234; private List<SubscriptionInfo> mSubscriptionInfoList; @Before @Before public void setUp() { public void setUp() { MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this); mActivity = spy(Robolectric.buildActivity(FragmentActivity.class).setup().get()); 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"); when(mSubscriptionInfo.getSubscriptionId()).thenReturn(mSubscriptionId); when(mSubscriptionInfo.getSubscriptionId()).thenReturn(mSubscriptionId); when(mSubscriptionInfo.getDisplayName()).thenReturn("test"); 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)); mFragment = spy(RenameMobileNetworkDialogFragment.newInstance(mSubscriptionId)); doReturn(mTelephonyMgr).when(mFragment).getTelephonyManager(any()); doReturn(mSubscriptionMgr).when(mFragment).getSubscriptionManager(any()); doReturn(mSubscriptionMgr).when(mFragment).getSubscriptionManager(any()); final ServiceState serviceState = mock(ServiceState.class); mSubscriptionInfoList = new ArrayList<SubscriptionInfo>(); when(serviceState.getOperatorAlphaLong()).thenReturn("fake carrier name"); mSubscriptionInfoList.add(mSubscriptionInfo); when(mTelephonyMgr.createForSubscriptionId(anyInt())).thenReturn(mTelephonyMgr); when(mSubscriptionMgr.getAvailableSubscriptionInfoList()).thenReturn( when(mTelephonyMgr.getServiceState()).thenReturn(serviceState); mSubscriptionInfoList); } } @Test @Test Loading @@ -100,8 +120,6 @@ public class RenameMobileNetworkDialogFragmentTest { @Test @Test public void dialog_cancelButtonClicked_setDisplayNameAndIconTintNotCalled() { public void dialog_cancelButtonClicked_setDisplayNameAndIconTintNotCalled() { when(mSubscriptionMgr.getActiveSubscriptionInfo(mSubscriptionId)).thenReturn( mSubscriptionInfo); final AlertDialog dialog = startDialog(); final AlertDialog dialog = startDialog(); final EditText nameView = mFragment.getNameView(); final EditText nameView = mFragment.getNameView(); nameView.setText("test2"); nameView.setText("test2"); Loading @@ -115,9 +133,6 @@ public class RenameMobileNetworkDialogFragmentTest { @Test @Test public void dialog_saveButtonClicked_setDisplayNameAndIconTint() { public void dialog_saveButtonClicked_setDisplayNameAndIconTint() { when(mSubscriptionMgr.getActiveSubscriptionInfo(mSubscriptionId)).thenReturn( mSubscriptionInfo); final AlertDialog dialog = startDialog(); final AlertDialog dialog = startDialog(); final EditText nameView = mFragment.getNameView(); final EditText nameView = mFragment.getNameView(); nameView.setText("test2"); nameView.setText("test2"); Loading @@ -140,8 +155,6 @@ public class RenameMobileNetworkDialogFragmentTest { public void populateView_infoIsOpportunistic_hideNumberLabel() { public void populateView_infoIsOpportunistic_hideNumberLabel() { final View view = LayoutInflater.from(mActivity).inflate( final View view = LayoutInflater.from(mActivity).inflate( R.layout.dialog_mobile_network_rename, null); R.layout.dialog_mobile_network_rename, null); when(mSubscriptionMgr.getActiveSubscriptionInfo(mSubscriptionId)).thenReturn( mSubscriptionInfo); when(mSubscriptionInfo.isOpportunistic()).thenReturn(true); when(mSubscriptionInfo.isOpportunistic()).thenReturn(true); startDialog(); startDialog(); Loading