Add DynamicFeature system channel (#71879)
diff --git a/packages/flutter/lib/src/services/system_channels.dart b/packages/flutter/lib/src/services/system_channels.dart
index c75bc40..ef0f063 100644
--- a/packages/flutter/lib/src/services/system_channels.dart
+++ b/packages/flutter/lib/src/services/system_channels.dart
@@ -318,4 +318,30 @@
'flutter/restoration',
StandardMethodCodec(),
);
+
+ /// A [MethodChannel] for installing and managing dynamic features.
+ ///
+ /// The following outgoing methods are defined for this channel (invoked using
+ /// [OptionalMethodChannel.invokeMethod]):
+ ///
+ /// * `installDynamicFeature`: Requests that a dynamic feature identified by
+ /// the provided loadingUnitId or moduleName be downloaded and installed.
+ /// Providing a loadingUnitId with null moduleName will install a dynamic
+ /// feature module that includes the desired loading unit. If a moduleName
+ /// is provided, then the dynamic feature with the moduleName will be installed.
+ /// This method returns a future that will not be completed until the
+ /// feature is fully installed and ready to use. When an error occurs, the
+ /// future will complete an error. Calling `loadLibrary()` on a deferred
+ /// imported library is equivalent to calling this method with a
+ /// loadingUnitId and null moduleName.
+ /// * `getDynamicFeatureInstallState`: Gets the current installation state of
+ /// the dynamic feature identified by the loadingUnitId or moduleName.
+ /// This method returns a string that represents the state. Depending on
+ /// the implementation, this string may vary, but the default Google Play
+ /// Store implementation beings in the "Requested" state before transitioning
+ /// into the "Downloading" and finally the "Installed" state.
+ static const MethodChannel dynamicfeature = OptionalMethodChannel(
+ 'flutter/dynamicfeature',
+ StandardMethodCodec(),
+ );
}