diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2020-04-28 14:21:14 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2020-04-28 14:21:14 +0000 |
commit | e6c66ed74e8a1461ee65eabff59e3b55dc880dbd (patch) | |
tree | e0ee7682578342f97a25ac22ee7a7bc62bd44031 /libs/WifiTrackerLib/src | |
parent | 69a288b6e0d14185deb29decd017fe17bda1a2a5 (diff) | |
parent | 893e6a15cb6a891d915d531f89fcf67cb2126223 (diff) | |
download | frameworks_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.java | 33 | ||||
-rw-r--r-- | libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiEntry.java | 9 |
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. */ |