summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQuang Anh Luong <qal@google.com>2023-11-16 17:51:32 +0900
committerQuang Anh Luong <qal@google.com>2023-11-16 17:51:32 +0900
commit6efc2eaeb51cf2d760656c8b9d6f37451cd8eda7 (patch)
tree499b6492f445fb9943a5c6f3c88da8c6cf04d82c
parentcc5dcf59073c57fedb4fcb3e7d9f4a531c751cdd (diff)
downloadwifi-6efc2eaeb51cf2d760656c8b9d6f37451cd8eda7.tar.gz
Add WifiEntry.needsWifiConfiguration()
Add WifiEntry.needsWifiConfiguration() to indicate if a network needs to have a WifiConfiguration saved before connecting. This is to provide a synchronous way to query if we need a config instead of waiting for CONNECT_STATUS_FAILURE_NO_CONFIG, in case the caller (e.g. Android TV) wants to show a progress spinner upon a user press. Bug: 305092860 Bug: 153627947 Test: atest StandardWifiEntryTest Change-Id: I9065fe75c1b21a5b0e2b9045e0d0635f551d8c81
-rw-r--r--libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardWifiEntry.java8
-rw-r--r--libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java8
-rw-r--r--libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/StandardWifiEntryTest.java8
3 files changed, 22 insertions, 2 deletions
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardWifiEntry.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardWifiEntry.java
index 6b28a41a3..4d46354c7 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardWifiEntry.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardWifiEntry.java
@@ -287,6 +287,14 @@ public class StandardWifiEntry extends WifiEntry {
}
@Override
+ public boolean needsWifiConfiguration() {
+ List<Integer> securityTypes = getSecurityTypes();
+ return !isSaved() && !isSuggestion()
+ && !securityTypes.contains(SECURITY_TYPE_OPEN)
+ && !securityTypes.contains(SECURITY_TYPE_OWE);
+ }
+
+ @Override
@Nullable
public synchronized WifiConfiguration getWifiConfiguration() {
if (!isSaved()) {
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java
index 8c78e81f7..84d8ac1ab 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java
@@ -486,6 +486,14 @@ public class WifiEntry {
}
/**
+ * Returns whether this entry needs to be configured with a new WifiConfiguration before
+ * connection.
+ */
+ public boolean needsWifiConfiguration() {
+ return false;
+ }
+
+ /**
* Returns the WifiConfiguration of an entry or null if unavailable. This should be used when
* information on the WifiConfiguration needs to be modified and saved via
* {@link WifiManager#save(WifiConfiguration, WifiManager.ActionListener)}.
diff --git a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/StandardWifiEntryTest.java b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/StandardWifiEntryTest.java
index ebb24d987..6cfde1907 100644
--- a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/StandardWifiEntryTest.java
+++ b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/StandardWifiEntryTest.java
@@ -345,7 +345,7 @@ public class StandardWifiEntryTest {
ssidAndSecurityTypeToStandardWifiEntryKey("ssid", SECURITY_TYPE_EAP),
null, Arrays.asList(scan), mMockWifiManager,
false /* forSavedNetworksPage */);
-
+ assertThat(entry.needsWifiConfiguration()).isTrue();
assertThat(entry.isSaved()).isFalse();
final WifiConfiguration config = new WifiConfiguration();
@@ -354,6 +354,7 @@ public class StandardWifiEntryTest {
config.networkId = 1;
entry.updateConfig(Collections.singletonList(config));
+ assertThat(entry.needsWifiConfiguration()).isFalse();
assertThat(entry.isSaved()).isTrue();
}
@@ -368,11 +369,12 @@ public class StandardWifiEntryTest {
ssidAndSecurityTypeToStandardWifiEntryKey("ssid", SECURITY_TYPE_EAP),
Collections.singletonList(config), null, mMockWifiManager,
false /* forSavedNetworksPage */);
-
+ assertThat(entry.needsWifiConfiguration()).isFalse();
assertThat(entry.isSaved()).isTrue();
entry.updateConfig(null);
+ assertThat(entry.needsWifiConfiguration()).isTrue();
assertThat(entry.isSaved()).isFalse();
}
@@ -533,6 +535,8 @@ public class StandardWifiEntryTest {
ssidAndSecurityTypeToStandardWifiEntryKey("ssid", SECURITY_TYPE_OPEN),
null, Arrays.asList(buildScanResult("ssid", "bssid0", 0, TestUtils.GOOD_RSSI)),
mMockWifiManager, false /* forSavedNetworksPage */);
+ assertThat(entry.needsWifiConfiguration()).isFalse();
+ assertThat(entry.isSaved()).isFalse();
entry.connect(null /* ConnectCallback */);