feat: refine AI navigation and accessibility recovery

This commit is contained in:
2026-08-26 22:58:26 +08:00
parent c6f98b5445
commit 9ccbdfead4
15 changed files with 521 additions and 203 deletions
+17 -6
View File
@@ -49,7 +49,6 @@ final router = GoRouter(
refreshListenable: SessionStore.instance,
redirect: (_, state) {
final aiOnly =
state.matchedLocation == '/chat' ||
state.matchedLocation == '/ai-mode' ||
state.matchedLocation == '/companion';
if (aiOnly &&
@@ -86,7 +85,15 @@ final router = GoRouter(
path: '/categories',
builder: (_, __) => const CategoryManagePage(),
),
GoRoute(path: '/report', builder: (_, __) => const ReportPage()),
GoRoute(
path: '/report',
builder: (_, state) => ReportPage(
initialPeriod: state.uri.queryParameters['period'],
initialAnchor: DateTime.tryParse(
state.uri.queryParameters['date'] ?? '',
),
),
),
GoRoute(
path: '/legal/:kind',
builder: (_, state) => LegalDocumentPage(
@@ -175,8 +182,7 @@ class _MiaoJiAppState extends State<MiaoJiApp> with WidgetsBindingObserver {
if (SessionStore.instance.hasSession) {
await _runSafely(CurrentLedgerStore.instance.loadCached);
}
await _runSafely(RecognitionImportService.configureNativeContext);
await _runSafely(RecognitionImportService.importAutomatic);
await _runSafely(_restoreRecognitionServices);
await _runSafely(PushService.instance.initialize);
if (mounted) setState(() {});
unawaited(_refreshRemoteState());
@@ -184,12 +190,17 @@ class _MiaoJiAppState extends State<MiaoJiApp> with WidgetsBindingObserver {
Future<void> _resumeServices() async {
unawaited(ApiClient.instance.probe());
await _runSafely(RecognitionImportService.configureNativeContext);
await _runSafely(RecognitionImportService.importAutomatic);
await _runSafely(_restoreRecognitionServices);
await _runSafely(PushService.instance.refresh);
unawaited(_refreshRemoteState());
}
Future<void> _restoreRecognitionServices() async {
await RecognitionImportService.configureNativeContext();
await ScreenshotChannel.waitForAccessibilityConnection();
await RecognitionImportService.importAutomatic();
}
Future<void> _refreshRemoteState() async {
await Future.wait([
_runSafely(PublicConfigApi.init),