Skip to content

Commit e98d48c

Browse files
Copilot0xZOne
andcommitted
Fix Flutter embedding v2 API compatibility in example app
Co-authored-by: 0xZOne <[email protected]>
1 parent 6208e5b commit e98d48c

File tree

2 files changed

+28
-6
lines changed

2 files changed

+28
-6
lines changed
Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,18 @@
11
package com.idlefish.flutterboost.example;
22

3-
import io.flutter.plugin.common.PluginRegistry;
3+
import androidx.annotation.NonNull;
4+
import io.flutter.embedding.engine.plugins.FlutterPlugin;
45
import io.flutter.plugin.common.StandardMessageCodec;
56

6-
public class TextPlatformViewPlugin {
7-
public static void register(PluginRegistry.Registrar registrar) {
8-
registrar.platformViewRegistry().registerViewFactory("plugins.test/view",
7+
public class TextPlatformViewPlugin implements FlutterPlugin {
8+
@Override
9+
public void onAttachedToEngine(@NonNull FlutterPluginBinding binding) {
10+
binding.getPlatformViewRegistry().registerViewFactory("plugins.test/view",
911
new TextPlatformViewFactory(StandardMessageCodec.INSTANCE));
1012
}
13+
14+
@Override
15+
public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) {
16+
// No cleanup needed
17+
}
1118
}

example/android/app/src/main/java/io/flutter/embedding/android/LifecycleView.java

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,21 @@
1616

1717
import io.flutter.embedding.engine.FlutterEngine;
1818
import io.flutter.embedding.engine.FlutterShellArgs;
19+
import io.flutter.embedding.engine.loader.FlutterLoader;
1920
import io.flutter.plugin.platform.PlatformPlugin;
20-
import io.flutter.view.FlutterMain;
2121
import java.util.List;
2222

2323
public class LifecycleView extends FrameLayout implements LifecycleOwner, FlutterActivityAndFragmentDelegate.Host {
24+
25+
@NonNull
26+
@Override
27+
public OnBackInvokedDispatcher getBackCallbackState() {
28+
// Return the activity's back callback state
29+
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.TIRAMISU) {
30+
return mActivty.getOnBackInvokedDispatcher();
31+
}
32+
return null;
33+
}
2434
protected static final String ARG_DART_ENTRYPOINT = "dart_entrypoint";
2535
protected static final String ARG_INITIAL_ROUTE = "initial_route";
2636
protected static final String ARG_APP_BUNDLE_PATH = "app_bundle_path";
@@ -150,7 +160,12 @@ public String getDartEntrypointFunctionName() {
150160

151161
@NonNull
152162
public String getAppBundlePath() {
153-
return getArguments().getString(ARG_APP_BUNDLE_PATH, FlutterMain.findAppBundlePath());
163+
String bundlePath = getArguments().getString(ARG_APP_BUNDLE_PATH, null);
164+
if (bundlePath == null) {
165+
FlutterLoader loader = FlutterLoader.getInstance();
166+
bundlePath = loader.findAppBundlePath();
167+
}
168+
return bundlePath;
154169
}
155170

156171
@Nullable

0 commit comments

Comments
 (0)