diff --git a/framework-t/api/module-lib-current.txt b/framework-t/api/module-lib-current.txt index f308bfd365..59ca730a2e 100644 --- a/framework-t/api/module-lib-current.txt +++ b/framework-t/api/module-lib-current.txt @@ -10,7 +10,7 @@ package android.app.usage { method @NonNull @WorkerThread public android.app.usage.NetworkStats querySummary(@NonNull android.net.NetworkTemplate, long, long) throws java.lang.SecurityException; method @NonNull @WorkerThread public android.app.usage.NetworkStats.Bucket querySummaryForDevice(@NonNull android.net.NetworkTemplate, long, long); method @NonNull @WorkerThread public android.app.usage.NetworkStats queryTaggedSummary(@NonNull android.net.NetworkTemplate, long, long) throws java.lang.SecurityException; - method public void registerUsageCallback(@NonNull android.net.NetworkTemplate, long, @NonNull java.util.concurrent.Executor, @NonNull android.app.usage.NetworkStatsManager.UsageCallback); + method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK}, conditional=true) public void registerUsageCallback(@NonNull android.net.NetworkTemplate, long, @NonNull java.util.concurrent.Executor, @NonNull android.app.usage.NetworkStatsManager.UsageCallback); method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK}) public void setDefaultGlobalAlert(long); method public void setPollForce(boolean); method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK}) public void setPollOnOpen(boolean); diff --git a/tests/unit/java/com/android/server/net/NetworkStatsObserversTest.java b/tests/unit/java/com/android/server/net/NetworkStatsObserversTest.java index f447709033..5f9d1ff19f 100644 --- a/tests/unit/java/com/android/server/net/NetworkStatsObserversTest.java +++ b/tests/unit/java/com/android/server/net/NetworkStatsObserversTest.java @@ -36,6 +36,7 @@ import static org.junit.Assert.assertTrue; import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyInt; +import android.content.Context; import android.net.DataUsageRequest; import android.net.NetworkIdentity; import android.net.NetworkIdentitySet; @@ -102,6 +103,7 @@ public class NetworkStatsObserversTest { @Mock private IBinder mUsageCallbackBinder; private TestableUsageCallback mUsageCallback; + @Mock private Context mContext; @Before public void setUp() throws Exception { @@ -128,14 +130,14 @@ public class NetworkStatsObserversTest { final DataUsageRequest inputRequest = new DataUsageRequest( DataUsageRequest.REQUEST_ID_UNSET, sTemplateWifi, thresholdTooLowBytes); - final DataUsageRequest requestByApp = mStatsObservers.register(inputRequest, mUsageCallback, - UID_RED, NetworkStatsAccess.Level.DEVICE); + final DataUsageRequest requestByApp = mStatsObservers.register(mContext, inputRequest, + mUsageCallback, UID_RED, NetworkStatsAccess.Level.DEVICE); assertTrue(requestByApp.requestId > 0); assertTrue(Objects.equals(sTemplateWifi, requestByApp.template)); - assertEquals(THRESHOLD_BYTES, requestByApp.thresholdInBytes); + assertEquals(thresholdTooLowBytes, requestByApp.thresholdInBytes); // Verify the threshold requested by system uid won't be overridden. - final DataUsageRequest requestBySystem = mStatsObservers.register(inputRequest, + final DataUsageRequest requestBySystem = mStatsObservers.register(mContext, inputRequest, mUsageCallback, Process.SYSTEM_UID, NetworkStatsAccess.Level.DEVICE); assertTrue(requestBySystem.requestId > 0); assertTrue(Objects.equals(sTemplateWifi, requestBySystem.template)); @@ -148,7 +150,7 @@ public class NetworkStatsObserversTest { DataUsageRequest inputRequest = new DataUsageRequest( DataUsageRequest.REQUEST_ID_UNSET, sTemplateWifi, highThresholdBytes); - DataUsageRequest request = mStatsObservers.register(inputRequest, mUsageCallback, + DataUsageRequest request = mStatsObservers.register(mContext, inputRequest, mUsageCallback, Process.SYSTEM_UID, NetworkStatsAccess.Level.DEVICE); assertTrue(request.requestId > 0); assertTrue(Objects.equals(sTemplateWifi, request.template)); @@ -160,13 +162,13 @@ public class NetworkStatsObserversTest { DataUsageRequest inputRequest = new DataUsageRequest( DataUsageRequest.REQUEST_ID_UNSET, sTemplateWifi, THRESHOLD_BYTES); - DataUsageRequest request1 = mStatsObservers.register(inputRequest, mUsageCallback, + DataUsageRequest request1 = mStatsObservers.register(mContext, inputRequest, mUsageCallback, Process.SYSTEM_UID, NetworkStatsAccess.Level.DEVICE); assertTrue(request1.requestId > 0); assertTrue(Objects.equals(sTemplateWifi, request1.template)); assertEquals(THRESHOLD_BYTES, request1.thresholdInBytes); - DataUsageRequest request2 = mStatsObservers.register(inputRequest, mUsageCallback, + DataUsageRequest request2 = mStatsObservers.register(mContext, inputRequest, mUsageCallback, Process.SYSTEM_UID, NetworkStatsAccess.Level.DEVICE); assertTrue(request2.requestId > request1.requestId); assertTrue(Objects.equals(sTemplateWifi, request2.template)); @@ -186,7 +188,7 @@ public class NetworkStatsObserversTest { DataUsageRequest inputRequest = new DataUsageRequest( DataUsageRequest.REQUEST_ID_UNSET, sTemplateImsi1, THRESHOLD_BYTES); - DataUsageRequest request = mStatsObservers.register(inputRequest, mUsageCallback, + DataUsageRequest request = mStatsObservers.register(mContext, inputRequest, mUsageCallback, Process.SYSTEM_UID, NetworkStatsAccess.Level.DEVICE); assertTrue(request.requestId > 0); assertTrue(Objects.equals(sTemplateImsi1, request.template)); @@ -206,7 +208,7 @@ public class NetworkStatsObserversTest { DataUsageRequest inputRequest = new DataUsageRequest( DataUsageRequest.REQUEST_ID_UNSET, sTemplateImsi1, THRESHOLD_BYTES); - DataUsageRequest request = mStatsObservers.register(inputRequest, mUsageCallback, + DataUsageRequest request = mStatsObservers.register(mContext, inputRequest, mUsageCallback, UID_RED, NetworkStatsAccess.Level.DEVICE); assertTrue(request.requestId > 0); assertTrue(Objects.equals(sTemplateImsi1, request.template)); @@ -234,7 +236,7 @@ public class NetworkStatsObserversTest { DataUsageRequest inputRequest = new DataUsageRequest( DataUsageRequest.REQUEST_ID_UNSET, sTemplateImsi1, THRESHOLD_BYTES); - DataUsageRequest request = mStatsObservers.register(inputRequest, mUsageCallback, + DataUsageRequest request = mStatsObservers.register(mContext, inputRequest, mUsageCallback, Process.SYSTEM_UID, NetworkStatsAccess.Level.DEVICE); assertTrue(request.requestId > 0); assertTrue(Objects.equals(sTemplateImsi1, request.template)); @@ -258,7 +260,7 @@ public class NetworkStatsObserversTest { DataUsageRequest inputRequest = new DataUsageRequest( DataUsageRequest.REQUEST_ID_UNSET, sTemplateImsi1, THRESHOLD_BYTES); - DataUsageRequest request = mStatsObservers.register(inputRequest, mUsageCallback, + DataUsageRequest request = mStatsObservers.register(mContext, inputRequest, mUsageCallback, Process.SYSTEM_UID, NetworkStatsAccess.Level.DEVICE); assertTrue(request.requestId > 0); assertTrue(Objects.equals(sTemplateImsi1, request.template)); @@ -288,7 +290,7 @@ public class NetworkStatsObserversTest { DataUsageRequest inputRequest = new DataUsageRequest( DataUsageRequest.REQUEST_ID_UNSET, sTemplateImsi1, THRESHOLD_BYTES); - DataUsageRequest request = mStatsObservers.register(inputRequest, mUsageCallback, + DataUsageRequest request = mStatsObservers.register(mContext, inputRequest, mUsageCallback, Process.SYSTEM_UID, NetworkStatsAccess.Level.DEVICE); assertTrue(request.requestId > 0); assertTrue(Objects.equals(sTemplateImsi1, request.template)); @@ -319,7 +321,7 @@ public class NetworkStatsObserversTest { DataUsageRequest inputRequest = new DataUsageRequest( DataUsageRequest.REQUEST_ID_UNSET, sTemplateImsi1, THRESHOLD_BYTES); - DataUsageRequest request = mStatsObservers.register(inputRequest, mUsageCallback, + DataUsageRequest request = mStatsObservers.register(mContext, inputRequest, mUsageCallback, UID_RED, NetworkStatsAccess.Level.DEFAULT); assertTrue(request.requestId > 0); assertTrue(Objects.equals(sTemplateImsi1, request.template)); @@ -352,7 +354,7 @@ public class NetworkStatsObserversTest { DataUsageRequest inputRequest = new DataUsageRequest( DataUsageRequest.REQUEST_ID_UNSET, sTemplateImsi1, THRESHOLD_BYTES); - DataUsageRequest request = mStatsObservers.register(inputRequest, mUsageCallback, + DataUsageRequest request = mStatsObservers.register(mContext, inputRequest, mUsageCallback, UID_BLUE, NetworkStatsAccess.Level.DEFAULT); assertTrue(request.requestId > 0); assertTrue(Objects.equals(sTemplateImsi1, request.template)); @@ -384,7 +386,7 @@ public class NetworkStatsObserversTest { DataUsageRequest inputRequest = new DataUsageRequest( DataUsageRequest.REQUEST_ID_UNSET, sTemplateImsi1, THRESHOLD_BYTES); - DataUsageRequest request = mStatsObservers.register(inputRequest, mUsageCallback, + DataUsageRequest request = mStatsObservers.register(mContext, inputRequest, mUsageCallback, UID_BLUE, NetworkStatsAccess.Level.USER); assertTrue(request.requestId > 0); assertTrue(Objects.equals(sTemplateImsi1, request.template)); @@ -417,7 +419,7 @@ public class NetworkStatsObserversTest { DataUsageRequest inputRequest = new DataUsageRequest( DataUsageRequest.REQUEST_ID_UNSET, sTemplateImsi1, THRESHOLD_BYTES); - DataUsageRequest request = mStatsObservers.register(inputRequest, mUsageCallback, + DataUsageRequest request = mStatsObservers.register(mContext, inputRequest, mUsageCallback, UID_RED, NetworkStatsAccess.Level.USER); assertTrue(request.requestId > 0); assertTrue(Objects.equals(sTemplateImsi1, request.template));