feat(profile): statistics beside the profile, a review counting a minute at most

The Profile tab has two tabs, Profile and Statistics, the latter for
anonymous people too: the time studied in all, per day and the most in
one day, and by days, weeks or months the study time and the ratings as
bars, a tap on a bar saying what it holds. The app draws the charts
itself, as the Progress part's sparkline, rather than taking a chart
package.

A review's time was however long its card was shown: one left on the
screen over lunch counted as an hour of study. It now counts at most a
minute, as Anki does by default, here and in a studyset's Progress; the
stored durations stay as they were.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MMm7usAo6q9ZZRoPkWjoxi
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-10-12 18:56:40 +02:00
commit b46dfe22b1
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -1545,6 +1545,72 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get profileTitle => 'Profile';
@override
String get profileTabProfile => 'Profile';
@override
String get profileTabStatistics => 'Statistics';
@override
String get statisticsDays => 'Days';
@override
String get statisticsWeeks => 'Weeks';
@override
String get statisticsMonths => 'Months';
@override
String get statisticsTotal => 'In total';
@override
String get statisticsPerDay => 'Per day';
@override
String get statisticsRecord => 'Daily record';
@override
String get statisticsStudyTime => 'Study time';
@override
String get statisticsMinutesInfo =>
'In minutes, each card counted for at most a minute';
@override
String get statisticsHoursInfo =>
'In hours, each card counted for at most a minute';
@override
String get statisticsRatings => 'Ratings';
@override
String get statisticsRatingsInfo =>
'How you rated the flashcards you studied';
@override
String statisticsRated(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count cards rated',
one: '1 card rated',
zero: 'No cards rated',
);
return '$_temp0';
}
@override
String get statisticsToday => 'Today';
@override
String statisticsWeekOf(String date) {
return 'Week of $date';
}
@override
String get statisticsNothingYet =>
'Nothing studied yet. Your study time and ratings show here once you study flashcards.';
@override
String get profileSettingsTooltip => 'Settings';
@ -6166,7 +6232,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get progressStudyTimeInfo =>
'How long you studied this studyset\'s flashcards on this device in the last seven days.';
'How long you studied this studyset\'s flashcards in the last seven days, each card counted for at most a minute.';
@override
String get progressThisWeek => 'this week';