Skip to content
This repository was archived by the owner on Feb 22, 2023. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
fix no tile return value
  • Loading branch information
Chris Yang committed Jan 19, 2021
commit 03390c23e708a423e2a7d72636a90ca5df7b2688
Original file line number Diff line number Diff line change
Expand Up @@ -1131,60 +1131,60 @@ void main() {
},
);

// testWidgets(
// 'remove tileOverlays correctly',
// (WidgetTester tester) async {
// Completer<GoogleMapInspector> inspectorCompleter =
// Completer<GoogleMapInspector>();
// final Key key = GlobalKey();
// final TileOverlay tileOverlay1 = TileOverlay(
// tileOverlayId: TileOverlayId('tile_overlay_1'),
// tileProvider: _DebugTileProvider(),
// zIndex: 2,
// visible: true,
// transparency: 0.2,
// fadeIn: true,
// );

// await tester.pumpWidget(
// Directionality(
// textDirection: TextDirection.ltr,
// child: GoogleMap(
// key: key,
// initialCameraPosition: _kInitialCameraPosition,
// tileOverlays: <TileOverlay>{tileOverlay1},
// onMapCreated: (GoogleMapController controller) {
// final GoogleMapInspector inspector =
// // ignore: invalid_use_of_visible_for_testing_member
// GoogleMapInspector(controller.channel);
// inspectorCompleter.complete(inspector);
// },
// ),
// ),
// );

// final GoogleMapInspector inspector = await inspectorCompleter.future;

// await tester.pumpWidget(
// Directionality(
// textDirection: TextDirection.ltr,
// child: GoogleMap(
// key: key,
// initialCameraPosition: _kInitialCameraPosition,
// onMapCreated: (GoogleMapController controller) {
// fail('OnMapCreated should get called only once.');
// },
// ),
// ),
// );

// await tester.pumpAndSettle(const Duration(seconds: 3));
// Map<String, dynamic> tileOverlayInfo1 =
// await inspector.getTileOverlayInfo('tile_overlay_1');

// expect(tileOverlayInfo1, isNull);
// },
// );
testWidgets(
'remove tileOverlays correctly',
(WidgetTester tester) async {
Completer<GoogleMapInspector> inspectorCompleter =
Completer<GoogleMapInspector>();
final Key key = GlobalKey();
final TileOverlay tileOverlay1 = TileOverlay(
tileOverlayId: TileOverlayId('tile_overlay_1'),
tileProvider: _DebugTileProvider(),
zIndex: 2,
visible: true,
transparency: 0.2,
fadeIn: true,
);

await tester.pumpWidget(
Directionality(
textDirection: TextDirection.ltr,
child: GoogleMap(
key: key,
initialCameraPosition: _kInitialCameraPosition,
tileOverlays: <TileOverlay>{tileOverlay1},
onMapCreated: (GoogleMapController controller) {
final GoogleMapInspector inspector =
// ignore: invalid_use_of_visible_for_testing_member
GoogleMapInspector(controller.channel);
inspectorCompleter.complete(inspector);
},
),
),
);

final GoogleMapInspector inspector = await inspectorCompleter.future;

await tester.pumpWidget(
Directionality(
textDirection: TextDirection.ltr,
child: GoogleMap(
key: key,
initialCameraPosition: _kInitialCameraPosition,
onMapCreated: (GoogleMapController controller) {
fail('OnMapCreated should get called only once.');
},
),
),
);

await tester.pumpAndSettle(const Duration(seconds: 3));
Map<String, dynamic> tileOverlayInfo1 =
await inspector.getTileOverlayInfo('tile_overlay_1');

expect(tileOverlayInfo1, isNull);
},
);
}

class _DebugTileProvider implements TileProvider {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,15 +87,15 @@ class TileOverlayBodyState extends State<TileOverlayBody> {
),
),
),
FlatButton(
TextButton(
child: const Text('Add tile overlay'),
onPressed: _addTileOverlay,
),
FlatButton(
TextButton(
child: const Text('Remove tile overlay'),
onPressed: _removeTileOverlay,
),
FlatButton(
TextButton(
child: const Text('Clear tile cache'),
onPressed: _clearTileCache,
),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,11 @@ - (void)requestTileForX:(NSUInteger)x
UIImage* tileImage;
if ([result isKindOfClass:[NSDictionary class]]) {
FlutterStandardTypedData* typedData = (FlutterStandardTypedData*)result[@"data"];
tileImage = [UIImage imageWithData:typedData.data];
if (typedData == nil) {
tileImage = kGMSTileLayerNoTile;
} else {
tileImage = [UIImage imageWithData:typedData.data];
}
} else {
if ([result isKindOfClass:[FlutterError class]]) {
FlutterError* error = (FlutterError*)result;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -396,15 +396,15 @@ class _GoogleMapState extends State<GoogleMap> {

// Returns the [Tile] from an added [TileOverlay].
//
// If the TileOverlay or his TileProvider is not found,
// If the TileOverlay or its TileProvider is not found,
// a [TileProvider.noTile] is returned.
Future<Tile> _onGetTile(
String tileOverlayIdRaw, int x, int y, int zoom) async {
assert(tileOverlayIdRaw != null);
final TileOverlayId tileOverlayId = TileOverlayId(tileOverlayIdRaw);
final TileOverlay tileOverlay = _tileOverlays[tileOverlayId];
if (tileOverlay == null || tileOverlay.tileProvider == null) {
return null;
return TileProvider.noTile;
}
return await tileOverlay.tileProvider.getTile(x, y, zoom);
}
Expand Down