Skip to content
2 changes: 2 additions & 0 deletions src/content/release/breaking-changes/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,12 +59,14 @@ They're sorted by release and listed in alphabetical order:
<a id="released-in-flutter-329" aria-hidden="true"></a>
### Released in Flutter 3.29

* [Removal of v1 Android embedding Java APIs][]
* [Deprecate `WebGoldenComparator`][]
* [Deprecate `ThemeData.dialogBackgroundColor` in favor of `DialogThemeData.backgroundColor`][]
* [`ImageFilter.blur` default tile mode automatic selection][]
* [Updated Material 3 `Slider`][]
* [Updated Material 3 progress indicators][]

[Removal of v1 Android embedding Java APIs]: /release/breaking-changes/v1-android-embedding
[Deprecate `WebGoldenComparator`]: /release/breaking-changes/web-golden-comparator
[Deprecate `ThemeData.dialogBackgroundColor` in favor of `DialogThemeData.backgroundColor`]: /release/breaking-changes/deprecate-themedata-dialogbackgroundcolor
[`ImageFilter.blur` default tile mode automatic selection]: /release/breaking-changes/image-filter-blur-tilemode
Expand Down
77 changes: 77 additions & 0 deletions src/content/release/breaking-changes/v1-android-embedding.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
---
title: Removal of v1 Android embedding Java APIs
description: >-
Learn how to account for the removal of the Android v1 embedding APIs.
---

## Summary

Android's v1 embedding has been removed in Flutter 3.29.0.
This follows the deprecation described in
[Android v1 embedding app and plugin creation deprecation][].
The following is a full list of classes removed.

```text
io.flutter.app.FlutterActivity
io.flutter.app.FlutterActivityDelegate
io.flutter.app.FlutterActivityEvents
io.flutter.app.FlutterApplication
io.flutter.app.FlutterFragmentActivity
io.flutter.app.FlutterPlayStoreSplitApplication
io.flutter.app.FlutterPluginRegistry

io.flutter.embedding.engine.plugins.shim.ShimPluginRegistry
io.flutter.embedding.engine.plugins.shim.ShimRegistrar

io.flutter.view.FlutterMain
io.flutter.view.FlutterNativeView
io.flutter.view.FlutterView
```

If your project references any of the above classes, consult the following
list for instructions on migration.

* `io.flutter.app.FlutterActivity` was
replaced with `io.flutter.embedding.android.FlutterActivity`.
* `io.flutter.app.FlutterActivityDelegate` was
replaced with `io.flutter.embedding.android.FlutterActivityAndFragmentDelegate`.
* `io.flutter.app.FlutterActivityEvents` was removed.
* `io.flutter.app.FlutterApplication` was removed.
Flutter projects with custom `Application` implementations should
instead extend the base `android.app.Application`.
* `io.flutter.app.FlutterFragmentActivity` was
replaced with `io.flutter.embedding.android.FlutterFragmentActivity`.
* `io.flutter.app.FlutterPlayStoreSplitApplication` was
replaced with `io.flutter.embedding.android.FlutterPlayStoreSplitApplication`.
* `io.flutter.app.FlutterPluginRegistry` was removed,
as it only served to let plugins support apps using the v1 embedding.
* `io.flutter.embedding.engine.plugins.shim.ShimPluginRegistry` was removed,
as it only served to support let plugins support apps using the v1 embedding.
* `io.flutter.embedding.engine.plugins.shim.ShimRegistrar` was removed,
as it only served to support let plugins support apps using the v1 embedding.
* `io.flutter.view.FlutterMain` was
replaced by `io.flutter.embedding.engine.loader.FlutterLoader`.
* `io.flutter.view.FlutterNativeView` was
replaced by `io.flutter.embedding.android.FlutterView`.
* `io.flutter.view.FlutterView` was
replaced by `io.flutter.embedding.android.FlutterView`.

[Android v1 embedding app and plugin creation deprecation]: /release/breaking-changes/android-v1-embedding-create-deprecation

## Plugin authors

Plugins should remove the `registerWith` method from
their `FlutterPlugin` interface implementation:

```java
public static void registerWith(@NonNull io.flutter.plugin.common.PluginRegistry.Registrar registrar);
```

For an example of this migration,
check out the pull request to remove this method from the
Flutter team-owned plugins: https://github.com/flutter/packages/pull/6494.

## Timeline

Landed in version: 3.28.0-0.1.pre<br>
In stable release: 3.29