[share] Migrate to null-safety (#3311)

diff --git a/packages/share/CHANGELOG.md b/packages/share/CHANGELOG.md
index 8a38062..86906bb 100644
--- a/packages/share/CHANGELOG.md
+++ b/packages/share/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 2.0.0-nullsafety
+
+* Migrate to null safety.
+
 ## 0.6.5+5
 
 * Update Flutter SDK constraint.
diff --git a/packages/share/lib/share.dart b/packages/share/lib/share.dart
index 4a3ff6f..f155667 100644
--- a/packages/share/lib/share.dart
+++ b/packages/share/lib/share.dart
@@ -33,8 +33,8 @@
   /// from [MethodChannel].
   static Future<void> share(
     String text, {
-    String subject,
-    Rect sharePositionOrigin,
+    String? subject,
+    Rect? sharePositionOrigin,
   }) {
     assert(text != null);
     assert(text.isNotEmpty);
@@ -67,10 +67,10 @@
   /// from [MethodChannel].
   static Future<void> shareFiles(
     List<String> paths, {
-    List<String> mimeTypes,
-    String subject,
-    String text,
-    Rect sharePositionOrigin,
+    List<String>? mimeTypes,
+    String? subject,
+    String? text,
+    Rect? sharePositionOrigin,
   }) {
     assert(paths != null);
     assert(paths.isNotEmpty);
diff --git a/packages/share/pubspec.yaml b/packages/share/pubspec.yaml
index 23644d2..69d0fdb 100644
--- a/packages/share/pubspec.yaml
+++ b/packages/share/pubspec.yaml
@@ -2,10 +2,7 @@
 description: Flutter plugin for sharing content via the platform share UI, using
   the ACTION_SEND intent on Android and UIActivityViewController on iOS.
 homepage: https://github.com/flutter/plugins/tree/master/packages/share
-# 0.6.y+z is compatible with 1.0.0, if you land a breaking change bump
-# the version to 2.0.0.
-# See more details: https://github.com/flutter/flutter/wiki/Package-migration-to-1.0.0
-version: 0.6.5+5
+version: 2.0.0-nullsafety
 
 flutter:
   plugin:
@@ -17,20 +14,20 @@
         pluginClass: FLTSharePlugin
 
 dependencies:
-  meta: ^1.0.5
-  mime: ^0.9.7
+  meta: ^1.3.0-nullsafety.6
+  mime: ^1.0.0-nullsafety.0
   flutter:
     sdk: flutter
 
 dev_dependencies:
-  test: ^1.3.0
-  mockito: ^3.0.0
+  test: ^1.16.0-nullsafety.13
+  mockito: ^4.1.3
   flutter_test:
     sdk: flutter
   integration_test:
     path: ../integration_test
-  pedantic: ^1.8.0
+  pedantic: ^1.10.0-nullsafety.3
 
 environment:
-  sdk: ">=2.1.0 <3.0.0"
   flutter: ">=1.12.13+hotfix.5"
+  sdk: ">=2.12.0-0 <3.0.0"
diff --git a/packages/share/test/share_test.dart b/packages/share/test/share_test.dart
index e862d1b..fa9f980 100644
--- a/packages/share/test/share_test.dart
+++ b/packages/share/test/share_test.dart
@@ -15,7 +15,7 @@
 void main() {
   TestWidgetsFlutterBinding.ensureInitialized();
 
-  MockMethodChannel mockChannel;
+  late MockMethodChannel mockChannel;
 
   setUp(() {
     mockChannel = MockMethodChannel();
@@ -26,14 +26,6 @@
     });
   });
 
-  test('sharing null fails', () {
-    expect(
-      () => Share.share(null),
-      throwsA(const TypeMatcher<AssertionError>()),
-    );
-    verifyZeroInteractions(mockChannel);
-  });
-
   test('sharing empty fails', () {
     expect(
       () => Share.share(''),
@@ -58,14 +50,6 @@
     }));
   });
 
-  test('sharing null file fails', () {
-    expect(
-      () => Share.shareFiles([null]),
-      throwsA(const TypeMatcher<AssertionError>()),
-    );
-    verifyZeroInteractions(mockChannel);
-  });
-
   test('sharing empty file fails', () {
     expect(
       () => Share.shareFiles(['']),
diff --git a/script/nnbd_plugins.sh b/script/nnbd_plugins.sh
index 6e08c72..5e671c2 100644
--- a/script/nnbd_plugins.sh
+++ b/script/nnbd_plugins.sh
@@ -13,6 +13,7 @@
   "local_auth"
   "path_provider"
   "plugin_platform_interface"
+  "share"
   "url_launcher"
   "video_player"
   "webview_flutter"