From 81f9391105d29bd12b71cbc7d23a0ec7b780531b Mon Sep 17 00:00:00 2001 From: Roshan Pius Date: Fri, 12 Jun 2020 09:31:39 -0700 Subject: [PATCH] NetworkRequestDialog: Exit the dialog on connect failure Connection failure (similar to connection success) is the end of the processng of a request. We should dismiss the dialog on connection failure. Bug: 158844146 Test: Manual tests - Simulate connection failure and ensure that the dialog vanishes with a toast. Change-Id: I625ca76298ed549dbed76d398aea0c957c9102fc --- res/values/strings.xml | 2 ++ .../settings/wifi/NetworkRequestDialogActivity.java | 11 +++++------ .../wifi/NetworkRequestDialogBaseFragment.java | 4 ---- .../settings/wifi/NetworkRequestDialogFragment.java | 5 ----- .../wifi/NetworkRequestDialogActivityTest.java | 9 +++++++++ 5 files changed, 16 insertions(+), 15 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 6f2940e9639..fca49dc5104 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -11836,6 +11836,8 @@ Something came up. The application has cancelled the request to choose a device. Connection successful + + Connection failed Show all diff --git a/src/com/android/settings/wifi/NetworkRequestDialogActivity.java b/src/com/android/settings/wifi/NetworkRequestDialogActivity.java index fb1b87be08d..af82645adb4 100644 --- a/src/com/android/settings/wifi/NetworkRequestDialogActivity.java +++ b/src/com/android/settings/wifi/NetworkRequestDialogActivity.java @@ -217,13 +217,12 @@ public class NetworkRequestDialogActivity extends FragmentActivity implements @Override public void onUserSelectionConnectFailure(WifiConfiguration wificonfiguration) { - if (mIsSpecifiedSsid) { - showSingleSsidRequestDialog( - WifiInfo.sanitizeSsid(mMatchedConfig.SSID), true /* isTryAgain */); - return; + if (!isFinishing()) { + Toast.makeText(this, R.string.network_connection_connect_failure, Toast.LENGTH_SHORT) + .show(); + setResult(RESULT_OK); + finish(); } - - mDialogFragment.onUserSelectionConnectFailure(wificonfiguration); } // Called when user click "Connect" button. Called by diff --git a/src/com/android/settings/wifi/NetworkRequestDialogBaseFragment.java b/src/com/android/settings/wifi/NetworkRequestDialogBaseFragment.java index c17bacdc9f7..f2e24ae0821 100644 --- a/src/com/android/settings/wifi/NetworkRequestDialogBaseFragment.java +++ b/src/com/android/settings/wifi/NetworkRequestDialogBaseFragment.java @@ -21,7 +21,6 @@ import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.net.wifi.ScanResult; -import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiManager.NetworkRequestUserSelectionCallback; import androidx.annotation.NonNull; @@ -91,7 +90,4 @@ abstract public class NetworkRequestDialogBaseFragment extends InstrumentedDialo protected void onMatch(List scanResults) { } - - protected void onUserSelectionConnectFailure(WifiConfiguration wificonfiguration) { - } } diff --git a/src/com/android/settings/wifi/NetworkRequestDialogFragment.java b/src/com/android/settings/wifi/NetworkRequestDialogFragment.java index edaa4d913dc..f179df0470e 100644 --- a/src/com/android/settings/wifi/NetworkRequestDialogFragment.java +++ b/src/com/android/settings/wifi/NetworkRequestDialogFragment.java @@ -324,11 +324,6 @@ public class NetworkRequestDialogFragment extends NetworkRequestDialogBaseFragme } } - @Override - public void onUserSelectionConnectFailure(WifiConfiguration wificonfiguration) { - // Do nothing when selection is failed, let user could try again easily. - } - @VisibleForTesting final class FilterWifiTracker { private final List mAccessPointKeys; diff --git a/tests/robotests/src/com/android/settings/wifi/NetworkRequestDialogActivityTest.java b/tests/robotests/src/com/android/settings/wifi/NetworkRequestDialogActivityTest.java index 9f6e7a3ed1e..094e2826459 100644 --- a/tests/robotests/src/com/android/settings/wifi/NetworkRequestDialogActivityTest.java +++ b/tests/robotests/src/com/android/settings/wifi/NetworkRequestDialogActivityTest.java @@ -230,4 +230,13 @@ public class NetworkRequestDialogActivityTest { assertThat(mActivity.mProgressDialog).isNull(); assertThat(mActivity.mDialogFragment).isNull(); } + + @Test + public void updateAccessPointList_onUserSelectionConnectFailure_shouldFinishActivity() { + final WifiConfiguration config = new WifiConfiguration(); + config.SSID = "Test AP 3"; + mActivity.onUserSelectionConnectFailure(config); + + verify(mActivity).finish(); + } }