Add statistics screens (#910)

* Add statistics screens

- New statistics dashboard with four tiles: overview, recently sung, best list per difficulty and players
- Each tile opens a detail screen with longer lists, filters (left/right) and scrolling
- Detail lists show ranks for places 1-3, avatars, bars and alternating row backgrounds
- Players can be ranked by most songs or by best average
- Overview details: most sung songs, genres, languages and songs never sung
- Navigation help at the bottom of both screens
- New Statistics button in the main menu
- English and German texts

* Address code analysis findings in statistics screens

* Retrigger CI

---------

Co-authored-by: Florian Ostertag <flokuep@users.noreply.github.com>
This commit is contained in:
McSchneidarandFlorian Ostertag authored and GitHub committed 2026-10-17 05:17:36 +02:00
1 parent d03224f29b
commit 602417e773
17 files changed
+3853 -12

No files matched your search

+39
View File
@@ -111,6 +111,45 @@
<string name="TR_SCREENMAIN_BUTTON_OPTIONS">Optionen</string>
<string name="TR_SCREENMAIN_BUTTON_PROFILES">Profile</string>
<string name="TR_SCREENMAIN_TEXT_NOPROFILES">Keine Profile gefunden!</string>
<string name="TR_SCREENMAIN_BUTTON_STATISTICS">Statistik</string>
<string name="TR_SCREENSTATISTICS_TITLE">Statistik</string>
<string name="TR_SCREENSTATISTICS_HINT">Navigieren = Kachel wählen • Enter = Details öffnen • ESC = Zurück zum Hauptmenü</string>
<string name="TR_SCREENSTATISTICS_DETAILHINT">Links/Rechts = Ansicht wechseln • Hoch/Runter = Blättern • ESC = Zurück zur Statistik</string>
<string name="TR_SCREENSTATISTICS_OVERVIEW">Übersicht</string>
<string name="TR_SCREENSTATISTICS_RECENT">Zuletzt gesungen</string>
<string name="TR_SCREENSTATISTICS_BEST">Bestenliste</string>
<string name="TR_SCREENSTATISTICS_PLAYERS">Spieler</string>
<string name="TR_SCREENSTATISTICS_SONGS">Songs</string>
<string name="TR_SCREENSTATISTICS_SUNG">gesungen</string>
<string name="TR_SCREENSTATISTICS_PLAYERCOUNT">Spieler</string>
<string name="TR_SCREENSTATISTICS_COVERAGE">Sammlung gesungen: {0} %</string>
<string name="TR_SCREENSTATISTICS_MOSTSUNG">Meistgesungen</string>
<string name="TR_SCREENSTATISTICS_GENRES">Genres</string>
<string name="TR_SCREENSTATISTICS_LANGUAGES">Sprachen</string>
<string name="TR_SCREENSTATISTICS_NEVERSUNG">Noch nie gesungen</string>
<string name="TR_SCREENSTATISTICS_ALLPLAYERS">Alle Spieler</string>
<string name="TR_SCREENSTATISTICS_PLAYERSONGS">{0} · {1} Songs</string>
<string name="TR_SCREENSTATISTICS_AVERAGE">Ø {0}</string>
<string name="TR_SCREENSTATISTICS_PLAYERDETAIL">{0} Songs · Bestwert {1}</string>
<string name="TR_SCREENSTATISTICS_MOSTSONGS">Meiste Songs</string>
<string name="TR_SCREENSTATISTICS_BESTAVERAGE">Bester Durchschnitt</string>
<string name="TR_SCREENSTATISTICS_PLAYERAVERAGEDETAIL">Ø {0} · Bestwert {1}</string>
<string name="TR_SCREENSTATISTICS_SONGCOUNT">{0} Songs</string>
<string name="TR_SCREENSTATISTICS_SUMMARY">{0} Songs · {1} gesungen ({2} %) · insgesamt {3}-mal gesungen</string>
<string name="TR_SCREENSTATISTICS_TODAY">Heute</string>
<string name="TR_SCREENSTATISTICS_YESTERDAY">Gestern</string>
<string name="TR_SCREENSTATISTICS_NODATA">Noch keine Daten</string>
<string name="TR_SCREENSTATISTICS_COL_SONG">Song</string>
<string name="TR_SCREENSTATISTICS_COL_TIMES">Mal</string>
<string name="TR_SCREENSTATISTICS_COL_GENRE">Genre</string>
<string name="TR_SCREENSTATISTICS_COL_LANGUAGE">Sprache</string>
<string name="TR_SCREENSTATISTICS_COL_SUNG">Gesungen</string>
<string name="TR_SCREENSTATISTICS_COL_YEAR">Jahr</string>
<string name="TR_SCREENSTATISTICS_COL_DATE">Datum</string>
<string name="TR_SCREENSTATISTICS_COL_PLAYER">Spieler</string>
<string name="TR_SCREENSTATISTICS_COL_SCORE">Punkte</string>
<string name="TR_SCREENSTATISTICS_COL_SONGS">Songs</string>
<string name="TR_SCREENSTATISTICS_COL_AVERAGE">Durchschnitt</string>
<string name="TR_SCREENPARTY_TITLE">Party-Modus Auswahl</string>
<string name="TR_SCREENPARTY_MODES">Party-Modus</string>
<string name="TR_SCREENPARTY_DESCRIPTION">Beschreibung</string>
+39
View File
@@ -111,6 +111,45 @@
<string name="TR_SCREENMAIN_BUTTON_OPTIONS">Options</string>
<string name="TR_SCREENMAIN_BUTTON_PROFILES">Profiles</string>
<string name="TR_SCREENMAIN_TEXT_NOPROFILES">No profiles found!</string>
<string name="TR_SCREENMAIN_BUTTON_STATISTICS">Statistics</string>
<string name="TR_SCREENSTATISTICS_TITLE">Statistics</string>
<string name="TR_SCREENSTATISTICS_HINT">Navigate = Select a tile • Enter = Open details • ESC = Back to main menu</string>
<string name="TR_SCREENSTATISTICS_DETAILHINT">Left/Right = Change view • Up/Down = Scroll • ESC = Back to statistics</string>
<string name="TR_SCREENSTATISTICS_OVERVIEW">Overview</string>
<string name="TR_SCREENSTATISTICS_RECENT">Recently sung</string>
<string name="TR_SCREENSTATISTICS_BEST">Best list</string>
<string name="TR_SCREENSTATISTICS_PLAYERS">Players</string>
<string name="TR_SCREENSTATISTICS_SONGS">Songs</string>
<string name="TR_SCREENSTATISTICS_SUNG">sung</string>
<string name="TR_SCREENSTATISTICS_PLAYERCOUNT">Players</string>
<string name="TR_SCREENSTATISTICS_COVERAGE">Collection sung: {0} %</string>
<string name="TR_SCREENSTATISTICS_MOSTSUNG">Most sung</string>
<string name="TR_SCREENSTATISTICS_GENRES">Genres</string>
<string name="TR_SCREENSTATISTICS_LANGUAGES">Languages</string>
<string name="TR_SCREENSTATISTICS_NEVERSUNG">Never sung</string>
<string name="TR_SCREENSTATISTICS_ALLPLAYERS">All players</string>
<string name="TR_SCREENSTATISTICS_PLAYERSONGS">{0} · {1} songs</string>
<string name="TR_SCREENSTATISTICS_AVERAGE">Ø {0}</string>
<string name="TR_SCREENSTATISTICS_PLAYERDETAIL">{0} songs · best {1}</string>
<string name="TR_SCREENSTATISTICS_MOSTSONGS">Most songs</string>
<string name="TR_SCREENSTATISTICS_BESTAVERAGE">Best average</string>
<string name="TR_SCREENSTATISTICS_PLAYERAVERAGEDETAIL">Ø {0} · best {1}</string>
<string name="TR_SCREENSTATISTICS_SONGCOUNT">{0} songs</string>
<string name="TR_SCREENSTATISTICS_SUMMARY">{0} songs · {1} sung ({2} %) · sung {3} times in total</string>
<string name="TR_SCREENSTATISTICS_TODAY">Today</string>
<string name="TR_SCREENSTATISTICS_YESTERDAY">Yesterday</string>
<string name="TR_SCREENSTATISTICS_NODATA">No data yet</string>
<string name="TR_SCREENSTATISTICS_COL_SONG">Song</string>
<string name="TR_SCREENSTATISTICS_COL_TIMES">Times</string>
<string name="TR_SCREENSTATISTICS_COL_GENRE">Genre</string>
<string name="TR_SCREENSTATISTICS_COL_LANGUAGE">Language</string>
<string name="TR_SCREENSTATISTICS_COL_SUNG">Sung</string>
<string name="TR_SCREENSTATISTICS_COL_YEAR">Year</string>
<string name="TR_SCREENSTATISTICS_COL_DATE">Date</string>
<string name="TR_SCREENSTATISTICS_COL_PLAYER">Player</string>
<string name="TR_SCREENSTATISTICS_COL_SCORE">Score</string>
<string name="TR_SCREENSTATISTICS_COL_SONGS">Songs</string>
<string name="TR_SCREENSTATISTICS_COL_AVERAGE">Average</string>
<string name="TR_SCREENPARTY_TITLE">Party-Mode Selection</string>
<string name="TR_SCREENPARTY_MODES">Party-mode</string>
<string name="TR_SCREENPARTY_DESCRIPTION">Description</string>