This commit is contained in:
ytc1012
2025-11-27 18:30:49 +08:00
parent 15252dfd88
commit ef44d11c32
4 changed files with 215 additions and 190 deletions

View File

@@ -50,23 +50,31 @@ class CompleteScreen extends StatelessWidget {
children: [
const SizedBox(height: 40),
// Success Icon
const Text(
'',
style: TextStyle(fontSize: 64),
),
const SizedBox(height: 32),
// You focused for X minutes
Text(
l10n.youFocusedFor,
style: AppTextStyles.headline,
),
const SizedBox(height: 8),
Text(
l10n.minutesValue(focusedMinutes, l10n.minutes(focusedMinutes)),
style: AppTextStyles.largeNumber,
// You focused for X minutes with success icon - left-right layout
Row(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
// Star icon on the left
const Text('', style: TextStyle(fontSize: 64)),
const SizedBox(width: 20),
// Text content on the right
Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(l10n.youFocusedFor, style: AppTextStyles.headline),
const SizedBox(height: 8),
Text(
l10n.minutesValue(
focusedMinutes,
l10n.minutes(focusedMinutes),
),
style: AppTextStyles.largeNumber,
),
],
),
],
),
const SizedBox(height: 32),
@@ -99,7 +107,10 @@ class CompleteScreen extends StatelessWidget {
),
const SizedBox(height: 12),
Text(
l10n.distractionsCount(todayDistractions, l10n.times(todayDistractions)),
l10n.distractionsCount(
todayDistractions,
l10n.times(todayDistractions),
),
style: AppTextStyles.bodyText,
),
const SizedBox(height: 20),
@@ -207,30 +218,29 @@ class CompleteScreen extends StatelessWidget {
color: AppColors.primary,
),
),
const Text(
'',
style: TextStyle(fontSize: 24),
),
const Text('', style: TextStyle(fontSize: 24)),
],
),
const SizedBox(height: 16),
Divider(thickness: 1, color: AppColors.textSecondary.withValues(alpha: 0.2)),
Divider(
thickness: 1,
color: AppColors.textSecondary.withValues(alpha: 0.2),
),
const SizedBox(height: 12),
// Points breakdown
_buildPointRow(
l10n.basePoints,
'+$basePoints',
AppColors.success,
),
_buildPointRow(l10n.basePoints, '+$basePoints', AppColors.success),
if (honestyBonus > 0) ...[
const SizedBox(height: 8),
_buildPointRow(
l10n.honestyBonus,
'+$honestyBonus',
AppColors.success,
subtitle: l10n.distractionsRecorded(distractionCount, l10n.distractions(distractionCount)),
subtitle: l10n.distractionsRecorded(
distractionCount,
l10n.distractions(distractionCount),
),
),
],
],
@@ -300,7 +310,10 @@ class CompleteScreen extends StatelessWidget {
}
/// Build achievement unlocked cards
List<Widget> _buildAchievementCards(BuildContext context, AppLocalizations l10n) {
List<Widget> _buildAchievementCards(
BuildContext context,
AppLocalizations l10n,
) {
return newAchievements.map((achievementId) {
final achievement = AchievementConfig.getById(achievementId);
if (achievement == null) return const SizedBox.shrink();
@@ -328,10 +341,7 @@ class CompleteScreen extends StatelessWidget {
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
achievement.icon,
style: const TextStyle(fontSize: 32),
),
Text(achievement.icon, style: const TextStyle(fontSize: 32)),
const SizedBox(width: 12),
Text(
l10n.achievementUnlocked,