store preferential configs if no error from CS

store preferential configs in deivice policy only if no error from
connectivity service

Bug: 283999128
Test: Added new test to CTS and ran PreferentialNetworkServiceTest
Merged-In: I8421e4d21b8719426cfb998d96742e065641efcd
Change-Id: I8421e4d21b8719426cfb998d96742e065641efcd
This commit is contained in:
Sooraj Sasindran
2023-05-23 13:38:10 -07:00
parent 3f21f5a83c
commit f27fc6ca1a

View File

@@ -14836,17 +14836,23 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
"Caller is not managed profile owner or device owner;"
+ " only managed profile owner or device owner may control the preferential"
+ " network service");
synchronized (getLockObject()) {
final ActiveAdmin requiredAdmin = getDeviceOrProfileOwnerAdminLocked(
caller.getUserId());
if (!requiredAdmin.mPreferentialNetworkServiceConfigs.equals(
preferentialNetworkServiceConfigs)) {
requiredAdmin.mPreferentialNetworkServiceConfigs =
new ArrayList<>(preferentialNetworkServiceConfigs);
saveSettingsLocked(caller.getUserId());
try {
updateNetworkPreferenceForUser(caller.getUserId(), preferentialNetworkServiceConfigs);
synchronized (getLockObject()) {
final ActiveAdmin requiredAdmin = getDeviceOrProfileOwnerAdminLocked(
caller.getUserId());
if (!requiredAdmin.mPreferentialNetworkServiceConfigs.equals(
preferentialNetworkServiceConfigs)) {
requiredAdmin.mPreferentialNetworkServiceConfigs =
new ArrayList<>(preferentialNetworkServiceConfigs);
saveSettingsLocked(caller.getUserId());
}
}
} catch (Exception e) {
Slogf.e(LOG_TAG, "Failed to set preferential network service configs");
throw e;
}
updateNetworkPreferenceForUser(caller.getUserId(), preferentialNetworkServiceConfigs);
DevicePolicyEventLogger
.createEvent(DevicePolicyEnums.SET_PREFERENTIAL_NETWORK_SERVICE_ENABLED)
.setBoolean(preferentialNetworkServiceConfigs