Replace buildTemplate* with NetworkTemplate.Builder

Use Builder API which was provided in Android T to
build a template.

Bug: 238843364
Test: build, FrameworksNetTests:NetworkStatsManagerTest
Change-Id: Ibf1ac16541d6f3ddaf9b241e2f47ae04acbedf93
This commit is contained in:
Aaron Huang
2022-07-18 16:49:09 +08:00
parent 6d74747445
commit a4fcb8b4cf
2 changed files with 24 additions and 11 deletions

View File

@@ -19,6 +19,9 @@ package android.app.usage;
import static android.annotation.SystemApi.Client.MODULE_LIBRARIES; import static android.annotation.SystemApi.Client.MODULE_LIBRARIES;
import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR; import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR;
import static android.net.NetworkCapabilities.TRANSPORT_WIFI; import static android.net.NetworkCapabilities.TRANSPORT_WIFI;
import static android.net.NetworkStats.METERED_YES;
import static android.net.NetworkTemplate.MATCH_MOBILE;
import static android.net.NetworkTemplate.MATCH_WIFI;
import android.Manifest; import android.Manifest;
import android.annotation.CallbackExecutor; import android.annotation.CallbackExecutor;
@@ -55,6 +58,7 @@ import com.android.net.module.util.NetworkIdentityUtils;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.Set;
import java.util.concurrent.Executor; import java.util.concurrent.Executor;
/** /**
@@ -1020,14 +1024,17 @@ public class NetworkStatsManager {
switch (networkType) { switch (networkType) {
case ConnectivityManager.TYPE_MOBILE: case ConnectivityManager.TYPE_MOBILE:
template = subscriberId == null template = subscriberId == null
? NetworkTemplate.buildTemplateMobileWildcard() ? new NetworkTemplate.Builder(MATCH_MOBILE)
: NetworkTemplate.buildTemplateMobileAll(subscriberId); .setMeteredness(METERED_YES).build()
: new NetworkTemplate.Builder(MATCH_MOBILE)
.setMeteredness(METERED_YES)
.setSubscriberIds(Set.of(subscriberId)).build();
break; break;
case ConnectivityManager.TYPE_WIFI: case ConnectivityManager.TYPE_WIFI:
template = TextUtils.isEmpty(subscriberId) template = TextUtils.isEmpty(subscriberId)
? NetworkTemplate.buildTemplateWifiWildcard() ? new NetworkTemplate.Builder(MATCH_WIFI).build()
: NetworkTemplate.buildTemplateWifi(NetworkTemplate.WIFI_NETWORKID_ALL, : new NetworkTemplate.Builder(MATCH_WIFI)
subscriberId); .setSubscriberIds(Set.of(subscriberId)).build();
break; break;
default: default:
throw new IllegalArgumentException("Cannot create template for network type " throw new IllegalArgumentException("Cannot create template for network type "

View File

@@ -16,6 +16,10 @@
package android.app.usage; package android.app.usage;
import static android.net.NetworkStats.METERED_YES;
import static android.net.NetworkTemplate.MATCH_MOBILE;
import static android.net.NetworkTemplate.MATCH_WIFI;
import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertFalse; import static junit.framework.Assert.assertFalse;
import static junit.framework.Assert.assertTrue; import static junit.framework.Assert.assertTrue;
@@ -52,6 +56,8 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations;
import org.mockito.invocation.InvocationOnMock; import org.mockito.invocation.InvocationOnMock;
import java.util.Set;
@RunWith(DevSdkIgnoreRunner.class) @RunWith(DevSdkIgnoreRunner.class)
@SmallTest @SmallTest
@DevSdkIgnoreRule.IgnoreUpTo(Build.VERSION_CODES.S_V2) @DevSdkIgnoreRule.IgnoreUpTo(Build.VERSION_CODES.S_V2)
@@ -204,20 +210,20 @@ public class NetworkStatsManagerTest {
@Test @Test
public void testNetworkTemplateWhenRunningQueryDetails_NoSubscriberId() throws RemoteException { public void testNetworkTemplateWhenRunningQueryDetails_NoSubscriberId() throws RemoteException {
runQueryDetailsAndCheckTemplate(ConnectivityManager.TYPE_MOBILE, runQueryDetailsAndCheckTemplate(ConnectivityManager.TYPE_MOBILE,
null /* subscriberId */, NetworkTemplate.buildTemplateMobileWildcard()); null /* subscriberId */, new NetworkTemplate.Builder(MATCH_MOBILE)
.setMeteredness(METERED_YES).build());
runQueryDetailsAndCheckTemplate(ConnectivityManager.TYPE_WIFI, runQueryDetailsAndCheckTemplate(ConnectivityManager.TYPE_WIFI,
"" /* subscriberId */, NetworkTemplate.buildTemplateWifiWildcard()); "" /* subscriberId */, new NetworkTemplate.Builder(MATCH_WIFI).build());
runQueryDetailsAndCheckTemplate(ConnectivityManager.TYPE_WIFI, runQueryDetailsAndCheckTemplate(ConnectivityManager.TYPE_WIFI,
null /* subscriberId */, NetworkTemplate.buildTemplateWifiWildcard()); null /* subscriberId */, new NetworkTemplate.Builder(MATCH_WIFI).build());
} }
@Test @Test
public void testNetworkTemplateWhenRunningQueryDetails_MergedCarrierWifi() public void testNetworkTemplateWhenRunningQueryDetails_MergedCarrierWifi()
throws RemoteException { throws RemoteException {
runQueryDetailsAndCheckTemplate(ConnectivityManager.TYPE_WIFI, runQueryDetailsAndCheckTemplate(ConnectivityManager.TYPE_WIFI,
TEST_SUBSCRIBER_ID, TEST_SUBSCRIBER_ID, new NetworkTemplate.Builder(MATCH_WIFI)
NetworkTemplate.buildTemplateWifi(NetworkTemplate.WIFI_NETWORKID_ALL, .setSubscriberIds(Set.of(TEST_SUBSCRIBER_ID)).build());
TEST_SUBSCRIBER_ID));
} }
@Test @Test