detectChanges function
Detect changes between old and new settings.
Implementation
List<SettingsChange> detectChanges(
SettingsJson oldSettings,
SettingsJson newSettings,
) {
final changes = <SettingsChange>[];
if (oldSettings.model != newSettings.model) {
changes.add(
SettingsChange(
field: 'model',
oldValue: oldSettings.model,
newValue: newSettings.model,
),
);
}
// Permission changes
if (!_listEquals(
oldSettings.permissions.allow,
newSettings.permissions.allow,
)) {
changes.add(
SettingsChange(
field: 'permissions.allow',
oldValue: oldSettings.permissions.allow,
newValue: newSettings.permissions.allow,
),
);
}
if (!_listEquals(
oldSettings.permissions.deny,
newSettings.permissions.deny,
)) {
changes.add(
SettingsChange(
field: 'permissions.deny',
oldValue: oldSettings.permissions.deny,
newValue: newSettings.permissions.deny,
),
);
}
if (oldSettings.sandbox.enabled != newSettings.sandbox.enabled) {
changes.add(
SettingsChange(
field: 'sandbox.enabled',
oldValue: oldSettings.sandbox.enabled,
newValue: newSettings.sandbox.enabled,
),
);
}
if (oldSettings.theme != newSettings.theme) {
changes.add(
SettingsChange(
field: 'theme',
oldValue: oldSettings.theme,
newValue: newSettings.theme,
),
);
}
return changes;
}