diff --git a/src/com/android/settings/network/ApnEditor.java b/src/com/android/settings/network/ApnEditor.java index 61f12438262..d0ecb71f681 100644 --- a/src/com/android/settings/network/ApnEditor.java +++ b/src/com/android/settings/network/ApnEditor.java @@ -1195,12 +1195,19 @@ public class ApnEditor extends SettingsPreferenceFragment } } - private ApnData getApnDataFromUri(Uri uri) { - ApnData apnData; - try (Cursor cursor = getActivity().managedQuery( - uri, sProjection, null /* selection */, null /* sortOrder */)) { - cursor.moveToFirst(); - apnData = new ApnData(uri, cursor); + @VisibleForTesting + ApnData getApnDataFromUri(Uri uri) { + ApnData apnData = null; + try (Cursor cursor = getContentResolver().query( + uri, + sProjection, + null /* selection */, + null /* selectionArgs */, + null /* sortOrder */)) { + if (cursor != null) { + cursor.moveToFirst(); + apnData = new ApnData(uri, cursor); + } } if (apnData == null) { diff --git a/tests/robotests/src/com/android/settings/network/ApnEditorTest.java b/tests/robotests/src/com/android/settings/network/ApnEditorTest.java index f3315e5153a..1b34fd3f98b 100644 --- a/tests/robotests/src/com/android/settings/network/ApnEditorTest.java +++ b/tests/robotests/src/com/android/settings/network/ApnEditorTest.java @@ -21,6 +21,7 @@ import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; @@ -115,6 +116,24 @@ public class ApnEditorTest { mApnEditorUT.sNotSet = "Not Set"; } + @Test + public void testApnEditor_doesNotUseManagedQuery() { + mApnEditorUT.getApnDataFromUri(Mockito.mock(Uri.class)); + + verify(mActivity, never()).managedQuery( + any(Uri.class), + any(String[].class), + any(String.class), + any(String.class)); + + verify(mActivity, never()).managedQuery( + any(Uri.class), + any(String[].class), + any(String.class), + any(String[].class), + any(String.class)); + } + @Test public void testSetStringValue_valueChanged_shouldSetValue() { // GIVEN an APN value which is different than the APN value in database