TileOverlayUpdates.update constructor

TileOverlayUpdates.update(
  1. Set<TileOverlay> previous,
  2. Set<TileOverlay> current
)

Implementation

TileOverlayUpdates.update(
    Set<TileOverlay> previous, Set<TileOverlay> current) {
  final Map<TileOverlayId, TileOverlay> oldTileOverlays =
      tileOverlayToMap(previous);
  final Map<TileOverlayId, TileOverlay> currTileOverlays =
      tileOverlayToMap(current);

  final Set<TileOverlayId> oldIds = oldTileOverlays.keys.toSet();
  final Set<TileOverlayId> currIds = currTileOverlays.keys.toSet();

  final Set<TileOverlayId> _toDelete = oldIds.difference(currIds);

  final Set<TileOverlay> _toInsert = Set<TileOverlay>.from(
      currIds.difference(oldIds).map((id) => currTileOverlays[id]).toSet());

  final Set<TileOverlay> _toUpdate = Set<TileOverlay>.from(currIds
      .intersection(oldIds)
      .map((id) => currTileOverlays[id])
      .where((x) => isChanged(x!, oldTileOverlays))
      .toSet());

  insertSet = _toInsert;
  deleteSet = _toDelete;
  updateSet = _toUpdate;
}