From ffedc7ca771d5e1c209d0a1e1e784e89fd2a473d 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:48:36 +0000 Subject: [PATCH] refactor: extract platform map config properties Extract the `switch` expression used to obtain the internal platform map properties from `_platformConfiguration` into a private extension `_platformProperties` on `MKMapConfiguration`. This breaks down the lengthy `_platformConfiguration` function, reducing its complexity and improving readability by separating the logic of type destructuring from the large object construction logic. --- lib/src/mk_map_view.dart | 60 ++++++++++++++++++++++++++++------------ 1 file changed, 43 insertions(+), 17 deletions(-) diff --git a/lib/src/mk_map_view.dart b/lib/src/mk_map_view.dart index 6a22eb3..59c9048 100644 --- a/lib/src/mk_map_view.dart +++ b/lib/src/mk_map_view.dart @@ -283,22 +283,10 @@ final class _MKMapViewState extends State final ( PlatformMapKind kind, MKMapEmphasisStyle emphasisStyle, - showsTraffic, - pointOfInterestFilter, - ) = switch (widget.preferredConfiguration) { - MKStandardMapConfiguration( - :final emphasisStyle, - :final showsTraffic, - :final pointOfInterestFilter, - ) => - (.standard, emphasisStyle, showsTraffic, pointOfInterestFilter), - MKHybridMapConfiguration( - :final showsTraffic, - :final pointOfInterestFilter, - ) => - (.hybrid, .standard, showsTraffic, pointOfInterestFilter), - MKImageryMapConfiguration() => (.imagery, .standard, false, null), - }; + bool showsTraffic, + PlatformPointOfInterestFilter? pointOfInterestFilter, + ) = widget.preferredConfiguration._platformProperties; + return PlatformMapConfiguration( kind: kind, emphasisStyle: emphasisStyle, @@ -315,7 +303,7 @@ final class _MKMapViewState extends State isZoomEnabled: widget.isZoomEnabled, isPitchEnabled: widget.isPitchEnabled, selectableMapFeatures: widget.selectableMapFeatures.toList(), - pointOfInterestFilter: pointOfInterestFilter?.toPlatform(), + pointOfInterestFilter: pointOfInterestFilter, cameraZoomRange: widget.cameraZoomRange.toPlatform(), cameraBoundary: widget.cameraBoundary?.toPlatform(), ); @@ -449,3 +437,41 @@ final class _MKMapViewState extends State void onDidFailToLocateUser(String error) => widget.onDidFailToLocateUser?.call(error); } + +extension on MKMapConfiguration { + ( + PlatformMapKind, + MKMapEmphasisStyle, + bool, + PlatformPointOfInterestFilter?, + ) + get _platformProperties => switch (this) { + MKStandardMapConfiguration( + :final emphasisStyle, + :final showsTraffic, + :final pointOfInterestFilter, + ) => + ( + PlatformMapKind.standard, + emphasisStyle, + showsTraffic, + pointOfInterestFilter.toPlatform(), + ), + MKHybridMapConfiguration( + :final showsTraffic, + :final pointOfInterestFilter, + ) => + ( + PlatformMapKind.hybrid, + MKMapEmphasisStyle.standard, + showsTraffic, + pointOfInterestFilter.toPlatform(), + ), + MKImageryMapConfiguration() => ( + PlatformMapKind.imagery, + MKMapEmphasisStyle.standard, + false, + null, + ), + }; +}