diff options
author | Michael Plass <mplass@google.com> | 2017-06-14 01:15:04 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2017-06-14 01:15:04 +0000 |
commit | 59a6f9692b2497c946100b1e6e671c17ec3918f1 (patch) | |
tree | 492a52073bb81f071b38f71e0289afcb2b21f6a3 /service | |
parent | c176cab279c371db0baabc0d98706b649b0103c6 (diff) | |
parent | 905822cbbf76083c1a4bc51d9789a0eb5e00f3c7 (diff) |
Merge "[WifiScoreReport] Simplifed scorer/quick handover" into oc-dr1-dev am: f932bcf61f
am: 905822cbbf
Change-Id: I81b56836fdb72d36ce21a5c81bbbf5df6077d806
Diffstat (limited to 'service')
-rw-r--r-- | service/java/com/android/server/wifi/WifiScoreReport.java | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/service/java/com/android/server/wifi/WifiScoreReport.java b/service/java/com/android/server/wifi/WifiScoreReport.java index 8bc8bf37a..74ddf99ec 100644 --- a/service/java/com/android/server/wifi/WifiScoreReport.java +++ b/service/java/com/android/server/wifi/WifiScoreReport.java @@ -148,8 +148,13 @@ public class WifiScoreReport { int aggressiveHandover, WifiMetrics wifiMetrics) { int score; - updateScoringState(wifiInfo, aggressiveHandover); - score = calculateScore(wifiInfo, aggressiveHandover); + if (aggressiveHandover == 0) { + // Use the old method + updateScoringState(wifiInfo, aggressiveHandover); + score = calculateScore(wifiInfo, aggressiveHandover); + } else { + score = calculateAlternativeScore(wifiInfo); + } //sanitize boundaries if (score > NetworkAgent.WIFI_BASE_SCORE) { @@ -320,4 +325,17 @@ public class WifiScoreReport { } return false; } + + /** + * Experimental scorer, used when aggressive handover preference is set + */ + private int calculateAlternativeScore(WifiInfo wifiInfo) { + double rssi = wifiInfo.getRssi(); + double badRssi = wifiInfo.is5GHz() ? mThresholdQualifiedRssi5 : mThresholdQualifiedRssi24; + + double baseScore = 50.0; // The score to beat to be chosen over mobile data + double score = (rssi - badRssi) + baseScore; + return (int) Math.round(score); + } + } |