/// 云同步状态。 enum SyncState { /// 尚未建立同步(未登录或未配置)。 unknown, /// 正在同步。 syncing, /// 最近一次同步成功。 success, /// 最近一次同步失败。 failed, } /// 顶部状态条所需的数据。 /// /// 目前由 [AppStatus.sample] 提供示例值;接入内核与同步服务后改为真实数据。 class AppStatus { const AppStatus({ required this.streakDays, required this.todayItems, required this.sync, }); /// 连续学习天数(计划接力)。 final int streakDays; /// 今日涉及的条目总数,等于「已完成 + 待完成」,与今日计划卡里的 /// 「待复习 + 待新识」不是同一个口径。 final int todayItems; /// 云同步状态。 final SyncState sync; String get streakLabel => '计划接力: $streakDays 天'; String get todayLabel => '今日记忆: $todayItems 条目'; String get syncLabel => switch (sync) { SyncState.unknown => '云同步: 未连接', SyncState.syncing => '云同步: 同步中', SyncState.success => '云同步: 成功', SyncState.failed => '云同步: 失败', }; /// 示例数据。今日 59 条 = 已完成 6 条 + 待完成 53 条。 static const AppStatus sample = AppStatus( streakDays: 4, todayItems: 59, sync: SyncState.success, ); }