Merge "[DPP R2] Added support for DPP R2 events"

This commit is contained in:
Hai Shalom
2019-12-20 19:25:16 +00:00
committed by Android (Google) Code Review
3 changed files with 61 additions and 5 deletions

View File

@@ -2056,6 +2056,12 @@
<string name="wifi_dpp_failure_generic">Make sure the device has been plugged in, charged, and turned on. If the issue continues, contact the device manufacturer</string>
<!-- Hint for Wi-Fi DPP handshake failure [CHAR LIMIT=NONE] -->
<string name="wifi_dpp_failure_not_supported">Adding \u201c<xliff:g id="ssid" example="OfficeWifi">%1$s</xliff:g>\u201d isn\u2019t supported by this device</string>
<!-- Hint for Wi-Fi DPP handshake failure [CHAR LIMIT=NONE] -->
<string name="wifi_dpp_failure_cannot_find_network">Try moving the device closer to your Wi\u2011Fi access point/router</string>
<!-- Hint for Wi-Fi DPP handshake failure [CHAR LIMIT=NONE] -->
<string name="wifi_dpp_failure_enrollee_authentication">Check the password and try again</string>
<!-- Hint for Wi-Fi DPP handshake failure [CHAR LIMIT=NONE] -->
<string name="wifi_dpp_failure_enrollee_rejected_configuration">Contact the device manufacturer</string>
<!-- Hint for Wi-Fi connection fail [CHAR LIMIT=NONE] -->
<string name="wifi_dpp_check_connection_try_again">Check connection and try again</string>
<!-- Title for the fragment choose network [CHAR LIMIT=50] -->

View File

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

View File

@@ -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<Integer> mEnrolleeSuccessNetworkId;
private MutableLiveData<Integer> mStatusCode;
private boolean mIsWifiDppHandshaking;
private String mTriedSsid;
private SparseArray<int[]> 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<int[]> 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<int[]> channelListArray,
int[] operatingClassArray) {
mIsWifiDppHandshaking = false;
mTriedSsid = ssid;
mTriedChannels = channelListArray;
mBandArray = operatingClassArray;
mStatusCode.setValue(code);
}