diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2020-01-31 00:23:13 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2020-01-31 00:23:13 +0000 |
commit | 2eb2805d3d299a5819fa0324db71d0864efaa3f2 (patch) | |
tree | 20da4ab13f890a194ec273bbcecbdb7c087b13ab /libs | |
parent | eca23f47586563772c697ac9ca1d37f77347230f (diff) | |
parent | dbe40e52e6503cf71bdb11652419a3ecfd0e1593 (diff) |
Merge "[WifiTrackerLib] Add Passpoint metered choice and disconnect"
Diffstat (limited to 'libs')
-rw-r--r-- | libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointWifiEntry.java | 34 |
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 |