From 859884a48f1494fe7c37990318dd2224958e6407 Mon Sep 17 00:00:00 2001 From: Aaron Huang Date: Wed, 2 Nov 2022 15:00:43 +0800 Subject: [PATCH] Make mMatchSubscriberIds as a NonNull variable In current design, mMatchSubscriberIds can be null which has the same meaning with empty set, and is not easy to maintain since it need more checks for this variable when mSubscriberId is null. Thus make mMatchSubscriberIds NonNull for the maintenance. Bug: 238843364 Test: build, FrameworksNetTests Change-Id: I6cfc529b5f4a39ded8598283ff968f2f4d1bc89f --- framework-t/src/android/net/NetworkTemplate.java | 4 ++-- .../android/net/netstats/NetworkTemplateTest.kt | 16 ++++++++-------- .../unit/java/android/net/NetworkTemplateTest.kt | 10 +++++----- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/framework-t/src/android/net/NetworkTemplate.java b/framework-t/src/android/net/NetworkTemplate.java index 2a5e7be755..c0ae8224b1 100644 --- a/framework-t/src/android/net/NetworkTemplate.java +++ b/framework-t/src/android/net/NetworkTemplate.java @@ -269,6 +269,7 @@ public final class NetworkTemplate implements Parcelable { * Since the merge set is dynamic, it should not be persisted or * used for determining equality. */ + @NonNull private final String[] mMatchSubscriberIds; @NonNull @@ -334,10 +335,9 @@ public final class NetworkTemplate implements Parcelable { String[] matchWifiNetworkKeys, int metered, int roaming, int defaultNetwork, int ratType, int oemManaged, int subscriberIdMatchRule) { Objects.requireNonNull(matchWifiNetworkKeys); + Objects.requireNonNull(matchSubscriberIds); mMatchRule = matchRule; mSubscriberId = subscriberId; - // TODO: Check whether mMatchSubscriberIds = null or mMatchSubscriberIds = {null} when - // mSubscriberId is null mMatchSubscriberIds = matchSubscriberIds; mMatchWifiNetworkKeys = matchWifiNetworkKeys; mMetered = metered; diff --git a/tests/common/java/android/net/netstats/NetworkTemplateTest.kt b/tests/common/java/android/net/netstats/NetworkTemplateTest.kt index 192694bb07..cdf32a406c 100644 --- a/tests/common/java/android/net/netstats/NetworkTemplateTest.kt +++ b/tests/common/java/android/net/netstats/NetworkTemplateTest.kt @@ -78,7 +78,7 @@ class NetworkTemplateTest { NetworkTemplate.Builder(matchRule).setSubscriberIds(setOf(TEST_IMSI1)) .setMeteredness(METERED_YES).build().let { val expectedTemplate = NetworkTemplate(matchRule, TEST_IMSI1, - arrayOf(TEST_IMSI1), arrayOf(), METERED_YES, + arrayOf(TEST_IMSI1), emptyArray(), METERED_YES, ROAMING_ALL, DEFAULT_NETWORK_ALL, NETWORK_TYPE_ALL, OEM_MANAGED_ALL, SUBSCRIBER_ID_MATCH_RULE_EXACT) assertEquals(expectedTemplate, it) @@ -91,7 +91,7 @@ class NetworkTemplateTest { NetworkTemplate.Builder(matchRule).setSubscriberIds(setOf(TEST_IMSI1)) .setRoaming(ROAMING_YES).setMeteredness(METERED_YES).build().let { val expectedTemplate = NetworkTemplate(matchRule, TEST_IMSI1, - arrayOf(TEST_IMSI1), arrayOf(), METERED_YES, + arrayOf(TEST_IMSI1), emptyArray(), METERED_YES, ROAMING_YES, DEFAULT_NETWORK_ALL, NETWORK_TYPE_ALL, OEM_MANAGED_ALL, SUBSCRIBER_ID_MATCH_RULE_EXACT) assertEquals(expectedTemplate, it) @@ -107,7 +107,7 @@ class NetworkTemplateTest { // regardless of IMSI. See buildTemplateMobileWildcard. NetworkTemplate.Builder(MATCH_MOBILE).setMeteredness(METERED_YES).build().let { val expectedTemplate = NetworkTemplate(MATCH_MOBILE_WILDCARD, null /*subscriberId*/, - null /*subscriberIds*/, arrayOf(), + emptyArray() /*subscriberIds*/, emptyArray(), METERED_YES, ROAMING_ALL, DEFAULT_NETWORK_ALL, NETWORK_TYPE_ALL, OEM_MANAGED_ALL, SUBSCRIBER_ID_MATCH_RULE_ALL) assertEquals(expectedTemplate, it) @@ -119,7 +119,7 @@ class NetworkTemplateTest { .setMeteredness(METERED_YES).setRatType(TelephonyManager.NETWORK_TYPE_UMTS) .build().let { val expectedTemplate = NetworkTemplate(MATCH_MOBILE, TEST_IMSI1, - arrayOf(TEST_IMSI1), arrayOf(), METERED_YES, + arrayOf(TEST_IMSI1), emptyArray(), METERED_YES, ROAMING_ALL, DEFAULT_NETWORK_ALL, TelephonyManager.NETWORK_TYPE_UMTS, OEM_MANAGED_ALL, SUBSCRIBER_ID_MATCH_RULE_EXACT) assertEquals(expectedTemplate, it) @@ -129,7 +129,7 @@ class NetworkTemplateTest { // regardless of Wifi Network Key. See buildTemplateWifiWildcard and buildTemplateWifi. NetworkTemplate.Builder(MATCH_WIFI).build().let { val expectedTemplate = NetworkTemplate(MATCH_WIFI_WILDCARD, null /*subscriberId*/, - null /*subscriberIds*/, arrayOf(), + emptyArray() /*subscriberIds*/, emptyArray(), METERED_ALL, ROAMING_ALL, DEFAULT_NETWORK_ALL, NETWORK_TYPE_ALL, OEM_MANAGED_ALL, SUBSCRIBER_ID_MATCH_RULE_ALL) assertEquals(expectedTemplate, it) @@ -139,7 +139,7 @@ class NetworkTemplateTest { // See buildTemplateWifi(wifiNetworkKey). NetworkTemplate.Builder(MATCH_WIFI).setWifiNetworkKeys(setOf(TEST_WIFI_KEY1)).build().let { val expectedTemplate = NetworkTemplate(MATCH_WIFI, null /*subscriberId*/, - null /*subscriberIds*/, arrayOf(TEST_WIFI_KEY1), + emptyArray() /*subscriberIds*/, arrayOf(TEST_WIFI_KEY1), METERED_ALL, ROAMING_ALL, DEFAULT_NETWORK_ALL, NETWORK_TYPE_ALL, OEM_MANAGED_ALL, SUBSCRIBER_ID_MATCH_RULE_ALL) assertEquals(expectedTemplate, it) @@ -161,7 +161,7 @@ class NetworkTemplateTest { listOf(MATCH_ETHERNET, MATCH_BLUETOOTH).forEach { matchRule -> NetworkTemplate.Builder(matchRule).build().let { val expectedTemplate = NetworkTemplate(matchRule, null /*subscriberId*/, - null /*subscriberIds*/, arrayOf(), + emptyArray() /*subscriberIds*/, emptyArray(), METERED_ALL, ROAMING_ALL, DEFAULT_NETWORK_ALL, NETWORK_TYPE_ALL, OEM_MANAGED_ALL, SUBSCRIBER_ID_MATCH_RULE_ALL) assertEquals(expectedTemplate, it) @@ -196,7 +196,7 @@ class NetworkTemplateTest { // Verify template which matches wifi wildcard with the given empty key set. NetworkTemplate.Builder(MATCH_WIFI).setWifiNetworkKeys(setOf()).build().let { val expectedTemplate = NetworkTemplate(MATCH_WIFI_WILDCARD, null /*subscriberId*/, - arrayOf() /*subscriberIds*/, arrayOf(), + emptyArray() /*subscriberIds*/, emptyArray(), METERED_ALL, ROAMING_ALL, DEFAULT_NETWORK_ALL, NETWORK_TYPE_ALL, OEM_MANAGED_ALL, SUBSCRIBER_ID_MATCH_RULE_ALL) assertEquals(expectedTemplate, it) diff --git a/tests/unit/java/android/net/NetworkTemplateTest.kt b/tests/unit/java/android/net/NetworkTemplateTest.kt index c10ba93aa6..3cf022812e 100644 --- a/tests/unit/java/android/net/NetworkTemplateTest.kt +++ b/tests/unit/java/android/net/NetworkTemplateTest.kt @@ -448,15 +448,15 @@ class NetworkTemplateTest { @Test fun testParcelUnparcel() { - val templateMobile = NetworkTemplate(MATCH_MOBILE, TEST_IMSI1, null, - arrayOf(), METERED_ALL, ROAMING_ALL, DEFAULT_NETWORK_ALL, + val templateMobile = NetworkTemplate(MATCH_MOBILE, TEST_IMSI1, emptyArray(), + emptyArray(), METERED_ALL, ROAMING_ALL, DEFAULT_NETWORK_ALL, TelephonyManager.NETWORK_TYPE_LTE, OEM_MANAGED_ALL, SUBSCRIBER_ID_MATCH_RULE_EXACT) - val templateWifi = NetworkTemplate(MATCH_WIFI, null, null, + val templateWifi = NetworkTemplate(MATCH_WIFI, null, emptyArray(), arrayOf(TEST_WIFI_KEY1), METERED_ALL, ROAMING_ALL, DEFAULT_NETWORK_ALL, 0, OEM_MANAGED_ALL, SUBSCRIBER_ID_MATCH_RULE_EXACT) - val templateOem = NetworkTemplate(MATCH_MOBILE, null, null, - arrayOf(), METERED_ALL, ROAMING_ALL, DEFAULT_NETWORK_ALL, 0, + val templateOem = NetworkTemplate(MATCH_MOBILE, null, emptyArray(), + emptyArray(), METERED_ALL, ROAMING_ALL, DEFAULT_NETWORK_ALL, 0, OEM_MANAGED_YES, SUBSCRIBER_ID_MATCH_RULE_EXACT) assertParcelSane(templateMobile, 10) assertParcelSane(templateWifi, 10)