From 9cb3769e91f3a277ab5d8ad14640bf9c9780b778 Mon Sep 17 00:00:00 2001 From: Christian Wolf Olov Johannsen Date: Wed, 11 Dec 2024 12:27:46 +0000 Subject: [PATCH] Pushing version 4.0.1 --- CHANGELOG.md | 12 ++++++++++++ README.md | 2 +- lib/core/mapsindoors_widget.dart | 32 +++++++++++++++++++++++++------- lib/mapsindoors.dart | 3 +++ pubspec.yaml | 8 ++++---- 5 files changed, 45 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3cf91f9..012fab2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## 4.0.1 + +### Fixed + +* Improved rendering performance of Mapbox Map view especially when pinch zooming. + +### Changed + +* Updated Mapsindoors SDKs: + * iOS to 4.8.0 + + ## 4.0.0 See the [migration guide](https://docs.mapsindoors.com/sdks-and-frameworks/flutter/migration-guide). diff --git a/README.md b/README.md index 6949cfd..4514f68 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ This plugin is based on the MapsIndoors V4 SDK for Android and iOS. Add MapsIndoors to your `pubspec.yaml`. ```yaml -mapsindoors_mapbox: ^4.0.0 +mapsindoors_mapbox: ^4.0.1 ``` ### Android diff --git a/lib/core/mapsindoors_widget.dart b/lib/core/mapsindoors_widget.dart index afb5e15..81b1edd 100644 --- a/lib/core/mapsindoors_widget.dart +++ b/lib/core/mapsindoors_widget.dart @@ -414,17 +414,35 @@ class _MapsIndoorsState extends State { } else if (Platform.isIOS) { MapcontrolPlatform.instance.setFloorSelector(floorSelector, false); } - final StatefulWidget ret; + final StatefulWidget miView; if (Platform.isAndroid) { - ret = AndroidView( + miView = PlatformViewLink( viewType: viewType, - layoutDirection: TextDirection.ltr, - creationParams: creationParams, - creationParamsCodec: const StandardMessageCodec(), + surfaceFactory: (context, controller) { + return AndroidViewSurface( + controller: controller as AndroidViewController, + gestureRecognizers: const >{}, + hitTestBehavior: PlatformViewHitTestBehavior.opaque, + ); + }, + onCreatePlatformView: (params) { + return PlatformViewsService.initSurfaceAndroidView( + id: params.id, + viewType: viewType, + layoutDirection: TextDirection.ltr, + creationParams: creationParams, + creationParamsCodec: const StandardMessageCodec(), + onFocus: () { + params.onFocusChanged(true); + }, + ) + ..addOnPlatformViewCreatedListener(params.onPlatformViewCreated) + ..create(); + }, ); } else if (Platform.isIOS) { - ret = UiKitView( + miView = UiKitView( viewType: viewType, layoutDirection: TextDirection.ltr, creationParams: creationParams, @@ -438,7 +456,7 @@ class _MapsIndoorsState extends State { fit: FlexFit.tight, flex: 1, child: Stack(children: [ - ret, + miView, Align( alignment: widget.floorSelectorAlignment ?? Alignment.centerRight, child: floorSelector, diff --git a/lib/mapsindoors.dart b/lib/mapsindoors.dart index 2a5e48f..cb2182d 100644 --- a/lib/mapsindoors.dart +++ b/lib/mapsindoors.dart @@ -3,6 +3,9 @@ library mapsindoors; import 'dart:async'; import 'dart:convert'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/gestures.dart'; +import 'package:flutter/rendering.dart'; import 'package:flutter/services.dart'; import 'package:flutter/material.dart'; import 'dart:io' show Platform; diff --git a/pubspec.yaml b/pubspec.yaml index 0ea775e..73f8eb2 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: mapsindoors_mapbox description: A MapsIndoors flutter plugin using the Mapbox platform for Android and iOS app usage. -version: 4.0.0 +version: 4.0.1 repository: https://github.com/MapsPeople/mapsindoors_flutter_mapbox homepage: https://www.mapsindoors.com/ @@ -19,9 +19,9 @@ flutter: dependencies: flutter: sdk: flutter - mapsindoors_mapbox_android: ^4.0.0 - mapsindoors_mapbox_ios: ^4.0.0 - mapsindoors_platform_interface: ^4.0.0 + mapsindoors_mapbox_android: ^4.0.1 + mapsindoors_mapbox_ios: ^4.0.1 + mapsindoors_platform_interface: ^4.0.1 dev_dependencies: