From 7dddc319427a3af0129ee126ed77fc253afef540 Mon Sep 17 00:00:00 2001 From: Sudheer Shanka Date: Tue, 24 Jan 2023 19:29:56 +0000 Subject: [PATCH 1/2] Add defer-until-active policy to NETWORK_STATS_CHANGED. This allows deferring the broadcast delivery to apps in the Cached state. Bug: 255525222 Test: TH Change-Id: I5864219eeba4ed0cb2ade404d19e5b59946ee77f --- service-t/src/com/android/server/net/NetworkStatsService.java | 1 + 1 file changed, 1 insertion(+) diff --git a/service-t/src/com/android/server/net/NetworkStatsService.java b/service-t/src/com/android/server/net/NetworkStatsService.java index 4eeaf6b7b2..1606fd0418 100644 --- a/service-t/src/com/android/server/net/NetworkStatsService.java +++ b/service-t/src/com/android/server/net/NetworkStatsService.java @@ -537,6 +537,7 @@ public class NetworkStatsService extends INetworkStatsService.Stub { BroadcastOptions.makeBasic()) .setDeliveryGroupPolicy( ConstantsShim.DELIVERY_GROUP_POLICY_MOST_RECENT) + .setDeferUntilActive(true) .toBundle(); } catch (UnsupportedApiLevelException e) { Log.wtf(TAG, "Using unsupported API" + e); From 74fe7178af5bf58d6b67816f7e11655c69ad60a6 Mon Sep 17 00:00:00 2001 From: Sudheer Shanka Date: Tue, 24 Jan 2023 19:33:06 +0000 Subject: [PATCH 2/2] Add defer-until-active policy to CONNECTIVITY_ACTION. This allows deferring the broadcast delivery to apps in the Cached state. Bug: 255545931 Test: TH Change-Id: Idd94ad5f9dbabf88f6070108bdfc8e60f34304a6 --- service/src/com/android/server/ConnectivityService.java | 1 + tests/unit/java/com/android/server/ConnectivityServiceTest.java | 1 + 2 files changed, 2 insertions(+) diff --git a/service/src/com/android/server/ConnectivityService.java b/service/src/com/android/server/ConnectivityService.java index f5c6fb7c17..df29b8eda7 100755 --- a/service/src/com/android/server/ConnectivityService.java +++ b/service/src/com/android/server/ConnectivityService.java @@ -3082,6 +3082,7 @@ public class ConnectivityService extends IConnectivityManager.Stub optsShim.setDeliveryGroupPolicy(ConstantsShim.DELIVERY_GROUP_POLICY_MOST_RECENT); optsShim.setDeliveryGroupMatchingKey(ConnectivityManager.CONNECTIVITY_ACTION, createDeliveryGroupKeyForConnectivityAction(info)); + optsShim.setDeferUntilActive(true); } catch (UnsupportedApiLevelException e) { Log.wtf(TAG, "Using unsupported API" + e); } diff --git a/tests/unit/java/com/android/server/ConnectivityServiceTest.java b/tests/unit/java/com/android/server/ConnectivityServiceTest.java index c9783bafca..febc23e24c 100755 --- a/tests/unit/java/com/android/server/ConnectivityServiceTest.java +++ b/tests/unit/java/com/android/server/ConnectivityServiceTest.java @@ -848,6 +848,7 @@ public class ConnectivityServiceTest { verify(mBroadcastOptionsShim).setDeliveryGroupMatchingKey( eq(CONNECTIVITY_ACTION), eq(createDeliveryGroupKeyForConnectivityAction(ni))); + verify(mBroadcastOptionsShim).setDeferUntilActive(eq(true)); } catch (UnsupportedApiLevelException e) { throw new RuntimeException(e); }