fix(flutter): 修复导航白线与观看记录错误透传

This commit is contained in:
Zhou Weidong committed 2026-10-17 16:41:24 +08:00
1 parent ac706a42a5
commit 732483465c
8 files changed
+85 -3

No files matched your search

@@ -5,6 +5,7 @@ import 'package:flutter/foundation.dart';
import '../models/drama.dart';
import '../models/watch_progress.dart';
import '../models/watch_record.dart';
import '../remote/api_client.dart';
import '../repositories/catalog_repository.dart';
import '../repositories/watch_history_repository.dart';
@@ -47,8 +48,18 @@ class WatchRecordsController extends ChangeNotifier {
records = _uniqueRecords(recent);
_notify();
await _hydrate(records.map((record) => record.dramaId).toList());
} catch (_) {
if (!_disposed) error = 'progressError';
} catch (failure, stackTrace) {
debugPrint(
'[WatchRecordsController] recent failed '
'${failure.runtimeType}: $failure',
);
debugPrintStack(
stackTrace: stackTrace,
label: '[WatchRecordsController] recent failed',
);
if (!_disposed) {
error = failure is ApiException ? failure.message : 'progressError';
}
} finally {
if (!_disposed) {
loading = false;
@@ -169,7 +180,15 @@ class WatchRecordsController extends ChangeNotifier {
detailFailed: false,
),
);
} catch (_) {
} catch (failure, stackTrace) {
debugPrint(
'[WatchRecordsController] detail failed dramaId=$dramaId '
'${failure.runtimeType}: $failure',
);
debugPrintStack(
stackTrace: stackTrace,
label: '[WatchRecordsController] detail failed dramaId=$dramaId',
);
if (_disposed) return;
final current = _recordIndex(dramaId);
if (current < 0) return;