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
This commit is contained in:
Lorenzo Colitti 2025-04-18 12:58:43 +09:00
commit a211521618

View file

@ -14370,14 +14370,20 @@ public class ConnectivityService extends IConnectivityManager.Stub {
);
}
ArraySet<NetworkRequestInfo> createMultiLayerNrisFromSatelliteNetworkFallbackUids(
@NonNull final Set<Integer> uids) {
ArraySet<NetworkRequestInfo> createNrisForFallbackDefault(
@NonNull final Set<Integer> uids, NetworkCapabilities cap, int preferenceOrder) {
final List<NetworkRequest> 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<NetworkRequestInfo> createMultiLayerNrisFromSatelliteNetworkFallbackUids(
@NonNull final Set<Integer> 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<NetworkRequestInfo> filter) {
// Skip the requests which are set by other network preference. Because the uid range rules
// should stay in netd.
final Set<NetworkRequestInfo> 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<NetworkRequestInfo> nris) {
ensureRunningOnConnectivityServiceThread();
mDefaultNetworkRequests.addAll(nris);