diff --git a/src/com/android/settings/wifi/NetworkRequestDialogFragment.java b/src/com/android/settings/wifi/NetworkRequestDialogFragment.java index 09360e427d8..28c6cb71082 100644 --- a/src/com/android/settings/wifi/NetworkRequestDialogFragment.java +++ b/src/com/android/settings/wifi/NetworkRequestDialogFragment.java @@ -124,7 +124,7 @@ public class NetworkRequestDialogFragment extends InstrumentedDialogFragment imp final AlertDialog.Builder builder = new AlertDialog.Builder(context) .setCustomTitle(customTitle) .setAdapter(mDialogAdapter, this) - .setNegativeButton(R.string.cancel, (dialog, which) -> getActivity().finish()) + .setNegativeButton(R.string.cancel, (dialog, which) -> onCancel(dialog)) // Do nothings, will replace the onClickListener to avoid auto closing dialog. .setNeutralButton(R.string.network_connection_request_dialog_showall, null /* OnClickListener */); @@ -221,6 +221,9 @@ public class NetworkRequestDialogFragment extends InstrumentedDialogFragment imp if (getActivity() != null) { getActivity().finish(); } + if (mUserSelectionCallback != null) { + mUserSelectionCallback.reject(); + } } @Override diff --git a/tests/robotests/src/com/android/settings/wifi/NetworkRequestDialogFragmentTest.java b/tests/robotests/src/com/android/settings/wifi/NetworkRequestDialogFragmentTest.java index d2403b942a1..4202143db00 100644 --- a/tests/robotests/src/com/android/settings/wifi/NetworkRequestDialogFragmentTest.java +++ b/tests/robotests/src/com/android/settings/wifi/NetworkRequestDialogFragmentTest.java @@ -330,4 +330,21 @@ public class NetworkRequestDialogFragmentTest { // Check assertThat(button.getVisibility()).isEqualTo(View.GONE); } + + @Test + public void cancelDialog_callsReject() { + // Assert + networkRequestDialogFragment.show(mActivity.getSupportFragmentManager(), /* tag */ null); + final AlertDialog alertDialog = ShadowAlertDialogCompat.getLatestAlertDialog(); + final NetworkRequestUserSelectionCallback selectionCallback = mock( + NetworkRequestUserSelectionCallback.class); + networkRequestDialogFragment.onUserSelectionCallbackRegistration(selectionCallback); + + // Action + final Button button = alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE); + button.performClick(); + + // Check + verify(selectionCallback, times(1)).reject(); + } }