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;" "Caller is not managed profile owner or device owner;"
+ " only managed profile owner or device owner may control the preferential" + " only managed profile owner or device owner may control the preferential"
+ " network service"); + " network service");
synchronized (getLockObject()) {
final ActiveAdmin requiredAdmin = getDeviceOrProfileOwnerAdminLocked( try {
caller.getUserId()); updateNetworkPreferenceForUser(caller.getUserId(), preferentialNetworkServiceConfigs);
if (!requiredAdmin.mPreferentialNetworkServiceConfigs.equals( synchronized (getLockObject()) {
preferentialNetworkServiceConfigs)) { final ActiveAdmin requiredAdmin = getDeviceOrProfileOwnerAdminLocked(
requiredAdmin.mPreferentialNetworkServiceConfigs = caller.getUserId());
new ArrayList<>(preferentialNetworkServiceConfigs); if (!requiredAdmin.mPreferentialNetworkServiceConfigs.equals(
saveSettingsLocked(caller.getUserId()); 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 DevicePolicyEventLogger
.createEvent(DevicePolicyEnums.SET_PREFERENTIAL_NETWORK_SERVICE_ENABLED) .createEvent(DevicePolicyEnums.SET_PREFERENTIAL_NETWORK_SERVICE_ENABLED)
.setBoolean(preferentialNetworkServiceConfigs .setBoolean(preferentialNetworkServiceConfigs