fix(bugs):

fix(DeviceManagerScreen): show all devices when visibility=DELETED
fix(MapScreen): cannot delete polylines when closing SnackBar on iOS
This commit is contained in:
anhtunz
2025-04-28 09:44:26 +07:00
parent b75635a801
commit f80e234b1d
6 changed files with 32 additions and 28 deletions

View File

@@ -3,10 +3,11 @@ import 'dart:async';
import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:simple_ripple_animation/simple_ripple_animation.dart';
import 'package:sfm_app/feature/device_log/device_logs_model.dart';
import '../../../product/constant/image/image_constants.dart';
import '../../../product/shared/shared_line_chart.dart';
import '../../../product/shared/shared_curve.dart';
import '../../device_log/device_logs_model.dart';
import '../device_model.dart';
import '../../../product/base/bloc/base_bloc.dart';
import '../../../product/extension/context_extension.dart';

View File

@@ -117,12 +117,14 @@ class _MapScreenState extends State<MapScreen> with WidgetsBindingObserver {
clusterManager.updateMap();
},
polylines: {
Polyline(
polylineId: const PolylineId('router'),
points: polylinesSnapshot.data ?? [],
color: Colors.deepPurpleAccent,
width: 8,
),
if (polylinesSnapshot.data != null && polylinesSnapshot.data!.isNotEmpty) ... [
Polyline(
polylineId: const PolylineId('router'),
points: polylinesSnapshot.data!,
color: Colors.deepPurpleAccent,
width: 8,
),
]
},
style: mapThemeSnapshot.data,
);

View File

@@ -72,7 +72,7 @@ onTapMarker(
double.parse(device.settings!.latitude!),
double.parse(device.settings!.longitude!),
);
mapBloc.findTheWay(
await mapBloc.findTheWay(
context,
controller,
myLocation,

View File

@@ -16,13 +16,11 @@ showDirections(
MapBloc mapBloc,
String originalName,
String destinationLocation,
double devicelat,
double devicelng,
double deviceLat,
double deviceLng,
) {
TextEditingController originController =
TextEditingController(text: originalName);
TextEditingController destinationController =
TextEditingController(text: destinationLocation);
TextEditingController originController = TextEditingController(text: originalName);
TextEditingController destinationController = TextEditingController(text: destinationLocation);
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
backgroundColor: Theme.of(context).colorScheme.surface,
@@ -44,15 +42,14 @@ showDirections(
alignment: Alignment.centerRight,
child: IconButton.outlined(
onPressed: () async {
await mapBloc.updateCameraPosition(
controller,
devicelat,
devicelng,
13.0,
);
// List<LatLng> polylineCoordinates = [];
mapBloc.sinkPolylines.add([]);
markers.clear();
await mapBloc.updateCameraPosition(
controller,
deviceLat,
deviceLng,
13.0,
);
if (context.mounted) {
ScaffoldMessenger.of(context).hideCurrentSnackBar();
}
@@ -103,10 +100,9 @@ showDirections(
ScaffoldMessenger.of(context).hideCurrentSnackBar();
List<LatLng> polylineCoordinates = [];
mapBloc.sinkPolylines.add(polylineCoordinates);
MapsLauncher.launchCoordinates(devicelat, devicelng);
MapsLauncher.launchCoordinates(deviceLat, deviceLng);
},
icon: IconConstants.instance
.getMaterialIcon(Icons.near_me_rounded),
icon: IconConstants.instance.getMaterialIcon(Icons.near_me_rounded),
label: Text(
appLocalization(context).map_stream,
),

View File

@@ -52,7 +52,6 @@ showNearPlacesSideSheet(
padding: context.paddingLow,
width: screenWidth,
height: screenHeight / 3,
color: Colors.white,
child: Column(
mainAxisSize: MainAxisSize.min,
children: [