mirror of
https://github.com/Such-Software/hash-wallet.git
synced 2026-10-26 06:08:40 +01:00
fix: handle flushbar dismissal
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user