[Network Connection] Implement Unavailable callback when the user cancels

UI should invoke NetworkRequestUserSelectionCallback.reject() callback when the user clicks cancel.

Bug: 128876386
Test: atest NetworkRequestDialogFragment
Change-Id: Ia5faedf8cc7113a602a4cda10b3252d02c3c8876
This commit is contained in:
cosmohsieh
2019-03-20 13:43:20 +08:00
parent 64df6a3073
commit 5944fa9427
2 changed files with 21 additions and 1 deletions

View File

@@ -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

View File

@@ -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();
}
}