summaryrefslogtreecommitdiff
path: root/service
diff options
context:
space:
mode:
authorMichael Plass <mplass@google.com>2017-06-14 01:15:04 +0000
committerandroid-build-merger <android-build-merger@google.com>2017-06-14 01:15:04 +0000
commit59a6f9692b2497c946100b1e6e671c17ec3918f1 (patch)
tree492a52073bb81f071b38f71e0289afcb2b21f6a3 /service
parentc176cab279c371db0baabc0d98706b649b0103c6 (diff)
parent905822cbbf76083c1a4bc51d9789a0eb5e00f3c7 (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.java22
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);
+ }
+
}