# Below is a list of Flutter team members who are suggested reviewers
# for contributions to packages in this repository.
#
# These names are just suggestions. It is fine to have your changes
# reviewed by someone else.

packages/animations/**                                   @goderbauer
packages/camera/**                                       @bparrishMines
packages/cross_file/**                                   @ditman
packages/css_colors/**                                   @stuartmorgan
packages/dynamic_layouts/**                              @Piinks
packages/extension_google_sign_in_as_googleapis_auth/**  @ditman
packages/file_selector/**                                @stuartmorgan
packages/flutter_adaptive_scaffold/**                    @gspencergoog
packages/flutter_image/**                                @stuartmorgan
packages/flutter_lints/**                                @goderbauer
packages/flutter_markdown/**                             @domesticmouse
packages/flutter_migrate/**                              @stuartmorgan
packages/flutter_template_images/**                      @stuartmorgan
packages/go_router/**                                    @chunhtai
packages/go_router_builder/**                            @chunhtai
packages/google_identity_services_web/**                 @ditman
packages/google_maps_flutter/**                          @stuartmorgan
packages/google_sign_in/**                               @stuartmorgan
packages/image_picker/**                                 @tarrinneal
packages/interactive_media_ads/**                        @bparrishMines
packages/in_app_purchase/**                              @bparrishMines
packages/local_auth/**                                   @stuartmorgan
packages/metrics_center/**                               @keyonghan
packages/multicast_dns/**                                @jmagman
packages/palette_generator/**                            @gspencergoog
packages/path_provider/**                                @stuartmorgan
packages/pigeon/**                                       @tarrinneal
packages/platform/**                                     @stuartmorgan
packages/plugin_platform_interface/**                    @stuartmorgan
packages/pointer_interceptor/**                          @ditman
packages/process/**                                      @stuartmorgan
packages/quick_actions/**                                @bparrishMines
packages/rfw/**                                          @Hixie
packages/shared_preferences/**                           @tarrinneal
packages/standard_message_codec/**                       @jonahwilliams
packages/two_dimensional_scrollables/**                  @Piinks
packages/url_launcher/**                                 @stuartmorgan
packages/video_player/**                                 @tarrinneal
packages/web_benchmarks/**                               @yjbanov
packages/webview_flutter/**                              @bparrishMines
packages/xdg_directories/**                              @stuartmorgan
third_party/packages/cupertino_icons/**                  @MitchellGoodwin

# Plugin platform implementation rules. These should stay last, since the last
# matching entry takes precedence.

# - Web
packages/camera/camera_web/**                            @ditman
packages/file_selector/file_selector_web/**              @ditman
packages/google_maps_flutter/google_maps_flutter_web/**  @ditman
packages/google_sign_in/google_sign_in_web/**            @ditman
packages/image_picker/image_picker_for_web/**            @ditman
packages/pointer_interceptor/pointer_interceptor_web/**  @ditman
packages/shared_preferences/shared_preferences_web/**    @ditman
packages/url_launcher/url_launcher_web/**                @ditman
packages/video_player/video_player_web/**                @ditman
packages/webview_flutter/webview_flutter_web/**          @ditman

# - Android
packages/camera/camera_android/**                        @camsim99
packages/camera/camera_android_camerax/**                @camsim99
packages/espresso/**                                     @reidbaker
packages/file_selector/file_selector_android/**          @gmackall
packages/flutter_plugin_android_lifecycle/**             @reidbaker
packages/google_maps_flutter/google_maps_flutter_android/**  @reidbaker
packages/google_sign_in/google_sign_in_android/**        @camsim99
packages/image_picker/image_picker_android/**            @gmackall
packages/in_app_purchase/in_app_purchase_android/**      @gmackall
packages/local_auth/local_auth_android/**                @camsim99
packages/path_provider/path_provider_android/**          @camsim99
packages/quick_actions/quick_actions_android/**          @camsim99
packages/shared_preferences/shared_preferences_android/**  @reidbaker
packages/url_launcher/url_launcher_android/**            @gmackall
packages/video_player/video_player_android/**            @camsim99
# Owned by ecosystem team for now during the wrapper evaluation.
packages/webview_flutter/webview_flutter_android/**      @bparrishMines

# - Darwin
packages/camera/camera_avfoundation/**                   @hellohuanlin
packages/file_selector/file_selector_ios/**              @jmagman
packages/file_selector/file_selector_macos/**            @jmagman
packages/google_maps_flutter/google_maps_flutter_ios/**  @cbracken
packages/google_sign_in/google_sign_in_ios/**            @vashworth @loic-sharma
packages/image_picker/image_picker_ios/**                @vashworth @loic-sharma
packages/image_picker/image_picker_macos/**              @jmagman
packages/in_app_purchase/in_app_purchase_storekit/**     @louisehsu
packages/ios_platform_images/**                          @jmagman
packages/local_auth/local_auth_darwin/**                 @louisehsu
packages/path_provider/path_provider_foundation/**       @jmagman
packages/pigeon/**/ios/**/*                              @hellohuanlin @louisehsu
packages/pointer_interceptor/pointer_interceptor_ios/**  @louisehsu
packages/quick_actions/quick_actions_ios/**              @jmagman
packages/shared_preferences/shared_preferences_foundation/**  @tarrinneal
packages/url_launcher/url_launcher_ios/**                @jmagman
packages/url_launcher/url_launcher_macos/**              @jmagman
packages/video_player/video_player_avfoundation/**       @hellohuanlin
packages/webview_flutter/webview_flutter_wkwebview/**    @cbracken

# - Linux
packages/file_selector/file_selector_linux/**            @cbracken
packages/image_picker/image_picker_linux/**              @cbracken
packages/path_provider/path_provider_linux/**            @cbracken
packages/shared_preferences/shared_preferences_linux/**  @cbracken
packages/url_launcher/url_launcher_linux/**              @cbracken

# - Windows
packages/camera/camera_windows/**                        @cbracken
packages/file_selector/file_selector_windows/**          @cbracken
packages/image_picker/image_picker_windows/**            @cbracken
packages/local_auth/local_auth_windows/**                @cbracken
packages/path_provider/path_provider_windows/**          @cbracken
packages/shared_preferences/shared_preferences_windows/** @cbracken
packages/url_launcher/url_launcher_windows/**            @cbracken
