diff --git a/res/values/strings.xml b/res/values/strings.xml index 621d364b275..c911e6f5b74 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -2056,6 +2056,12 @@ Make sure the device has been plugged in, charged, and turned on. If the issue continues, contact the device manufacturer Adding \u201c%1$s\u201d isn\u2019t supported by this device + + Try moving the device closer to your Wi\u2011Fi access point/router + + Check the password and try again + + Contact the device manufacturer Check connection and try again diff --git a/src/com/android/settings/wifi/dpp/WifiDppAddDeviceFragment.java b/src/com/android/settings/wifi/dpp/WifiDppAddDeviceFragment.java index f7e89362c25..caba227777a 100644 --- a/src/com/android/settings/wifi/dpp/WifiDppAddDeviceFragment.java +++ b/src/com/android/settings/wifi/dpp/WifiDppAddDeviceFragment.java @@ -24,6 +24,7 @@ import android.net.wifi.WifiManager; import android.os.Bundle; import android.text.TextUtils; import android.util.Log; +import android.util.SparseArray; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -61,8 +62,22 @@ public class WifiDppAddDeviceFragment extends WifiDppQrCodeBaseFragment { } @Override - public void onFailure(int code) { - Log.d(TAG, "EasyConnectConfiguratorStatusCallback.onFailure " + code); + public void onFailure(int code, String ssid, SparseArray channelListArray, + int[] operatingClassArray) { + Log.d(TAG, "EasyConnectConfiguratorStatusCallback.onFailure: " + code); + if (!TextUtils.isEmpty(ssid)) { + Log.d(TAG, "Tried SSID: " + ssid); + } + if (channelListArray.size() != 0) { + Log.d(TAG, "Tried channels: " + channelListArray); + } + if (operatingClassArray != null && operatingClassArray.length > 0) { + StringBuilder sb = new StringBuilder("Supported bands: "); + for (int i = 0; i < operatingClassArray.length; i++) { + sb.append(operatingClassArray[i] + " "); + } + Log.d(TAG, sb.toString()); + } showErrorUi(code, /* isConfigurationChange */ false); } @@ -150,6 +165,20 @@ public class WifiDppAddDeviceFragment extends WifiDppQrCodeBaseFragment { throw(new IllegalStateException("Wi-Fi DPP configurator used a non-PSK/non-SAE" + "network to handshake")); + case EasyConnectStatusCallback.EASY_CONNECT_EVENT_FAILURE_CANNOT_FIND_NETWORK: + summaryCharSequence = getText(R.string.wifi_dpp_failure_cannot_find_network); + break; + + case EasyConnectStatusCallback.EASY_CONNECT_EVENT_FAILURE_ENROLLEE_AUTHENTICATION: + summaryCharSequence = getText(R.string.wifi_dpp_failure_enrollee_authentication); + break; + + case EasyConnectStatusCallback + .EASY_CONNECT_EVENT_FAILURE_ENROLLEE_REJECTED_CONFIGURATION: + summaryCharSequence = + getText(R.string.wifi_dpp_failure_enrollee_rejected_configuration); + break; + default: throw(new IllegalStateException("Unexpected Wi-Fi DPP error")); } @@ -218,7 +247,8 @@ public class WifiDppAddDeviceFragment extends WifiDppQrCodeBaseFragment { if (code == WifiDppUtils.EASY_CONNECT_EVENT_SUCCESS) { new EasyConnectConfiguratorStatusCallback().onConfiguratorSuccess(code); } else { - new EasyConnectConfiguratorStatusCallback().onFailure(code); + new EasyConnectConfiguratorStatusCallback().onFailure(code, model.getTriedSsid(), + model.getTriedChannels(), model.getBandArray()); } }); } diff --git a/src/com/android/settings/wifi/dpp/WifiDppInitiatorViewModel.java b/src/com/android/settings/wifi/dpp/WifiDppInitiatorViewModel.java index f48ec7c3fe3..05febc510f0 100644 --- a/src/com/android/settings/wifi/dpp/WifiDppInitiatorViewModel.java +++ b/src/com/android/settings/wifi/dpp/WifiDppInitiatorViewModel.java @@ -19,14 +19,18 @@ package com.android.settings.wifi.dpp; import android.app.Application; import android.net.wifi.EasyConnectStatusCallback; import android.net.wifi.WifiManager; +import android.util.SparseArray; -import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.AndroidViewModel; +import androidx.lifecycle.MutableLiveData; public class WifiDppInitiatorViewModel extends AndroidViewModel { private MutableLiveData mEnrolleeSuccessNetworkId; private MutableLiveData mStatusCode; private boolean mIsWifiDppHandshaking; + private String mTriedSsid; + private SparseArray mTriedChannels; + private int[] mBandArray; public WifiDppInitiatorViewModel(Application application) { super(application); @@ -48,6 +52,18 @@ public class WifiDppInitiatorViewModel extends AndroidViewModel { return mStatusCode; } + String getTriedSsid() { + return mTriedSsid; + } + + SparseArray getTriedChannels() { + return mTriedChannels; + } + + int[] getBandArray() { + return mBandArray; + } + boolean isWifiDppHandshaking() { return mIsWifiDppHandshaking; } @@ -83,8 +99,12 @@ public class WifiDppInitiatorViewModel extends AndroidViewModel { } @Override - public void onFailure(int code) { + public void onFailure(int code, String ssid, SparseArray channelListArray, + int[] operatingClassArray) { mIsWifiDppHandshaking = false; + mTriedSsid = ssid; + mTriedChannels = channelListArray; + mBandArray = operatingClassArray; mStatusCode.setValue(code); }