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

packages/android_alarm_manager/**              @bkonyi
packages/android_intent/**                     @mklim @matthew-carroll
packages/battery/**                            @matthew-carroll
packages/camera/**                             @bparrishMines
packages/connectivity/**                       @cyanglaz @matthew-carroll
packages/cross_file/**                         @ditman @mvanbeusekom
packages/device_info/**                        @matthew-carroll
packages/espresso/**                           @collinjackson @adazh
packages/file_selector/**                      @ditman
packages/google_maps_flutter/**                @cyanglaz
packages/google_sign_in/**                     @cyanglaz @mehmetf
packages/image_picker/**                       @cyanglaz
packages/integration_test/**                   @dnfield
packages/in_app_purchase/**                    @mklim @cyanglaz @LHLL
packages/ios_platform_images/**                @gaaclarke
packages/package_info/**                       @cyanglaz @matthew-carroll
packages/path_provider/**                      @matthew-carroll
packages/shared_preferences/**                 @matthew-carroll
packages/url_launcher/**                       @mklim
packages/video_player/**                       @iskakaushik @cyanglaz
