summaryrefslogtreecommitdiffstats
path: root/libs/WifiTrackerLib/src
diff options
context:
space:
mode:
authorQuang Luong <qal@google.com>2020-08-13 19:31:14 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2020-08-13 19:31:14 +0000
commit26bfeeeb26e6569495bcfbf733f26bb9323662e1 (patch)
treeb653e4aad62e0217778f8c65f8288464cb84a095 /libs/WifiTrackerLib/src
parentaf09332bc6026862d679001aff0e3f38f180fe8a (diff)
parent4976b67589de4033211b4495b1e1c5274cf03474 (diff)
downloadframeworks_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.java15
-rw-r--r--libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointWifiEntry.java17
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