remove debug mode delay on Android

This commit is contained in:
Nick Fisher
2023-10-17 18:24:39 +08:00
parent 3640e27324
commit 7f7eb89a45
3 changed files with 7 additions and 13 deletions

View File

@@ -95,7 +95,7 @@ abstract class FilamentController {
/// 5) The FilamentWidget will replace the empty Container with a Texture widget
/// If you need to wait until a FilamentViewer has been created, listen to the [viewer] stream.
///
void createViewer(int width, int height);
Future createViewer(int width, int height);
///
/// Resize the viewport & backing texture.

View File

@@ -112,7 +112,8 @@ class FilamentControllerFFI extends FilamentController {
///
/// Called by `FilamentWidget`. You do not need to call this yourself.
///
void createViewer(int width, int height) async {
@override
Future createViewer(int width, int height) async {
if (_viewer != null) {
throw Exception(
"Viewer already exists, make sure you call destroyViewer first");

View File

@@ -71,12 +71,6 @@ class _FilamentWidgetState extends State<FilamentWidget> {
@override
void initState() {
WidgetsBinding.instance.addPostFrameCallback((timeStamp) async {
// when attaching a debugger via Android Studio on startup, this can delay presentation of the widget
// (meaning the widget may attempt to create a viewer with size 0x0).
// we just add a small delay here which should avoid this
if (!kReleaseMode) {
await Future.delayed(Duration(seconds: 2));
}
var size = ((context.findRenderObject()) as RenderBox).size;
_width = size.width.ceil();
_height = size.height.ceil();
@@ -139,14 +133,11 @@ class _SizedFilamentWidgetState extends State<_SizedFilamentWidget> {
);
WidgetsBinding.instance.addPostFrameCallback((timeStamp) async {
// when attaching a debugger via Android Studio on startup, this can delay presentation of the widget
// (meaning the widget may attempt to create a viewer with size 0x0).
// we just add a small delay here which should avoid this
if (!kReleaseMode) {
await Future.delayed(Duration(seconds: 2));
}
try {
widget.controller.createViewer(widget.width, widget.height);
await widget.controller.createViewer(widget.width, widget.height);
} catch (err) {
_error = err.toString();
}
@@ -264,7 +255,9 @@ class _SizedFilamentWidgetState extends State<_SizedFilamentWidget> {
}
if (widget.controller.textureDetails == null || _resizeTimer != null) {
return widget.initial ?? Container(color: Colors.red);
return Stack(children: [
Positioned.fill(child: widget.initial ?? Container(color: Colors.red))
]);
}
// see [FilamentControllerFFI.resize] for an explanation of how we deal with resizing
var texture = Texture(