summaryrefslogtreecommitdiffstats
path: root/libs/WifiTrackerLib/src
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2020-04-28 14:21:14 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2020-04-28 14:21:14 +0000
commite6c66ed74e8a1461ee65eabff59e3b55dc880dbd (patch)
treee0ee7682578342f97a25ac22ee7a7bc62bd44031 /libs/WifiTrackerLib/src
parent69a288b6e0d14185deb29decd017fe17bda1a2a5 (diff)
parent893e6a15cb6a891d915d531f89fcf67cb2126223 (diff)
downloadframeworks_opt_net_wifi-e6c66ed74e8a1461ee65eabff59e3b55dc880dbd.tar.gz
frameworks_opt_net_wifi-e6c66ed74e8a1461ee65eabff59e3b55dc880dbd.tar.bz2
frameworks_opt_net_wifi-e6c66ed74e8a1461ee65eabff59e3b55dc880dbd.zip
Merge "Show Wi-Fi editor for authentication failures" into rvc-dev
Diffstat (limited to 'libs/WifiTrackerLib/src')
-rw-r--r--libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardWifiEntry.java33
-rw-r--r--libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java9
2 files changed, 42 insertions, 0 deletions
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardWifiEntry.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardWifiEntry.java
index 965a1c21d..4a1be50f4 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardWifiEntry.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardWifiEntry.java
@@ -16,6 +16,10 @@
package com.android.wifitrackerlib;
+import static android.net.wifi.WifiConfiguration.NetworkSelectionStatus.DISABLED_AUTHENTICATION_FAILURE;
+import static android.net.wifi.WifiConfiguration.NetworkSelectionStatus.DISABLED_AUTHENTICATION_NO_CREDENTIALS;
+import static android.net.wifi.WifiConfiguration.NetworkSelectionStatus.DISABLED_BY_WRONG_PASSWORD;
+import static android.net.wifi.WifiConfiguration.NetworkSelectionStatus.NETWORK_SELECTION_ENABLED;
import static android.net.wifi.WifiInfo.sanitizeSsid;
import static androidx.core.util.Preconditions.checkNotNull;
@@ -44,6 +48,7 @@ import android.net.NetworkScoreManager;
import android.net.NetworkScorerAppData;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiConfiguration;
+import android.net.wifi.WifiConfiguration.NetworkSelectionStatus;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Handler;
@@ -641,6 +646,34 @@ public class StandardWifiEntry extends WifiEntry {
return false;
}
+ @Override
+ public boolean shouldEditBeforeConnect() {
+ WifiConfiguration wifiConfig = getWifiConfiguration();
+ if (wifiConfig == null) {
+ return false;
+ }
+
+ // The secured Wi-Fi entry is never connected.
+ if (getSecurity() != SECURITY_NONE && getSecurity() != SECURITY_OWE
+ && !wifiConfig.getNetworkSelectionStatus().hasEverConnected()) {
+ return true;
+ }
+
+ // The network is disabled because of one of the authentication problems.
+ NetworkSelectionStatus networkSelectionStatus = wifiConfig.getNetworkSelectionStatus();
+ if (networkSelectionStatus.getNetworkSelectionStatus() != NETWORK_SELECTION_ENABLED) {
+ if (networkSelectionStatus.getDisableReasonCounter(DISABLED_AUTHENTICATION_FAILURE) > 0
+ || networkSelectionStatus.getDisableReasonCounter(
+ DISABLED_BY_WRONG_PASSWORD) > 0
+ || networkSelectionStatus.getDisableReasonCounter(
+ DISABLED_AUTHENTICATION_NO_CREDENTIALS) > 0) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
@WorkerThread
void updateScanResultInfo(@Nullable List<ScanResult> scanResults)
throws IllegalArgumentException {
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java
index c5d224e39..fb43d4bd2 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java
@@ -434,6 +434,15 @@ public abstract class WifiEntry implements Comparable<WifiEntry> {
}
/**
+ * In Wi-Fi picker, when users click a saved network, it will connect to the Wi-Fi network.
+ * However, for some special cases, Wi-Fi picker should show Wi-Fi editor UI for users to edit
+ * security or password before connecting. Or users will always get connection fail results.
+ */
+ public boolean shouldEditBeforeConnect() {
+ return false;
+ }
+
+ /**
* Sets the callback listener for WifiEntryCallback methods.
* Subsequent calls will overwrite the previous listener.
*/