Skip to content
This repository was archived by the owner on Feb 22, 2023. It is now read-only.

Commit edc6c0e

Browse files
[google_maps_flutter] Federate mobile implementations (#6171)
1 parent 43110c2 commit edc6c0e

206 files changed

Lines changed: 13351 additions & 119 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/dependabot.yml

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,15 +57,23 @@ updates:
5757
open-pull-requests-limit: 10
5858

5959
- package-ecosystem: "gradle"
60-
directory: "/packages/google_maps_flutter/google_maps_flutter/android"
60+
directory: "/packages/google_maps_flutter/google_maps_flutter/example/android/app"
6161
commit-message:
6262
prefix: "[google_maps]"
6363
schedule:
6464
interval: "weekly"
6565
open-pull-requests-limit: 10
6666

6767
- package-ecosystem: "gradle"
68-
directory: "/packages/google_maps_flutter/google_maps_flutter/example/android/app"
68+
directory: "/packages/google_maps_flutter/google_maps_flutter_android/android"
69+
commit-message:
70+
prefix: "[google_maps]"
71+
schedule:
72+
interval: "weekly"
73+
open-pull-requests-limit: 10
74+
75+
- package-ecosystem: "gradle"
76+
directory: "/packages/google_maps_flutter/google_maps_flutter_android/example/android/app"
6977
commit-message:
7078
prefix: "[google_maps]"
7179
schedule:

CODEOWNERS

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ packages/**/*_web/** @ditman
3030
packages/camera/camera_android/** @camsim99
3131
packages/espresso/** @GaryQian
3232
packages/flutter_plugin_android_lifecycle/** @GaryQian
33-
packages/google_maps_flutter/google_maps_flutter/android/** @GaryQian
33+
packages/google_maps_flutter/google_maps_flutter_android/** @GaryQian
3434
packages/google_sign_in/google_sign_in_android/** @camsim99
3535
packages/image_picker/image_picker_android/** @GaryQian
3636
packages/in_app_purchase/in_app_purchase_android/** @GaryQian
@@ -42,7 +42,7 @@ packages/video_player/video_player_android/** @camsim99
4242

4343
# - iOS
4444
packages/camera/camera_avfoundation/** @hellohuanlin
45-
packages/google_maps_flutter/google_maps_flutter/ios/** @cyanglaz
45+
packages/google_maps_flutter/google_maps_flutter_ios/** @cyanglaz
4646
packages/google_sign_in/google_sign_in_ios/** @jmagman
4747
packages/image_picker/image_picker_ios/** @cyanglaz
4848
packages/in_app_purchase/in_app_purchase_storekit/** @cyanglaz

packages/google_maps_flutter/google_maps_flutter/CHANGELOG.md

Lines changed: 4 additions & 0 deletions

packages/google_maps_flutter/google_maps_flutter/android/settings.gradle

Lines changed: 0 additions & 1 deletion
This file was deleted.

packages/google_maps_flutter/google_maps_flutter/example/integration_test/google_maps_test.dart

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,25 +13,14 @@ import 'package:google_maps_flutter/google_maps_flutter.dart';
1313
import 'package:google_maps_flutter_platform_interface/google_maps_flutter_platform_interface.dart';
1414
import 'package:integration_test/integration_test.dart';
1515

16-
import 'google_map_inspector.dart';
17-
1816
const LatLng _kInitialMapCenter = LatLng(0, 0);
1917
const double _kInitialZoomLevel = 5;
2018
const CameraPosition _kInitialCameraPosition =
2119
CameraPosition(target: _kInitialMapCenter, zoom: _kInitialZoomLevel);
2220

2321
void main() {
2422
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
25-
26-
// TODO(stuartmorgan): Remove this once mobile implementations are federated
27-
// and registering their own inpector implementations, and just call
28-
// enableDebugInspection.
29-
if (GoogleMapsFlutterPlatform.instance is MethodChannelGoogleMapsFlutter) {
30-
GoogleMapsInspectorPlatform.instance = MethodChannelGoogleMapsInspector(
31-
GoogleMapsFlutterPlatform.instance as MethodChannelGoogleMapsFlutter);
32-
} else {
33-
GoogleMapsFlutterPlatform.instance.enableDebugInspection();
34-
}
23+
GoogleMapsFlutterPlatform.instance.enableDebugInspection();
3524

3625
testWidgets('testCompassToggle', (WidgetTester tester) async {
3726
final Key key = GlobalKey();
@@ -474,7 +463,6 @@ void main() {
474463
.round());
475464
}
476465
await tester.binding.setSurfaceSize(null);
477-
AndroidGoogleMapsFlutter.useAndroidViewSurface = false;
478466
});
479467

480468
testWidgets('testGetVisibleRegion', (WidgetTester tester) async {

packages/google_maps_flutter/google_maps_flutter/example/ios/Podfile

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,6 @@ flutter_ios_podfile_setup
2929

3030
target 'Runner' do
3131
flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
32-
target 'RunnerTests' do
33-
inherit! :search_paths
34-
35-
pod 'OCMock', '~> 3.9.1'
36-
end
37-
target 'RunnerUITests' do
38-
inherit! :search_paths
39-
end
4032
end
4133

4234
post_install do |installer|

packages/google_maps_flutter/google_maps_flutter/lib/google_maps_flutter.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import 'dart:typed_data';
1313
import 'package:flutter/foundation.dart';
1414
import 'package:flutter/gestures.dart';
1515
import 'package:flutter/material.dart';
16+
import 'package:google_maps_flutter_android/google_maps_flutter_android.dart';
1617
import 'package:google_maps_flutter_platform_interface/google_maps_flutter_platform_interface.dart';
1718

1819
export 'package:google_maps_flutter_platform_interface/google_maps_flutter_platform_interface.dart'

packages/google_maps_flutter/google_maps_flutter/lib/src/google_map.dart

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ class UnknownMapObjectIdError extends Error {
4040
}
4141

4242
/// Android specific settings for [GoogleMap].
43+
// TODO(stuartmorgan): Deprecate this in favor of pointing people who want to
44+
// change this to using the Android implementation Dart class directly. This
45+
// should be done as part of switching the default to hybrid composition.
4346
class AndroidGoogleMapsFlutter {
4447
AndroidGoogleMapsFlutter._();
4548

@@ -55,7 +58,7 @@ class AndroidGoogleMapsFlutter {
5558
static bool get useAndroidViewSurface {
5659
final GoogleMapsFlutterPlatform platform =
5760
GoogleMapsFlutterPlatform.instance;
58-
if (platform is MethodChannelGoogleMapsFlutter) {
61+
if (platform is GoogleMapsFlutterAndroid) {
5962
return platform.useAndroidViewSurface;
6063
}
6164
return false;
@@ -73,7 +76,7 @@ class AndroidGoogleMapsFlutter {
7376
static set useAndroidViewSurface(bool useAndroidViewSurface) {
7477
final GoogleMapsFlutterPlatform platform =
7578
GoogleMapsFlutterPlatform.instance;
76-
if (platform is MethodChannelGoogleMapsFlutter) {
79+
if (platform is GoogleMapsFlutterAndroid) {
7780
platform.useAndroidViewSurface = useAndroidViewSurface;
7881
}
7982
}

packages/google_maps_flutter/google_maps_flutter/pubspec.yaml

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ description: A Flutter plugin for integrating Google Maps in iOS and Android app
33
repository: https://github.com/flutter/plugins/tree/main/packages/google_maps_flutter/google_maps_flutter
44
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+maps%22
55
version: 2.1.10
6+
# Temporarily disable publishing to allow moving Android and iOS
7+
# implementations.
8+
publish_to: none
69

710
environment:
811
sdk: ">=2.14.0 <3.0.0"
@@ -12,15 +15,18 @@ flutter:
1215
plugin:
1316
platforms:
1417
android:
15-
package: io.flutter.plugins.googlemaps
16-
pluginClass: GoogleMapsPlugin
18+
default_package: google_maps_flutter_android
1719
ios:
18-
pluginClass: FLTGoogleMapsPlugin
20+
default_package: google_maps_flutter_ios
1921

2022
dependencies:
2123
flutter:
2224
sdk: flutter
23-
flutter_plugin_android_lifecycle: ^2.0.1
25+
# Temporary path dependencies to allow moving Android and iOS implementations.
26+
google_maps_flutter_android:
27+
path: ../google_maps_flutter_android
28+
google_maps_flutter_ios:
29+
path: ../google_maps_flutter_ios
2430
google_maps_flutter_platform_interface: ^2.2.1
2531

2632
dev_dependencies:

packages/google_maps_flutter/google_maps_flutter/test/google_map_test.dart

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import 'package:flutter/services.dart';
66
import 'package:flutter/widgets.dart';
77
import 'package:flutter_test/flutter_test.dart';
88
import 'package:google_maps_flutter/google_maps_flutter.dart';
9-
import 'package:google_maps_flutter_platform_interface/google_maps_flutter_platform_interface.dart';
109

1110
import 'fake_maps_controllers.dart';
1211

@@ -588,38 +587,4 @@ void main() {
588587

589588
expect(platformGoogleMap.buildingsEnabled, true);
590589
});
591-
592-
testWidgets(
593-
'Default Android widget is AndroidView',
594-
(WidgetTester tester) async {
595-
await tester.pumpWidget(
596-
const Directionality(
597-
textDirection: TextDirection.ltr,
598-
child: GoogleMap(
599-
initialCameraPosition: CameraPosition(target: LatLng(10.0, 15.0)),
600-
),
601-
),
602-
);
603-
604-
expect(find.byType(AndroidView), findsOneWidget);
605-
},
606-
);
607-
608-
testWidgets('Use PlatformViewLink on Android', (WidgetTester tester) async {
609-
final MethodChannelGoogleMapsFlutter platform =
610-
GoogleMapsFlutterPlatform.instance as MethodChannelGoogleMapsFlutter;
611-
platform.useAndroidViewSurface = true;
612-
613-
await tester.pumpWidget(
614-
const Directionality(
615-
textDirection: TextDirection.ltr,
616-
child: GoogleMap(
617-
initialCameraPosition: CameraPosition(target: LatLng(10.0, 15.0)),
618-
),
619-
),
620-
);
621-
622-
expect(find.byType(PlatformViewLink), findsOneWidget);
623-
platform.useAndroidViewSurface = false;
624-
});
625590
}

0 commit comments

Comments
 (0)