mirror of
https://github.com/GopeedLab/gopeed.git
synced 2026-11-15 21:03:41 +00:00
fix(android): intercept back during cold startup and move exit toast down
This commit is contained in:
1 parent
ee6b073bc1
commit
bd03d3b31c
8 files changed
+195
-48
No files matched your search
@@ -12,6 +12,7 @@ import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:shadcn_flutter/shadcn_flutter.dart' as shad;
|
||||
import 'package:window_manager/window_manager.dart';
|
||||
import 'package:gopeed/features/home/presentation/pages/home_page.dart';
|
||||
import 'package:gopeed/app/app.dart';
|
||||
import 'package:gopeed/app/router/app_router.dart';
|
||||
import 'package:gopeed/core/capabilities/app_capabilities.dart';
|
||||
@@ -2254,15 +2255,16 @@ void main() {
|
||||
expect(tester.takeException(), isNull);
|
||||
});
|
||||
|
||||
testWidgets('settings mobile back returns one level before requiring a second back to exit', (
|
||||
WidgetTester tester,
|
||||
) async {
|
||||
testWidgets('settings mobile back returns through home before confirming exit', (WidgetTester tester) async {
|
||||
await _setTestSize(tester, const Size(390, 760));
|
||||
debugDefaultTargetPlatformOverride = TargetPlatform.android;
|
||||
addTearDown(() => debugDefaultTargetPlatformOverride = null);
|
||||
var systemPopCalls = 0;
|
||||
bool? frameworkHandlesBack;
|
||||
tester.binding.handleAppLifecycleStateChanged(AppLifecycleState.resumed);
|
||||
tester.binding.defaultBinaryMessenger.setMockMethodCallHandler(SystemChannels.platform, (call) async {
|
||||
if (call.method == 'SystemNavigator.pop') systemPopCalls++;
|
||||
if (call.method == 'SystemNavigator.setFrameworkHandlesBack') frameworkHandlesBack = call.arguments as bool;
|
||||
return null;
|
||||
});
|
||||
addTearDown(() {
|
||||
@@ -2281,6 +2283,7 @@ void main() {
|
||||
);
|
||||
await tester.pumpAndSettle();
|
||||
|
||||
expect(frameworkHandlesBack, isTrue);
|
||||
await tester.tap(find.text('Settings'));
|
||||
await tester.pumpAndSettle();
|
||||
await tester.tap(find.text('Basic'));
|
||||
@@ -2294,6 +2297,13 @@ void main() {
|
||||
expect(find.byKey(const ValueKey('theme-mode-system')), findsNothing);
|
||||
expect(systemPopCalls, 0);
|
||||
|
||||
await tester.binding.handlePopRoute();
|
||||
await tester.pumpAndSettle();
|
||||
expect(find.byType(HomePage), findsOneWidget);
|
||||
expect(find.text('Press back again to exit'), findsNothing);
|
||||
expect(systemPopCalls, 0);
|
||||
expect(frameworkHandlesBack, isTrue);
|
||||
|
||||
await tester.binding.handlePopRoute();
|
||||
await tester.pump();
|
||||
expect(find.text('Press back again to exit'), findsOneWidget);
|
||||
|
||||
Reference in new issue
Block a user