diff options
author | Quang Luong <qal@google.com> | 2020-08-13 19:31:14 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-08-13 19:31:14 +0000 |
commit | 26bfeeeb26e6569495bcfbf733f26bb9323662e1 (patch) | |
tree | b653e4aad62e0217778f8c65f8288464cb84a095 /libs/WifiTrackerLib/src | |
parent | af09332bc6026862d679001aff0e3f38f180fe8a (diff) | |
parent | 4976b67589de4033211b4495b1e1c5274cf03474 (diff) | |
download | frameworks_opt_net_wifi-26bfeeeb26e6569495bcfbf733f26bb9323662e1.tar.gz frameworks_opt_net_wifi-26bfeeeb26e6569495bcfbf733f26bb9323662e1.tar.bz2 frameworks_opt_net_wifi-26bfeeeb26e6569495bcfbf733f26bb9323662e1.zip |
[WifiTrackerLib] Handle isAutoJoinEnabled when no configs available am: 4976b67589
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/opt/net/wifi/+/12362260
Change-Id: I00e2c93f9a67cff768eea69e7df7a9a3eecaa2ef
Diffstat (limited to 'libs/WifiTrackerLib/src')
-rw-r--r-- | libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointNetworkDetailsTracker.java | 15 | ||||
-rw-r--r-- | libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointWifiEntry.java | 17 |
2 files changed, 18 insertions, 14 deletions
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointNetworkDetailsTracker.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointNetworkDetailsTracker.java index e2d7acc8e..9ec431736 100644 --- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointNetworkDetailsTracker.java +++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointNetworkDetailsTracker.java @@ -45,7 +45,6 @@ import androidx.annotation.WorkerThread; import androidx.lifecycle.Lifecycle; import java.time.Clock; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Optional; @@ -59,6 +58,7 @@ class PasspointNetworkDetailsTracker extends NetworkDetailsTracker { private final PasspointWifiEntry mChosenEntry; private OsuWifiEntry mOsuWifiEntry; private NetworkInfo mCurrentNetworkInfo; + private WifiConfiguration mCurrentWifiConfig; PasspointNetworkDetailsTracker(@NonNull Lifecycle lifecycle, @NonNull Context context, @@ -180,14 +180,16 @@ class PasspointNetworkDetailsTracker extends NetworkDetailsTracker { final String key = uniqueIdToPasspointWifiEntryKey(wifiConfig.getKey()); if (TextUtils.equals(key, mChosenEntry.getKey())) { - mChosenEntry.updateScanResultInfo(wifiConfig, + mCurrentWifiConfig = wifiConfig; + mChosenEntry.updateScanResultInfo(mCurrentWifiConfig, pair.second.get(WifiManager.PASSPOINT_HOME_NETWORK), pair.second.get(WifiManager.PASSPOINT_ROAMING_NETWORK)); return; } } - // No AP in range; set scan results and connection config to null. - mChosenEntry.updateScanResultInfo(null /* wifiConfig */, + // No AP in range; set scan results to null but keep the last seen WifiConfig to display + // the previous information while out of range. + mChosenEntry.updateScanResultInfo(mCurrentWifiConfig, null /* homeScanResults */, null /* roamingScanResults */); } @@ -235,8 +237,9 @@ class PasspointNetworkDetailsTracker extends NetworkDetailsTracker { */ private void conditionallyUpdateScanResults(boolean lastScanSucceeded) { if (mWifiManager.getWifiState() == WifiManager.WIFI_STATE_DISABLED) { - mChosenEntry.updateScanResultInfo(null /* wifiConfig */, - Collections.emptyList(), Collections.emptyList()); + mChosenEntry.updateScanResultInfo(mCurrentWifiConfig, + null /* homeScanResults */, + null /* roamingScanResults */); return; } diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointWifiEntry.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointWifiEntry.java index 36c855898..1fca6a4e5 100644 --- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointWifiEntry.java +++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointWifiEntry.java @@ -476,26 +476,27 @@ public class PasspointWifiEntry extends WifiEntry implements WifiEntry.WifiEntry @Override public boolean isAutoJoinEnabled() { // Suggestion network; use WifiConfig instead - if (mPasspointConfig == null && mWifiConfig != null) { + if (mPasspointConfig != null) { + return mPasspointConfig.isAutojoinEnabled(); + } + if (mWifiConfig != null) { return mWifiConfig.allowAutojoin; } - - return mPasspointConfig.isAutojoinEnabled(); + return false; } @Override public boolean canSetAutoJoinEnabled() { - return true; + return mPasspointConfig != null || mWifiConfig != null; } @Override public void setAutoJoinEnabled(boolean enabled) { - if (mPasspointConfig == null && mWifiConfig != null) { + if (mPasspointConfig != null) { + mWifiManager.allowAutojoinPasspoint(mPasspointConfig.getHomeSp().getFqdn(), enabled); + } else if (mWifiConfig != null) { mWifiManager.allowAutojoin(mWifiConfig.networkId, enabled); - return; } - - mWifiManager.allowAutojoinPasspoint(mPasspointConfig.getHomeSp().getFqdn(), enabled); } @Override |