Add a network scorer label metadata field to NetworkScoreAppData
This field allows Network Score Services to pass an alternate label for
the scorer.
Bug: 35848510
Test: runtest --path
frameworks/base/services/tests/servicestests/src/com/android/server/NetworkScorerAppManagerTest.java
runtest --path
frameworks/base/services/tests/servicestests/src/com/android/server/NetworkScoreServiceTest.java
Change-Id: Ic28671c1663bd08b2406045d20c150a209d56054
diff --git a/services/tests/servicestests/src/com/android/server/NetworkScorerAppManagerTest.java b/services/tests/servicestests/src/com/android/server/NetworkScorerAppManagerTest.java
index e9a2d34..502bf06 100644
--- a/services/tests/servicestests/src/com/android/server/NetworkScorerAppManagerTest.java
+++ b/services/tests/servicestests/src/com/android/server/NetworkScorerAppManagerTest.java
@@ -59,6 +59,9 @@
@RunWith(AndroidJUnit4.class)
public class NetworkScorerAppManagerTest {
+ private static String MOCK_SERVICE_LABEL = "Mock Service";
+ private static String MOCK_OVERRIDEN_SERVICE_LABEL = "Mock Service Label Override";
+
@Mock private Context mMockContext;
@Mock private PackageManager mMockPm;
@Mock private Resources mResources;
@@ -94,6 +97,22 @@
assertNotNull(activeScorer);
assertEquals(recoComponent, activeScorer.getRecommendationServiceComponent());
assertEquals(924, activeScorer.packageUid);
+ assertEquals(MOCK_SERVICE_LABEL, activeScorer.getRecommendationServiceLabel());
+ }
+
+ @Test
+ public void testGetActiveScorer_providerAvailable_serviceLabelOverride() throws Exception {
+ final ComponentName recoComponent = new ComponentName("package1", "class1");
+ setNetworkRecoPackageSetting(recoComponent.getPackageName());
+ mockScoreNetworksGranted(recoComponent.getPackageName());
+ mockRecommendationServiceAvailable(recoComponent, 924 /* packageUid */,
+ null /* enableUseOpenWifiPackageActivityPackage*/, true /* serviceLabelOverride */);
+
+ final NetworkScorerAppData activeScorer = mNetworkScorerAppManager.getActiveScorer();
+ assertNotNull(activeScorer);
+ assertEquals(recoComponent, activeScorer.getRecommendationServiceComponent());
+ assertEquals(924, activeScorer.packageUid);
+ assertEquals(MOCK_OVERRIDEN_SERVICE_LABEL, activeScorer.getRecommendationServiceLabel());
}
@Test
@@ -269,11 +288,17 @@
}
private void mockRecommendationServiceAvailable(final ComponentName compName, int packageUid) {
- mockRecommendationServiceAvailable(compName, packageUid, null);
+ mockRecommendationServiceAvailable(compName, packageUid, null, false);
}
private void mockRecommendationServiceAvailable(final ComponentName compName, int packageUid,
String enableUseOpenWifiActivityPackage) {
+ mockRecommendationServiceAvailable(
+ compName, packageUid, enableUseOpenWifiActivityPackage, false);
+ }
+
+ private void mockRecommendationServiceAvailable(final ComponentName compName, int packageUid,
+ String enableUseOpenWifiActivityPackage, boolean serviceLabelOverride) {
final ResolveInfo serviceInfo = new ResolveInfo();
serviceInfo.serviceInfo = new ServiceInfo();
serviceInfo.serviceInfo.name = compName.getClassName();
@@ -286,6 +311,16 @@
NetworkScoreManager.USE_OPEN_WIFI_PACKAGE_META_DATA,
enableUseOpenWifiActivityPackage);
}
+ if (serviceLabelOverride) {
+ if (serviceInfo.serviceInfo.metaData == null) {
+ serviceInfo.serviceInfo.metaData = new Bundle();
+ }
+ serviceInfo.serviceInfo.metaData.putString(
+ NetworkScoreManager.RECOMMENDATION_SERVICE_LABEL_META_DATA,
+ MOCK_OVERRIDEN_SERVICE_LABEL);
+ } else {
+ serviceInfo.serviceInfo.nonLocalizedLabel = MOCK_SERVICE_LABEL;
+ }
final int flags = PackageManager.GET_META_DATA;
when(mMockPm.resolveService(