summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2020-01-31 00:23:13 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2020-01-31 00:23:13 +0000
commit2eb2805d3d299a5819fa0324db71d0864efaa3f2 (patch)
tree20da4ab13f890a194ec273bbcecbdb7c087b13ab /libs
parenteca23f47586563772c697ac9ca1d37f77347230f (diff)
parentdbe40e52e6503cf71bdb11652419a3ecfd0e1593 (diff)
Merge "[WifiTrackerLib] Add Passpoint metered choice and disconnect"
Diffstat (limited to 'libs')
-rw-r--r--libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointWifiEntry.java34
1 files changed, 29 insertions, 5 deletions
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointWifiEntry.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointWifiEntry.java
index b4610cb9c..8eabba975 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointWifiEntry.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointWifiEntry.java
@@ -174,7 +174,17 @@ class PasspointWifiEntry extends WifiEntry {
@Override
public void disconnect(@Nullable DisconnectCallback callback) {
- // TODO(b/70983952): Fill this method in
+ if (canDisconnect()) {
+ mCalledDisconnect = true;
+ mDisconnectCallback = callback;
+ mCallbackHandler.postDelayed(() -> {
+ if (callback != null && mCalledDisconnect) {
+ callback.onDisconnectResult(
+ DisconnectCallback.DISCONNECT_STATUS_FAILURE_UNKNOWN);
+ }
+ }, 10_000 /* delayMillis */);
+ mWifiManager.disconnect();
+ }
}
@Override
@@ -227,19 +237,33 @@ class PasspointWifiEntry extends WifiEntry {
@Override
@MeteredChoice
public int getMeteredChoice() {
- // TODO(b/70983952): Fill this method in
+ final int meteredOverride = mPasspointConfig.getMeteredOverride();
+ if (meteredOverride == WifiConfiguration.METERED_OVERRIDE_METERED) {
+ return METERED_CHOICE_METERED;
+ } else if (meteredOverride == WifiConfiguration.METERED_OVERRIDE_NOT_METERED) {
+ return METERED_CHOICE_UNMETERED;
+ }
return METERED_CHOICE_AUTO;
}
@Override
public boolean canSetMeteredChoice() {
- // TODO(b/70983952): Fill this method in
- return false;
+ return true;
}
@Override
public void setMeteredChoice(int meteredChoice) {
- // TODO(b/70983952): Fill this method in
+ final String fqdn = mPasspointConfig.getHomeSp().getFqdn();
+ if (meteredChoice == METERED_CHOICE_AUTO) {
+ mWifiManager.setMeteredOverridePasspoint(fqdn,
+ WifiConfiguration.METERED_OVERRIDE_NONE);
+ } else if (meteredChoice == METERED_CHOICE_METERED) {
+ mWifiManager.setMeteredOverridePasspoint(fqdn,
+ WifiConfiguration.METERED_OVERRIDE_METERED);
+ } else if (meteredChoice == METERED_CHOICE_UNMETERED) {
+ mWifiManager.setMeteredOverridePasspoint(fqdn,
+ WifiConfiguration.METERED_OVERRIDE_NOT_METERED);
+ }
}
@Override