From a2115216187f1d7266ca549b5e2945c5ccecb7aa Mon Sep 17 00:00:00 2001 From: Lorenzo Colitti Date: Fri, 18 Apr 2025 12:58:43 +0900 Subject: [PATCH] Minor refactoring of per-app fallback requests. 1. Add a utility method to create per-app fallback requests. The new method only has one caller, but another caller will be added in an upcoming CL. 2. Extract code from removeDefaultNetworkRequestsForPreference to a more generic method that takes a predicate and that will be used elsewhere. Bug: 410731080 Flag: EXEMPT refactor Test: refactor covered by existing tests Change-Id: I13facc0f3fff1d4e76d5e8117cfcc182aa049d29 --- .../android/server/ConnectivityService.java | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/service/src/com/android/server/ConnectivityService.java b/service/src/com/android/server/ConnectivityService.java index 1276cc2e24..86cfa0e466 100644 --- a/service/src/com/android/server/ConnectivityService.java +++ b/service/src/com/android/server/ConnectivityService.java @@ -14370,14 +14370,20 @@ public class ConnectivityService extends IConnectivityManager.Stub { ); } - ArraySet createMultiLayerNrisFromSatelliteNetworkFallbackUids( - @NonNull final Set uids) { + ArraySet createNrisForFallbackDefault( + @NonNull final Set uids, NetworkCapabilities cap, int preferenceOrder) { final List requests = new ArrayList<>(); // request: track default(unrestricted internet network) requests.add(createDefaultInternetRequestForTransport( TYPE_NONE, NetworkRequest.Type.TRACK_DEFAULT)); + requests.add(createNetworkRequest(NetworkRequest.Type.REQUEST, cap)); + return createNrisForPreferenceOrder(uids, requests, preferenceOrder); + } + + ArraySet createMultiLayerNrisFromSatelliteNetworkFallbackUids( + @NonNull final Set uids) { // request: Satellite internet, satellite network could be restricted or constrained final NetworkCapabilities cap = new NetworkCapabilities.Builder() .addCapability(NET_CAPABILITY_INTERNET) @@ -14386,9 +14392,8 @@ public class ConnectivityService extends IConnectivityManager.Stub { .removeCapability(NET_CAPABILITY_NOT_BANDWIDTH_CONSTRAINED) .addTransportType(NetworkCapabilities.TRANSPORT_SATELLITE) .build(); - requests.add(createNetworkRequest(NetworkRequest.Type.REQUEST, cap)); - - return createNrisForPreferenceOrder(uids, requests, PREFERENCE_ORDER_SATELLITE_FALLBACK); + return createNrisForFallbackDefault(uids, cap, + PREFERENCE_ORDER_SATELLITE_FALLBACK); } private void handleMobileDataPreferredUidsChanged() { @@ -14598,14 +14603,17 @@ public class ConnectivityService extends IConnectivityManager.Stub { } } - private void removeDefaultNetworkRequestsForPreference(final int preferenceOrder) { + private void removeDefaultNetworkRequests(Predicate filter) { // Skip the requests which are set by other network preference. Because the uid range rules // should stay in netd. final Set requests = new ArraySet<>(mDefaultNetworkRequests); - requests.removeIf(request -> request.mPreferenceOrder != preferenceOrder); + requests.removeIf(filter.negate()); handleRemoveNetworkRequests(requests); } + private void removeDefaultNetworkRequestsForPreference(final int preferenceOrder) { + removeDefaultNetworkRequests((nri) -> nri.mPreferenceOrder == preferenceOrder); + } private void addPerAppDefaultNetworkRequests(@NonNull final Set nris) { ensureRunningOnConnectivityServiceThread(); mDefaultNetworkRequests.addAll(nris);