fix: handle flushbar dismissal

This commit is contained in:
Blazebrain
2026-09-27 07:31:13 +01:00
parent 7e84412e02
commit 88a7e72c40
2 changed files with 17 additions and 6 deletions
-4
View File
@@ -3,15 +3,11 @@ import "dart:async";
import "package:cake_wallet/main.dart" as app;
import "package:flutter/foundation.dart";
import "package:flutter_test/flutter_test.dart";
import "package:integration_test/integration_test.dart";
import "benign_errors.dart";
void integrationTest(String description, Future<void> Function(WidgetTester tester) body) {
testWidgets(description, (tester) async {
IntegrationTestWidgetsFlutterBinding.instance.framePolicy =
LiveTestWidgetsFlutterBindingFramePolicy.fullyLive;
final completer = Completer<void>();
final run = runZonedGuarded(() async {
+17 -2
View File
@@ -116,9 +116,9 @@ class AuthPagePinCodeStateImpl extends AuthPageState<AuthPage> {
/// not the best scenario, but WidgetsBinding is not behaving correctly on Android
await Future<void>.delayed(Duration(milliseconds: 50));
await _authBar?.dismiss();
await _removeBar(_authBar);
await Future<void>.delayed(Duration(milliseconds: 50));
await _progressBar?.dismiss();
await _removeBar(_progressBar);
await Future<void>.delayed(Duration(milliseconds: 50));
if (route != null) {
Navigator.of(_key.currentContext!).pushReplacementNamed(route, arguments: arguments);
@@ -153,6 +153,21 @@ class AuthPagePinCodeStateImpl extends AuthPageState<AuthPage> {
);
}
Future<void> _removeBar(Flushbar<void>? bar) async {
final barRoute = bar?.flushbarRoute;
if (bar == null || barRoute == null || !barRoute.isActive) {
return;
}
if (bar.isShowing()) {
await bar.dismiss();
return;
}
barRoute.navigator?.removeRoute(barRoute);
}
void dismissFlushBar(Flushbar<dynamic>? bar) {
WidgetsBinding.instance.addPostFrameCallback((_) async {
await bar?.dismiss();