setWithBatch method
Sets the properties and arbitrary data using the provided ProviderModelBatch.
Implementation
@protected
Future<void> setWithBatch({
required ProviderModelBatch batch,
Map<String, Object?>? properties,
Map<String, Object?>? data,
Map<Type, Map<String, Object?>>? overrideProperties,
}) async {
_logger.fine('set:$properties, $data');
if (properties != null) {
final tProperties = batch.get(_properties);
final tNewProperties = _CompareMap(tProperties);
tNewProperties.addAll(properties);
batch.set(_properties, tNewProperties);
}
if (data != null) {
final tData = batch.get(_data);
final tNewData = _CompareMap(tData);
tNewData.addAll(data);
batch.set(_data, tNewData);
}
if (overrideProperties != null) {
for (var i in overrideProperties.entries) {
_propertiesOverrides[i.key] ??= _CompareMap();
_propertiesOverrides[i.key]!.addAll(i.value);
}
}
await _runSynchronousChangeListeners(batch);
try {
await app.remoteConfig.fetch(force: batch.get(_id) != _id.unsafeValue);
} catch (e, stackTrace) {
_logger.info('Failed to refresh RemoteConfig.', e, stackTrace);
}
}