From 71a523fb61c7b9a091a30bceab41e1722d50d2ee Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Thu, 16 Jul 2026 14:43:16 +0000 Subject: [PATCH] Refactored `didUpdateWidget` in `MKMapView` by extracting logic into smaller, private helper methods. --- lib/src/mk_map_view.dart | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/lib/src/mk_map_view.dart b/lib/src/mk_map_view.dart index 6a22eb3..bb17a1a 100644 --- a/lib/src/mk_map_view.dart +++ b/lib/src/mk_map_view.dart @@ -344,6 +344,15 @@ final class _MKMapViewState extends State final c = _controller; if (c == null) return; + _updateDispatchTables(); + _updateConfiguration(c, oldWidget); + _updateAnnotations(c, oldWidget); + _updatePolylines(c, oldWidget); + _updatePolygons(c, oldWidget); + _updateCircles(c, oldWidget); + } + + void _updateDispatchTables() { // Refresh the id→object dispatch tables on every rebuild, before the diff // gates below. The models' `==` excludes callbacks (so a closure swap // doesn't trigger a needless native recycle); a rebuild that changes only @@ -354,10 +363,15 @@ final class _MKMapViewState extends State _polylines = {for (final p in widget.polylines) p.id: p}; _polygons = {for (final p in widget.polygons) p.id: p}; _circles = {for (final o in widget.circles) o.id: o}; + } + void _updateConfiguration(MKMapViewController c, MKMapView oldWidget) { if (_configurationChanged(oldWidget)) { unawaited(c.updateMapConfiguration(_platformConfiguration())); } + } + + void _updateAnnotations(MKMapViewController c, MKMapView oldWidget) { if (!setEquals(widget.annotations, oldWidget.annotations)) { final updates = MapObjectUpdates.between( oldWidget.annotations, @@ -366,6 +380,9 @@ final class _MKMapViewState extends State ); unawaited(c.updateAnnotations(updates)); } + } + + void _updatePolylines(MKMapViewController c, MKMapView oldWidget) { if (!setEquals(widget.polylines, oldWidget.polylines)) { final updates = MapObjectUpdates.between( oldWidget.polylines, @@ -374,6 +391,9 @@ final class _MKMapViewState extends State ); unawaited(c.updatePolylines(updates)); } + } + + void _updatePolygons(MKMapViewController c, MKMapView oldWidget) { if (!setEquals(widget.polygons, oldWidget.polygons)) { final updates = MapObjectUpdates.between( oldWidget.polygons, @@ -382,6 +402,9 @@ final class _MKMapViewState extends State ); unawaited(c.updatePolygons(updates)); } + } + + void _updateCircles(MKMapViewController c, MKMapView oldWidget) { if (!setEquals(widget.circles, oldWidget.circles)) { final updates = MapObjectUpdates.between( oldWidget.circles,