# 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/e2e/*                                @collinjackson @digiter
packages/espresso/*                           @collinjackson @adazh
packages/google_maps_flutter/*                @cyanglaz
packages/google_sign_in/*                     @cyanglaz @mehmetf
packages/image_picker/*                       @cyanglaz
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
