Make the start range for rssi constant. am: 996de25b83
am: d921271b25
Change-Id: If872139dabce0379028152ed749694f73e162513
diff --git a/src/com/android/networkrecommendation/DefaultNetworkRecommendationProvider.java b/src/com/android/networkrecommendation/DefaultNetworkRecommendationProvider.java
index 5ab97f6..5698e7d 100644
--- a/src/com/android/networkrecommendation/DefaultNetworkRecommendationProvider.java
+++ b/src/com/android/networkrecommendation/DefaultNetworkRecommendationProvider.java
@@ -59,7 +59,7 @@
*
* <p>SCORE: "Quoted SSID",bssid|$RSSI_CURVE|metered|captivePortal|BADGE
*
- * <p>RSSI_CURVE: start,bucketWidth,score,score,score,score,...
+ * <p>RSSI_CURVE: bucketWidth,score,score,score,score,...
*
* <p>curve, metered and captive portal are optional, as expressed by an empty value.
*
@@ -69,17 +69,17 @@
* <p>Eg, A high quality, paid network with captive portal:
* $ adb shell dumpsys activity service DefaultNetworkRecommendationService addScore \
* '\"Metered\",aa:bb:cc:dd:ee:ff\|
- * -150,10,-128,-128,-128,-128,-128,-128,-128,-128,27,27,27,27,27,-128\|1\|1'
+ * 10,-128,-128,-128,-128,-128,-128,-128,-128,27,27,27,27,27,-128\|1\|1'
*
* <p>Eg, A high quality, unmetered network with captive portal:
* $ adb shell dumpsys activity service DefaultNetworkRecommendationService addScore \
* '\"Captive\",aa:bb:cc:dd:ee:ff\|
- * -150,10,-128,-128,-128,-128,-128,-128,-128,-128,28,28,28,28,28,-128\|0\|1'
+ * 10,-128,-128,-128,-128,-128,-128,-128,-128,28,28,28,28,28,-128\|0\|1'
*
* <p>Eg, A high quality, unmetered network with any bssid:
* $ adb shell dumpsys activity service DefaultNetworkRecommendationService addScore \
* '\"AnySsid\",00:00:00:00:00:00\|
- * -150,10,-128,-128,-128,-128,-128,-128,-128,-128,29,29,29,29,29,-128\|0\|0'
+ * 10,-128,-128,-128,-128,-128,-128,-128,-128,29,29,29,29,29,-128\|0\|0'
*/
@VisibleForTesting
public class DefaultNetworkRecommendationProvider
@@ -90,10 +90,17 @@
private static final String WILDCARD_MAC = "00:00:00:00:00:00";
+ /**
+ * The lowest RSSI value at which a fixed score should apply.
+ * Only used for development / testing purpose.
+ */
+ @VisibleForTesting
+ static final int CONSTANT_CURVE_START = -150;
+
@VisibleForTesting
static final RssiCurve BADGE_CURVE_SD =
new RssiCurve(
- 0 /* start */,
+ CONSTANT_CURVE_START,
10 /* bucketWidth */,
new byte[] {0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10},
0 /* defaultActiveNetworkBoost */);
@@ -101,7 +108,7 @@
@VisibleForTesting
static final RssiCurve BADGE_CURVE_HD =
new RssiCurve(
- 0 /* start */,
+ CONSTANT_CURVE_START,
10 /* bucketWidth */,
new byte[] {0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20},
0 /* defaultActiveNetworkBoost */);
@@ -109,7 +116,7 @@
@VisibleForTesting
static final RssiCurve BADGE_CURVE_4K =
new RssiCurve(
- 0 /* start */,
+ CONSTANT_CURVE_START,
10 /* bucketWidth */,
new byte[] {0, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30},
0 /* defaultActiveNetworkBoost */);
@@ -306,11 +313,10 @@
NetworkKey networkKey = new NetworkKey(new WifiKey(splitWifiKey[0], splitWifiKey[1]));
String[] splitRssiCurve = splitScore[1].split(",");
- int start = Integer.parseInt(splitRssiCurve[0]);
- int bucketWidth = Integer.parseInt(splitRssiCurve[1]);
- byte[] rssiBuckets = new byte[splitRssiCurve.length - 2];
- for (int i = 2; i < splitRssiCurve.length; i++) {
- rssiBuckets[i - 2] = Integer.valueOf(splitRssiCurve[i]).byteValue();
+ int bucketWidth = Integer.parseInt(splitRssiCurve[0]);
+ byte[] rssiBuckets = new byte[splitRssiCurve.length - 1];
+ for (int i = 1; i < splitRssiCurve.length; i++) {
+ rssiBuckets[i - 1] = Integer.valueOf(splitRssiCurve[i]).byteValue();
}
boolean meteredHint = "1".equals(splitScore[2]);
@@ -332,7 +338,7 @@
ScoredNetwork.ATTRIBUTES_KEY_BADGING_CURVE, BADGE_CURVE_4K);
}
}
- RssiCurve rssiCurve = new RssiCurve(start, bucketWidth, rssiBuckets, 0);
+ RssiCurve rssiCurve = new RssiCurve(CONSTANT_CURVE_START, bucketWidth, rssiBuckets, 0);
return new ScoredNetwork(networkKey, rssiCurve, meteredHint, attributes);
}
diff --git a/tests/src/com/android/networkrecommendation/DefaultNetworkRecommendationProviderTest.java b/tests/src/com/android/networkrecommendation/DefaultNetworkRecommendationProviderTest.java
index fcc1c80..47d0fe7 100644
--- a/tests/src/com/android/networkrecommendation/DefaultNetworkRecommendationProviderTest.java
+++ b/tests/src/com/android/networkrecommendation/DefaultNetworkRecommendationProviderTest.java
@@ -60,9 +60,9 @@
private static final String GOOD_METERED_NETWORK_STRING_UNQUOTED = "Metered";
private static final String GOOD_METERED_NETWORK_STRING = "\"Metered\",aa:bb:cc:dd:ee:ff" +
- "|-150,10,-128,-128,-128,-128,-128,-128,-128,-128,20,20,20,20,-128|1|0|4K";
+ "|10,-128,-128,-128,-128,-128,-128,-128,-128,20,20,20,20,-128|1|0|4K";
private static final RssiCurve GOOD_METERED_NETWORK_CURVE = new RssiCurve(
- -150 /* start */, 10 /* bucketWidth */,
+ DefaultNetworkRecommendationProvider.CONSTANT_CURVE_START, 10 /* bucketWidth */,
new byte[]{-128, -128, -128, -128, -128, -128, -128, -128, 20, 20, 20, 20, -128},
0 /* defaultActiveNetworkBoost */);
private static final ScoredNetwork GOOD_METERED_NETWORK = new ScoredNetwork(
@@ -72,9 +72,9 @@
private static final String GOOD_CAPTIVE_NETWORK_STRING_UNQUOTED = "Captive";
private static final String GOOD_CAPTIVE_NETWORK_STRING =
"\"Captive\",ff:ee:dd:cc:bb:aa"
- + "|-160,18,-128,-128,-128,-128,-128,-128,21,21,21,-128|0|1|HD";
+ + "|18,-128,-128,-128,-128,-128,-128,21,21,21,-128|0|1|HD";
private static final RssiCurve GOOD_CAPTIVE_NETWORK_CURVE = new RssiCurve(
- -160 /* start */, 18 /* bucketWidth */,
+ DefaultNetworkRecommendationProvider.CONSTANT_CURVE_START, 18 /* bucketWidth */,
new byte[]{-128, -128, -128, -128, -128, -128, 21, 21, 21, -128},
0 /* defaultActiveNetworkBoost */);
private static final ScoredNetwork GOOD_CAPTIVE_NETWORK;
@@ -89,9 +89,9 @@
private static final String ANY_NETWORK_STRING_UNQUOTED = "AnySsid";
private static final String ANY_NETWORK_STRING =
"\"AnySsid\",00:00:00:00:00:00"
- + "|-160,18,-128,-128,-128,-128,-128,-128,22,22,22,-128|0|0|NONE";
+ + "|18,-128,-128,-128,-128,-128,-128,22,22,22,-128|0|0|NONE";
private static final RssiCurve ANY_NETWORK_CURVE = new RssiCurve(
- -160 /* start */, 18 /* bucketWidth */,
+ DefaultNetworkRecommendationProvider.CONSTANT_CURVE_START, 18 /* bucketWidth */,
new byte[]{-128, -128, -128, -128, -128, -128, 22, 22, 22, -128},
0 /* defaultActiveNetworkBoost */);
private static final ScoredNetwork ANY_NETWORK = new ScoredNetwork(
@@ -101,9 +101,9 @@
private static final String ANY_NETWORK_SPECIFIC_STRING_UNQUOTED = "AnySsid";
private static final String ANY_NETWORK_SPECIFIC_STRING =
"\"AnySsid\",ee:ee:ee:ee:ee:ee"
- + "|-160,18,-128,-128,-128,-128,-128,-128,23,23,23,-128|0|0|NONE";
+ + "|18,-128,-128,-128,-128,-128,-128,23,23,23,-128|0|0|NONE";
private static final RssiCurve ANY_NETWORK_SPECIFIC_CURVE = new RssiCurve(
- -160 /* start */, 18 /* bucketWidth */,
+ DefaultNetworkRecommendationProvider.CONSTANT_CURVE_START, 18 /* bucketWidth */,
new byte[]{-128, -128, -128, -128, -128, -128, 23, 23, 23, -128},
0 /* defaultActiveNetworkBoost */);
private static final ScoredNetwork ANY_NETWORK_SPECIFIC = new ScoredNetwork(
@@ -113,11 +113,11 @@
private static final String BAD_NETWORK_STRING_UNQUOTED = "Bad";
private static final String BAD_NETWORK_STRING =
"\"Bad\",aa:bb:cc:dd:ee:ff"
- + "|-150,10,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128"
+ + "|10,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128"
+ "|1|0|SD";
private static final RssiCurve BAD_NETWORK_CURVE =
new RssiCurve(
- -150 /* start */,
+ DefaultNetworkRecommendationProvider.CONSTANT_CURVE_START,
10 /* bucketWidth */,
new byte[] {-128, -128, -128, -128, -128, -128,
-128, -128, -128, -128, -128, -128, -128},