# 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/*                            @amirh @matthew-carroll
packages/camera/*                             @bparrishMines
packages/connectivity/*                       @cyanglaz @matthew-carroll
packages/device_info/*                        @matthew-carroll
packages/espresso/*                           @collinjackson @adazh
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
packages/webview_flutter/*                    @amirh
