diff options
| author | 2019-05-09 11:53:57 -0700 | |
|---|---|---|
| committer | 2019-05-13 11:42:23 -0700 | |
| commit | c00a30eb8a7943e9fd63b87a8f472f37c30fe712 (patch) | |
| tree | 5215b27bbea296a4ede4a63686f3b6098a849126 | |
| parent | 6e94c38c4eaa75480f09c494f2caa58a8cf23ad8 (diff) | |
Use merged NetworkTemplate to query data usage
This CL uses merged NetworkTemplate so that it shows correct
data for carrier which is a virtual that has multiple
subscriberId under the hood.
By doing this, this CL also adds several hidden API so settings
can query by NetworkTemplate directly.
Fixes: 120566366
Test: RunSettingsLibRoboTests
Change-Id: I8b747697933c75b48b14387adafb5ac9ca165926
10 files changed, 93 insertions, 91 deletions
diff --git a/core/java/android/app/usage/NetworkStatsManager.java b/core/java/android/app/usage/NetworkStatsManager.java index 59ae3347f417..8e40449fa546 100644 --- a/core/java/android/app/usage/NetworkStatsManager.java +++ b/core/java/android/app/usage/NetworkStatsManager.java @@ -278,6 +278,12 @@ public class NetworkStatsManager { return null; } + return querySummary(template, startTime, endTime); + } + + /** @hide */ + public NetworkStats querySummary(NetworkTemplate template, long startTime, + long endTime) throws SecurityException, RemoteException { NetworkStats result; result = new NetworkStats(mContext, template, mFlags, startTime, endTime, mService); result.startSummaryEnumeration(); @@ -296,6 +302,13 @@ public class NetworkStatsManager { NetworkStats.Bucket.TAG_NONE, NetworkStats.Bucket.STATE_ALL); } + /** @hide */ + public NetworkStats queryDetailsForUid(NetworkTemplate template, + long startTime, long endTime, int uid) throws SecurityException { + return queryDetailsForUidTagState(template, startTime, endTime, uid, + NetworkStats.Bucket.TAG_NONE, NetworkStats.Bucket.STATE_ALL); + } + /** * Query network usage statistics details for a given uid and tag. * @@ -340,6 +353,13 @@ public class NetworkStatsManager { NetworkTemplate template; template = createTemplate(networkType, subscriberId); + return queryDetailsForUidTagState(template, startTime, endTime, uid, tag, state); + } + + /** @hide */ + public NetworkStats queryDetailsForUidTagState(NetworkTemplate template, + long startTime, long endTime, int uid, int tag, int state) throws SecurityException { + NetworkStats result; try { result = new NetworkStats(mContext, template, mFlags, startTime, endTime, mService); diff --git a/packages/SettingsLib/src/com/android/settingslib/net/DataUsageController.java b/packages/SettingsLib/src/com/android/settingslib/net/DataUsageController.java index 2bfcc91bbc29..f30de130f616 100644 --- a/packages/SettingsLib/src/com/android/settingslib/net/DataUsageController.java +++ b/packages/SettingsLib/src/com/android/settingslib/net/DataUsageController.java @@ -175,9 +175,7 @@ public class DataUsageController { private long getUsageLevel(NetworkTemplate template, long start, long end) { try { - final Bucket bucket = mNetworkStatsManager.querySummaryForDevice( - getNetworkType(template), getActiveSubscriberId(), - start, end); + final Bucket bucket = mNetworkStatsManager.querySummaryForDevice(template, start, end); if (bucket != null) { return bucket.getRxBytes() + bucket.getTxBytes(); } diff --git a/packages/SettingsLib/src/com/android/settingslib/net/NetworkCycleChartDataLoader.java b/packages/SettingsLib/src/com/android/settingslib/net/NetworkCycleChartDataLoader.java index ec5a0b5cc4cd..787dc55e60f4 100644 --- a/packages/SettingsLib/src/com/android/settingslib/net/NetworkCycleChartDataLoader.java +++ b/packages/SettingsLib/src/com/android/settingslib/net/NetworkCycleChartDataLoader.java @@ -37,14 +37,14 @@ public class NetworkCycleChartDataLoader private NetworkCycleChartDataLoader(Builder builder) { super(builder); - mData = new ArrayList<NetworkCycleChartData>(); + mData = new ArrayList<>(); } @Override void recordUsage(long start, long end) { try { final NetworkStats.Bucket bucket = mNetworkStatsManager.querySummaryForDevice( - mNetworkType, mSubId, start, end); + mNetworkTemplate, start, end); final long total = bucket == null ? 0L : bucket.getRxBytes() + bucket.getTxBytes(); if (total > 0L) { final NetworkCycleChartData.Builder builder = new NetworkCycleChartData.Builder(); @@ -81,7 +81,7 @@ public class NetworkCycleChartDataLoader long usage = 0L; try { final NetworkStats.Bucket bucket = mNetworkStatsManager.querySummaryForDevice( - mNetworkType, mSubId, bucketStart, bucketEnd); + mNetworkTemplate, bucketStart, bucketEnd); if (bucket != null) { usage = bucket.getRxBytes() + bucket.getTxBytes(); } diff --git a/packages/SettingsLib/src/com/android/settingslib/net/NetworkCycleDataForUidLoader.java b/packages/SettingsLib/src/com/android/settingslib/net/NetworkCycleDataForUidLoader.java index bd9a636883c2..43c05b8b64d6 100644 --- a/packages/SettingsLib/src/com/android/settingslib/net/NetworkCycleDataForUidLoader.java +++ b/packages/SettingsLib/src/com/android/settingslib/net/NetworkCycleDataForUidLoader.java @@ -23,11 +23,11 @@ import android.app.usage.NetworkStats; import android.content.Context; import android.util.Log; +import androidx.annotation.VisibleForTesting; + import java.util.ArrayList; import java.util.List; -import androidx.annotation.VisibleForTesting; - /** * Loader for network data usage history. It returns a list of usage data per billing cycle for the * specific Uid(s). @@ -44,7 +44,7 @@ public class NetworkCycleDataForUidLoader extends super(builder); mUids = builder.mUids; mRetrieveDetail = builder.mRetrieveDetail; - mData = new ArrayList<NetworkCycleDataForUid>(); + mData = new ArrayList<>(); } @Override @@ -54,7 +54,7 @@ public class NetworkCycleDataForUidLoader extends long totalForeground = 0L; for (int uid : mUids) { final NetworkStats stats = mNetworkStatsManager.queryDetailsForUid( - mNetworkType, mSubId, start, end, uid); + mNetworkTemplate, start, end, uid); final long usage = getTotalUsage(stats); if (usage > 0L) { totalUsage += usage; @@ -100,7 +100,7 @@ public class NetworkCycleDataForUidLoader extends private long getForegroundUsage(long start, long end, int uid) { final NetworkStats stats = mNetworkStatsManager.queryDetailsForUidTagState( - mNetworkType, mSubId, start, end, uid, TAG_NONE, STATE_FOREGROUND); + mNetworkTemplate, start, end, uid, TAG_NONE, STATE_FOREGROUND); return getTotalUsage(stats); } diff --git a/packages/SettingsLib/src/com/android/settingslib/net/NetworkCycleDataLoader.java b/packages/SettingsLib/src/com/android/settingslib/net/NetworkCycleDataLoader.java index dd6d563b3197..3e95b01824cc 100644 --- a/packages/SettingsLib/src/com/android/settingslib/net/NetworkCycleDataLoader.java +++ b/packages/SettingsLib/src/com/android/settingslib/net/NetworkCycleDataLoader.java @@ -49,18 +49,14 @@ import java.util.Iterator; public abstract class NetworkCycleDataLoader<D> extends AsyncTaskLoader<D> { private static final String TAG = "NetworkCycleDataLoader"; protected final NetworkStatsManager mNetworkStatsManager; - protected final String mSubId; - protected final int mNetworkType; + protected final NetworkTemplate mNetworkTemplate; private final NetworkPolicy mPolicy; - private final NetworkTemplate mNetworkTemplate; private final ArrayList<Long> mCycles; @VisibleForTesting final INetworkStatsService mNetworkStatsService; protected NetworkCycleDataLoader(Builder<?> builder) { super(builder.mContext); - mSubId = builder.mSubId; - mNetworkType = builder.mNetworkType; mNetworkTemplate = builder.mNetworkTemplate; mCycles = builder.mCycles; mNetworkStatsManager = (NetworkStatsManager) @@ -180,8 +176,6 @@ public abstract class NetworkCycleDataLoader<D> extends AsyncTaskLoader<D> { public static abstract class Builder<T extends NetworkCycleDataLoader> { private final Context mContext; - private String mSubId; - private int mNetworkType; private NetworkTemplate mNetworkTemplate; private ArrayList<Long> mCycles; @@ -189,14 +183,8 @@ public abstract class NetworkCycleDataLoader<D> extends AsyncTaskLoader<D> { mContext = context; } - public Builder<T> setSubscriberId(String subId) { - mSubId = subId; - return this; - } - public Builder<T> setNetworkTemplate(NetworkTemplate template) { mNetworkTemplate = template; - mNetworkType = DataUsageController.getNetworkType(template); return this; } diff --git a/packages/SettingsLib/src/com/android/settingslib/net/NetworkStatsSummaryLoader.java b/packages/SettingsLib/src/com/android/settingslib/net/NetworkStatsSummaryLoader.java index 34e6097ea46e..ed093629686c 100644 --- a/packages/SettingsLib/src/com/android/settingslib/net/NetworkStatsSummaryLoader.java +++ b/packages/SettingsLib/src/com/android/settingslib/net/NetworkStatsSummaryLoader.java @@ -16,9 +16,10 @@ package com.android.settingslib.net; -import android.app.usage.NetworkStatsManager; import android.app.usage.NetworkStats; +import android.app.usage.NetworkStatsManager; import android.content.Context; +import android.net.NetworkTemplate; import android.os.RemoteException; import android.util.Log; @@ -33,15 +34,13 @@ public class NetworkStatsSummaryLoader extends AsyncTaskLoader<NetworkStats> { private final NetworkStatsManager mNetworkStatsManager; private final long mStart; private final long mEnd; - private final String mSubId; - private final int mNetworkType; + private final NetworkTemplate mNetworkTemplate; private NetworkStatsSummaryLoader(Builder builder) { super(builder.mContext); mStart = builder.mStart; mEnd = builder.mEnd; - mSubId = builder.mSubId; - mNetworkType = builder.mNetworkType; + mNetworkTemplate = builder.mNetworkTemplate; mNetworkStatsManager = (NetworkStatsManager) builder.mContext.getSystemService(Context.NETWORK_STATS_SERVICE); } @@ -55,7 +54,7 @@ public class NetworkStatsSummaryLoader extends AsyncTaskLoader<NetworkStats> { @Override public NetworkStats loadInBackground() { try { - return mNetworkStatsManager.querySummary(mNetworkType, mSubId, mStart, mEnd); + return mNetworkStatsManager.querySummary(mNetworkTemplate, mStart, mEnd); } catch (RemoteException e) { Log.e(TAG, "Exception querying network detail.", e); return null; @@ -78,8 +77,7 @@ public class NetworkStatsSummaryLoader extends AsyncTaskLoader<NetworkStats> { private final Context mContext; private long mStart; private long mEnd; - private String mSubId; - private int mNetworkType; + private NetworkTemplate mNetworkTemplate; public Builder(Context context) { mContext = context; @@ -95,13 +93,11 @@ public class NetworkStatsSummaryLoader extends AsyncTaskLoader<NetworkStats> { return this; } - public Builder setSubscriberId(String subId) { - mSubId = subId; - return this; - } - - public Builder setNetworkType(int networkType) { - mNetworkType = networkType; + /** + * Set {@link NetworkTemplate} for builder + */ + public Builder setNetworkTemplate(NetworkTemplate template) { + mNetworkTemplate = template; return this; } diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/DataUsageControllerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/DataUsageControllerTest.java index a28bb6ce44c5..3da5e766c389 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/DataUsageControllerTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/DataUsageControllerTest.java @@ -31,7 +31,6 @@ import static org.mockito.Mockito.when; import android.app.usage.NetworkStats; import android.app.usage.NetworkStatsManager; import android.content.Context; -import android.net.ConnectivityManager; import android.net.INetworkStatsSession; import android.net.NetworkStatsHistory; import android.net.NetworkTemplate; @@ -52,6 +51,7 @@ import org.robolectric.shadows.ShadowSubscriptionManager; public class DataUsageControllerTest { private static final String SUB_ID = "Test Subscriber"; + private static final String SUB_ID_2 = "Test Subscriber 2"; @Mock private INetworkStatsSession mSession; @@ -63,6 +63,9 @@ public class DataUsageControllerTest { private NetworkStatsManager mNetworkStatsManager; @Mock private Context mContext; + private NetworkTemplate mNetworkTemplate; + private NetworkTemplate mNetworkTemplate2; + private NetworkTemplate mWifiNetworkTemplate; private DataUsageController mController; private NetworkStatsHistory mNetworkStatsHistory; @@ -83,24 +86,27 @@ public class DataUsageControllerTest { .when(mSession).getHistoryForNetwork(any(NetworkTemplate.class), anyInt()); ShadowSubscriptionManager.setDefaultDataSubscriptionId(mDefaultSubscriptionId); doReturn(SUB_ID).when(mTelephonyManager).getSubscriberId(); + + mNetworkTemplate = NetworkTemplate.buildTemplateMobileAll(SUB_ID); + mNetworkTemplate2 = NetworkTemplate.buildTemplateMobileAll(SUB_ID_2); + mWifiNetworkTemplate = NetworkTemplate.buildTemplateWifiWildcard(); } @Test public void getHistoricalUsageLevel_shouldQuerySummaryForDevice() throws Exception { + mController.getHistoricalUsageLevel(mWifiNetworkTemplate); - mController.getHistoricalUsageLevel(NetworkTemplate.buildTemplateWifiWildcard()); - - verify(mNetworkStatsManager).querySummaryForDevice(eq(ConnectivityManager.TYPE_WIFI), - eq(SUB_ID), eq(0L) /* startTime */, anyLong() /* endTime */); + verify(mNetworkStatsManager).querySummaryForDevice(eq(mWifiNetworkTemplate), + eq(0L) /* startTime */, anyLong() /* endTime */); } @Test public void getHistoricalUsageLevel_noUsageData_shouldReturn0() throws Exception { - when(mNetworkStatsManager.querySummaryForDevice(eq(ConnectivityManager.TYPE_WIFI), - eq(SUB_ID), eq(0L) /* startTime */, anyLong() /* endTime */)) + when(mNetworkStatsManager.querySummaryForDevice(eq(mWifiNetworkTemplate), + eq(0L) /* startTime */, anyLong() /* endTime */)) .thenReturn(mock(NetworkStats.Bucket.class)); - assertThat(mController.getHistoricalUsageLevel(NetworkTemplate.buildTemplateWifiWildcard())) - .isEqualTo(0L); + assertThat(mController.getHistoricalUsageLevel(mWifiNetworkTemplate)) + .isEqualTo(0L); } @Test @@ -110,10 +116,10 @@ public class DataUsageControllerTest { final NetworkStats.Bucket bucket = mock(NetworkStats.Bucket.class); when(bucket.getRxBytes()).thenReturn(receivedBytes); when(bucket.getTxBytes()).thenReturn(transmittedBytes); - when(mNetworkStatsManager.querySummaryForDevice(eq(ConnectivityManager.TYPE_WIFI), - eq(SUB_ID), eq(0L) /* startTime */, anyLong() /* endTime */)).thenReturn(bucket); + when(mNetworkStatsManager.querySummaryForDevice(eq(mWifiNetworkTemplate), + eq(0L) /* startTime */, anyLong() /* endTime */)).thenReturn(bucket); - assertThat(mController.getHistoricalUsageLevel(NetworkTemplate.buildTemplateWifiWildcard())) + assertThat(mController.getHistoricalUsageLevel(mWifiNetworkTemplate)) .isEqualTo(receivedBytes + transmittedBytes); } @@ -126,9 +132,8 @@ public class DataUsageControllerTest { final NetworkStats.Bucket defaultSubscriberBucket = mock(NetworkStats.Bucket.class); when(defaultSubscriberBucket.getRxBytes()).thenReturn(defaultSubRx); when(defaultSubscriberBucket.getTxBytes()).thenReturn(defaultSubTx); - when(mNetworkStatsManager.querySummaryForDevice(eq(ConnectivityManager.TYPE_MOBILE), - eq(SUB_ID), eq(0L)/* startTime */, anyLong() /* endTime */)).thenReturn( - defaultSubscriberBucket); + when(mNetworkStatsManager.querySummaryForDevice(eq(mNetworkTemplate), eq(0L)/* startTime */, + anyLong() /* endTime */)).thenReturn(defaultSubscriberBucket); // Now setup a stats bucket for a different, non-default subscription / subscriber ID. final long nonDefaultSubRx = 7654321L; @@ -137,25 +142,21 @@ public class DataUsageControllerTest { when(nonDefaultSubscriberBucket.getRxBytes()).thenReturn(nonDefaultSubRx); when(nonDefaultSubscriberBucket.getTxBytes()).thenReturn(nonDefaultSubTx); final int explicitSubscriptionId = 55; - final String subscriberId2 = "Test Subscriber 2"; - when(mNetworkStatsManager.querySummaryForDevice(eq(ConnectivityManager.TYPE_MOBILE), - eq(subscriberId2), eq(0L)/* startTime */, anyLong() /* endTime */)).thenReturn( + when(mNetworkStatsManager.querySummaryForDevice(eq(mNetworkTemplate2), + eq(0L)/* startTime */, anyLong() /* endTime */)).thenReturn( nonDefaultSubscriberBucket); - doReturn(subscriberId2).when(mTelephonyManager).getSubscriberId(); + doReturn(SUB_ID_2).when(mTelephonyManager).getSubscriberId(); // Now verify that when we're asking for stats on the non-default subscription, we get // the data back for that subscription and *not* the default one. mController.setSubscriptionId(explicitSubscriptionId); - assertThat(mController.getHistoricalUsageLevel( - NetworkTemplate.buildTemplateMobileAll(subscriberId2))).isEqualTo( + assertThat(mController.getHistoricalUsageLevel(mNetworkTemplate2)).isEqualTo( nonDefaultSubRx + nonDefaultSubTx); - - verify(mTelephonyManager).createForSubscriptionId(explicitSubscriptionId); } @Test - public void getTelephonyManager_shouldCreateWithExplicitSubId() throws Exception { + public void getTelephonyManager_shouldCreateWithExplicitSubId() { int explicitSubId = 1; TelephonyManager tmForSub1 = new TelephonyManager(mContext, explicitSubId); when(mTelephonyManager.createForSubscriptionId(eq(explicitSubId))).thenReturn(tmForSub1); diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/NetworkCycleChartDataLoaderTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/NetworkCycleChartDataLoaderTest.java index 011f234ab4f1..c3e161320a1f 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/NetworkCycleChartDataLoaderTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/NetworkCycleChartDataLoaderTest.java @@ -21,9 +21,9 @@ import static org.mockito.Mockito.when; import android.app.usage.NetworkStatsManager; import android.content.Context; -import android.net.ConnectivityManager; import android.net.NetworkPolicy; import android.net.NetworkPolicyManager; +import android.net.NetworkTemplate; import android.os.RemoteException; import android.text.format.DateUtils; @@ -43,6 +43,8 @@ public class NetworkCycleChartDataLoaderTest { private NetworkPolicyManager mNetworkPolicyManager; @Mock private Context mContext; + @Mock + private NetworkTemplate mNetworkTemplate; private NetworkCycleChartDataLoader mLoader; @@ -60,13 +62,12 @@ public class NetworkCycleChartDataLoaderTest { public void recordUsage_shouldQueryNetworkSummaryForDevice() throws RemoteException { final long end = System.currentTimeMillis(); final long start = end - (DateUtils.WEEK_IN_MILLIS * 4); - final int networkType = ConnectivityManager.TYPE_MOBILE; - final String subId = "TestSubscriber"; mLoader = NetworkCycleChartDataLoader.builder(mContext) - .setSubscriberId(subId).build(); + .setNetworkTemplate(mNetworkTemplate) + .build(); mLoader.recordUsage(start, end); - verify(mNetworkStatsManager).querySummaryForDevice(networkType, subId, start, end); + verify(mNetworkStatsManager).querySummaryForDevice(mNetworkTemplate, start, end); } } diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/NetworkCycleDataForUidLoaderTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/NetworkCycleDataForUidLoaderTest.java index aafb46a1dbf1..877eb615b196 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/NetworkCycleDataForUidLoaderTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/NetworkCycleDataForUidLoaderTest.java @@ -28,9 +28,9 @@ import static org.mockito.Mockito.when; import android.app.usage.NetworkStatsManager; import android.content.Context; -import android.net.ConnectivityManager; import android.net.NetworkPolicy; import android.net.NetworkPolicyManager; +import android.net.NetworkTemplate; import android.text.format.DateUtils; import org.junit.Before; @@ -42,6 +42,7 @@ import org.robolectric.RobolectricTestRunner; @RunWith(RobolectricTestRunner.class) public class NetworkCycleDataForUidLoaderTest { + private static final String SUB_ID = "Test Subscriber"; @Mock private NetworkStatsManager mNetworkStatsManager; @@ -49,6 +50,7 @@ public class NetworkCycleDataForUidLoaderTest { private NetworkPolicyManager mNetworkPolicyManager; @Mock private Context mContext; + private NetworkTemplate mNetworkTemplate; private NetworkCycleDataForUidLoader mLoader; @@ -56,64 +58,62 @@ public class NetworkCycleDataForUidLoaderTest { public void setUp() { MockitoAnnotations.initMocks(this); when(mContext.getSystemService(Context.NETWORK_STATS_SERVICE)) - .thenReturn(mNetworkStatsManager); + .thenReturn(mNetworkStatsManager); when(mContext.getSystemService(Context.NETWORK_POLICY_SERVICE)) - .thenReturn(mNetworkPolicyManager); + .thenReturn(mNetworkPolicyManager); when(mNetworkPolicyManager.getNetworkPolicies()).thenReturn(new NetworkPolicy[0]); + mNetworkTemplate = NetworkTemplate.buildTemplateMobileAll(SUB_ID); } @Test public void recordUsage_shouldQueryNetworkDetailsForUidAndForegroundState() { final long end = System.currentTimeMillis(); final long start = end - (DateUtils.WEEK_IN_MILLIS * 4); - final int networkType = ConnectivityManager.TYPE_MOBILE; - final String subId = "TestSubscriber"; final int uid = 1; mLoader = spy(NetworkCycleDataForUidLoader.builder(mContext) - .addUid(uid).setSubscriberId(subId).build()); + .addUid(uid) + .setNetworkTemplate(mNetworkTemplate) + .build()); doReturn(1024L).when(mLoader).getTotalUsage(any()); mLoader.recordUsage(start, end); - verify(mNetworkStatsManager).queryDetailsForUid(networkType, subId, start, end, uid); + verify(mNetworkStatsManager).queryDetailsForUid(mNetworkTemplate, start, end, uid); verify(mNetworkStatsManager).queryDetailsForUidTagState( - networkType, subId, start, end, uid, TAG_NONE, STATE_FOREGROUND); + mNetworkTemplate, start, end, uid, TAG_NONE, STATE_FOREGROUND); } @Test public void recordUsage_retrieveDetailIsFalse_shouldNotQueryNetworkForegroundState() { final long end = System.currentTimeMillis(); final long start = end - (DateUtils.WEEK_IN_MILLIS * 4); - final int networkType = ConnectivityManager.TYPE_MOBILE; - final String subId = "TestSubscriber"; final int uid = 1; mLoader = spy(NetworkCycleDataForUidLoader.builder(mContext) - .setRetrieveDetail(false).addUid(uid).setSubscriberId(subId).build()); + .setRetrieveDetail(false).addUid(uid).build()); doReturn(1024L).when(mLoader).getTotalUsage(any()); mLoader.recordUsage(start, end); verify(mNetworkStatsManager, never()).queryDetailsForUidTagState( - networkType, subId, start, end, uid, TAG_NONE, STATE_FOREGROUND); + mNetworkTemplate, start, end, uid, TAG_NONE, STATE_FOREGROUND); } @Test public void recordUsage_multipleUids_shouldQueryNetworkDetailsForEachUid() { final long end = System.currentTimeMillis(); final long start = end - (DateUtils.WEEK_IN_MILLIS * 4); - final int networkType = ConnectivityManager.TYPE_MOBILE; - final String subId = "TestSubscriber"; mLoader = spy(NetworkCycleDataForUidLoader.builder(mContext) - .addUid(1) - .addUid(2) - .addUid(3) - .setSubscriberId(subId).build()); + .addUid(1) + .addUid(2) + .addUid(3) + .setNetworkTemplate(mNetworkTemplate) + .build()); doReturn(1024L).when(mLoader).getTotalUsage(any()); mLoader.recordUsage(start, end); - verify(mNetworkStatsManager).queryDetailsForUid(networkType, subId, start, end, 1); - verify(mNetworkStatsManager).queryDetailsForUid(networkType, subId, start, end, 2); - verify(mNetworkStatsManager).queryDetailsForUid(networkType, subId, start, end, 3); + verify(mNetworkStatsManager).queryDetailsForUid(mNetworkTemplate, start, end, 1); + verify(mNetworkStatsManager).queryDetailsForUid(mNetworkTemplate, start, end, 2); + verify(mNetworkStatsManager).queryDetailsForUid(mNetworkTemplate, start, end, 3); } } diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/NetworkCycleDataLoaderTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/NetworkCycleDataLoaderTest.java index c5f54bb0f0d9..74b91510cf3f 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/NetworkCycleDataLoaderTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/NetworkCycleDataLoaderTest.java @@ -126,8 +126,6 @@ public class NetworkCycleDataLoaderTest { when(mIterator.next()).thenReturn(cycle); mLoader = spy(new NetworkCycleDataTestLoader(mContext)); ReflectionHelpers.setField(mLoader, "mPolicy", mPolicy); - ReflectionHelpers.setField(mLoader, "mNetworkType", networkType); - ReflectionHelpers.setField(mLoader, "mSubId", subId); mLoader.loadPolicyData(); |