diff --git a/lib/l10n/intl_ar.arb b/lib/l10n/intl_ar.arb index 42fad5b95..9d5ab48ee 100644 --- a/lib/l10n/intl_ar.arb +++ b/lib/l10n/intl_ar.arb @@ -1,6 +1,6 @@ { "@@locale": "ar", - "@@last_modified": "2025-11-20 12:39:04.749371", + "@@last_modified": "2025-11-20 14:54:02.760300", "about": "حول", "@about": { "type": "String", @@ -10795,5 +10795,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "تم الانتهاء من نشاط الممارسة", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_be.arb b/lib/l10n/intl_be.arb index 1e3ebc3c7..dc08d54d8 100644 --- a/lib/l10n/intl_be.arb +++ b/lib/l10n/intl_be.arb @@ -1915,7 +1915,7 @@ "playWithAI": "Пакуль гуляйце з ШІ", "courseStartDesc": "Pangea Bot гатовы да працы ў любы час!\n\n...але навучанне лепш з сябрамі!", "@@locale": "be", - "@@last_modified": "2025-11-20 12:38:48.985011", + "@@last_modified": "2025-11-20 14:53:56.300239", "@alwaysUse24HourFormat": { "type": "String", "placeholders": {} @@ -11677,5 +11677,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Практычная дзейнасць завершана", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_bn.arb b/lib/l10n/intl_bn.arb index b1f76ef61..7a18787d2 100644 --- a/lib/l10n/intl_bn.arb +++ b/lib/l10n/intl_bn.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2025-11-20 12:39:17.140740", + "@@last_modified": "2025-11-20 14:54:10.871486", "about": "সম্পর্কে", "@about": { "type": "String", @@ -11682,5 +11682,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "অভ্যাস কার্যক্রম সম্পন্ন", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_bo.arb b/lib/l10n/intl_bo.arb index 8cd2edc71..a288d4efe 100644 --- a/lib/l10n/intl_bo.arb +++ b/lib/l10n/intl_bo.arb @@ -4282,7 +4282,7 @@ "joinPublicTrip": "མི་ཚེས་ལ་ལོག་འབད།", "startOwnTrip": "ངེད་རང་གི་ལོག་ལ་སྦྱོར་བཅོས།", "@@locale": "bo", - "@@last_modified": "2025-11-20 12:39:14.389283", + "@@last_modified": "2025-11-20 14:54:09.235231", "@alwaysUse24HourFormat": { "type": "String", "placeholders": {} @@ -10328,5 +10328,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Praktik aktiviti telah diselesaikan", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_ca.arb b/lib/l10n/intl_ca.arb index 992cdc1f3..40a542753 100644 --- a/lib/l10n/intl_ca.arb +++ b/lib/l10n/intl_ca.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2025-11-20 12:38:55.798385", + "@@last_modified": "2025-11-20 14:53:57.101713", "about": "Quant a", "@about": { "type": "String", @@ -10602,5 +10602,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Activitat de pràctica completada", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_cs.arb b/lib/l10n/intl_cs.arb index 7f7a389cc..24ce2d7fa 100644 --- a/lib/l10n/intl_cs.arb +++ b/lib/l10n/intl_cs.arb @@ -1,6 +1,6 @@ { "@@locale": "cs", - "@@last_modified": "2025-11-20 12:38:46.113217", + "@@last_modified": "2025-11-20 14:53:54.804617", "about": "O aplikaci", "@about": { "type": "String", @@ -11185,5 +11185,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Aktivita cvičení byla dokončena", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_da.arb b/lib/l10n/intl_da.arb index 848055dda..1b891d4b0 100644 --- a/lib/l10n/intl_da.arb +++ b/lib/l10n/intl_da.arb @@ -1934,7 +1934,7 @@ "playWithAI": "Leg med AI for nu", "courseStartDesc": "Pangea Bot er klar til at starte når som helst!\n\n...men læring er bedre med venner!", "@@locale": "da", - "@@last_modified": "2025-11-20 12:38:22.209817", + "@@last_modified": "2025-11-20 14:53:35.097620", "@aboutHomeserver": { "type": "String", "placeholders": { @@ -11640,5 +11640,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Øvelsesaktivitet fuldført", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_de.arb b/lib/l10n/intl_de.arb index f319c858d..f1253de77 100644 --- a/lib/l10n/intl_de.arb +++ b/lib/l10n/intl_de.arb @@ -1,6 +1,6 @@ { "@@locale": "de", - "@@last_modified": "2025-11-20 12:38:39.354858", + "@@last_modified": "2025-11-20 14:53:50.178435", "alwaysUse24HourFormat": "true", "@alwaysUse24HourFormat": { "description": "Set to true to always display time of day in 24 hour format." @@ -10585,5 +10585,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Übungsaktivität abgeschlossen", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_el.arb b/lib/l10n/intl_el.arb index 18aeaf7a7..e285d0a1c 100644 --- a/lib/l10n/intl_el.arb +++ b/lib/l10n/intl_el.arb @@ -4460,7 +4460,7 @@ "playWithAI": "Παίξτε με την Τεχνητή Νοημοσύνη προς το παρόν", "courseStartDesc": "Ο Pangea Bot είναι έτοιμος να ξεκινήσει οποιαδήποτε στιγμή!\n\n...αλλά η μάθηση είναι καλύτερη με φίλους!", "@@locale": "el", - "@@last_modified": "2025-11-20 12:39:22.667055", + "@@last_modified": "2025-11-20 14:54:14.475585", "@alwaysUse24HourFormat": { "type": "String", "placeholders": {} @@ -11636,5 +11636,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Η δραστηριότητα πρακτικής ολοκληρώθηκε", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_en.arb b/lib/l10n/intl_en.arb index bdd472c3a..a5de887df 100644 --- a/lib/l10n/intl_en.arb +++ b/lib/l10n/intl_en.arb @@ -4955,6 +4955,7 @@ "teacherModeTitle": "Teacher Mode", "teacherModeDesc": "Toggle to unlock all topics and activities. Course admin only.", "noSavedActivitiesYet": "Activities will appear here once they are completed and saved.", + "practiceActivityCompleted": "Practice activity completed", "changeCourse": "Change course", "changeCourseDesc": "Here you can change this course's course plan." } diff --git a/lib/l10n/intl_eo.arb b/lib/l10n/intl_eo.arb index 4e06208e4..0aeed8059 100644 --- a/lib/l10n/intl_eo.arb +++ b/lib/l10n/intl_eo.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2025-11-20 12:39:27.591280", + "@@last_modified": "2025-11-20 14:54:18.264427", "about": "Prio", "@about": { "type": "String", @@ -11667,5 +11667,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Praktika aktiveco finita", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_es.arb b/lib/l10n/intl_es.arb index 27513adde..37bf6e74b 100644 --- a/lib/l10n/intl_es.arb +++ b/lib/l10n/intl_es.arb @@ -1,6 +1,6 @@ { "@@locale": "es", - "@@last_modified": "2025-11-20 12:38:17.219618", + "@@last_modified": "2025-11-20 14:53:31.098192", "about": "Acerca de", "@about": { "type": "String", @@ -7813,5 +7813,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Actividad de práctica completada", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_et.arb b/lib/l10n/intl_et.arb index 624588f09..8be0b1828 100644 --- a/lib/l10n/intl_et.arb +++ b/lib/l10n/intl_et.arb @@ -1,6 +1,6 @@ { "@@locale": "et", - "@@last_modified": "2025-11-20 12:38:38.325390", + "@@last_modified": "2025-11-20 14:53:49.442060", "about": "Rakenduse teave", "@about": { "type": "String", @@ -10849,5 +10849,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Harjutustegevus lõpetatud", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_eu.arb b/lib/l10n/intl_eu.arb index 73eaf6b7b..d3bd9cc6a 100644 --- a/lib/l10n/intl_eu.arb +++ b/lib/l10n/intl_eu.arb @@ -1,6 +1,6 @@ { "@@locale": "eu", - "@@last_modified": "2025-11-20 12:38:36.071015", + "@@last_modified": "2025-11-20 14:53:47.461492", "about": "Honi buruz", "@about": { "type": "String", @@ -10578,5 +10578,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Praktika jarduera amaituta", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_fa.arb b/lib/l10n/intl_fa.arb index 78b59887c..e08f4c298 100644 --- a/lib/l10n/intl_fa.arb +++ b/lib/l10n/intl_fa.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2025-11-20 12:39:18.369784", + "@@last_modified": "2025-11-20 14:54:11.691213", "repeatPassword": "تکرار رمزعبور", "@repeatPassword": {}, "about": "درباره", @@ -11310,5 +11310,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "فعالیت تمرینی کامل شد", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_fi.arb b/lib/l10n/intl_fi.arb index c26fb6dd6..95cee03ea 100644 --- a/lib/l10n/intl_fi.arb +++ b/lib/l10n/intl_fi.arb @@ -4013,7 +4013,7 @@ "playWithAI": "Leiki tekoälyn kanssa nyt", "courseStartDesc": "Pangea Bot on valmis milloin tahansa!\n\n...mutta oppiminen on parempaa ystävien kanssa!", "@@locale": "fi", - "@@last_modified": "2025-11-20 12:38:20.199337", + "@@last_modified": "2025-11-20 14:53:34.208462", "@alwaysUse24HourFormat": { "type": "String", "placeholders": {} @@ -11201,5 +11201,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Harjoitustoiminta suoritettu", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_fil.arb b/lib/l10n/intl_fil.arb index aab4cf078..840569a04 100644 --- a/lib/l10n/intl_fil.arb +++ b/lib/l10n/intl_fil.arb @@ -2791,7 +2791,7 @@ "selectAll": "Piliin lahat", "deselectAll": "Huwag piliin lahat", "@@locale": "fil", - "@@last_modified": "2025-11-20 12:39:01.960523", + "@@last_modified": "2025-11-20 14:54:01.155789", "@setCustomPermissionLevel": { "type": "String", "placeholders": {} @@ -11554,5 +11554,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Natapos ang aktibidad sa pagsasanay", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_fr.arb b/lib/l10n/intl_fr.arb index de0c013c1..d26959ef2 100644 --- a/lib/l10n/intl_fr.arb +++ b/lib/l10n/intl_fr.arb @@ -1,6 +1,6 @@ { "@@locale": "fr", - "@@last_modified": "2025-11-20 12:39:33.718195", + "@@last_modified": "2025-11-20 14:54:22.927028", "about": "À propos", "@about": { "type": "String", @@ -10902,5 +10902,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Activité de pratique terminée", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_ga.arb b/lib/l10n/intl_ga.arb index 1c0690012..883d18bca 100644 --- a/lib/l10n/intl_ga.arb +++ b/lib/l10n/intl_ga.arb @@ -4521,7 +4521,7 @@ "playWithAI": "Imir le AI faoi láthair", "courseStartDesc": "Tá Bot Pangea réidh chun dul am ar bith!\n\n...ach is fearr foghlaim le cairde!", "@@locale": "ga", - "@@last_modified": "2025-11-20 12:39:32.391774", + "@@last_modified": "2025-11-20 14:54:22.114918", "@customReaction": { "type": "String", "placeholders": {} @@ -10576,5 +10576,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Críochnaíodh an gníomhaíocht chleachtais", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_gl.arb b/lib/l10n/intl_gl.arb index 86df8b471..be3f50c6c 100644 --- a/lib/l10n/intl_gl.arb +++ b/lib/l10n/intl_gl.arb @@ -1,6 +1,6 @@ { "@@locale": "gl", - "@@last_modified": "2025-11-20 12:38:18.326177", + "@@last_modified": "2025-11-20 14:53:32.298371", "about": "Acerca de", "@about": { "type": "String", @@ -10575,5 +10575,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Actividade de práctica completada", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_he.arb b/lib/l10n/intl_he.arb index f2c0d0d63..2d00e7f6f 100644 --- a/lib/l10n/intl_he.arb +++ b/lib/l10n/intl_he.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2025-11-20 12:38:31.739043", + "@@last_modified": "2025-11-20 14:53:44.448591", "about": "אודות", "@about": { "type": "String", @@ -11627,5 +11627,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "פעילות תרגול הושלמה", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_hi.arb b/lib/l10n/intl_hi.arb index a7920d2ca..22f604aa8 100644 --- a/lib/l10n/intl_hi.arb +++ b/lib/l10n/intl_hi.arb @@ -4487,7 +4487,7 @@ "playWithAI": "अभी के लिए एआई के साथ खेलें", "courseStartDesc": "पैंजिया बॉट कभी भी जाने के लिए तैयार है!\n\n...लेकिन दोस्तों के साथ सीखना बेहतर है!", "@@locale": "hi", - "@@last_modified": "2025-11-20 12:39:26.351630", + "@@last_modified": "2025-11-20 14:54:17.425082", "@alwaysUse24HourFormat": { "type": "String", "placeholders": {} @@ -11663,5 +11663,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "अभ्यास गतिविधि पूरी हुई", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_hr.arb b/lib/l10n/intl_hr.arb index b19ee4773..38e0a2de1 100644 --- a/lib/l10n/intl_hr.arb +++ b/lib/l10n/intl_hr.arb @@ -1,6 +1,6 @@ { "@@locale": "hr", - "@@last_modified": "2025-11-20 12:38:30.674058", + "@@last_modified": "2025-11-20 14:53:43.599159", "about": "Informacije", "@about": { "type": "String", @@ -10950,5 +10950,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Aktivnost vježbanja završena", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_hu.arb b/lib/l10n/intl_hu.arb index 089798593..ac4d81da8 100644 --- a/lib/l10n/intl_hu.arb +++ b/lib/l10n/intl_hu.arb @@ -1,6 +1,6 @@ { "@@locale": "hu", - "@@last_modified": "2025-11-20 12:38:23.399921", + "@@last_modified": "2025-11-20 14:53:36.261794", "about": "Névjegy", "@about": { "type": "String", @@ -10579,5 +10579,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Gyakorló tevékenység befejezve", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_ia.arb b/lib/l10n/intl_ia.arb index 451c6dddb..e9135d524 100644 --- a/lib/l10n/intl_ia.arb +++ b/lib/l10n/intl_ia.arb @@ -1962,7 +1962,7 @@ "playWithAI": "Joca con le IA pro ora", "courseStartDesc": "Pangea Bot es preste a comenzar a qualunque momento!\n\n...ma apprender es melior con amicos!", "@@locale": "ia", - "@@last_modified": "2025-11-20 12:38:33.310279", + "@@last_modified": "2025-11-20 14:53:45.693586", "@alwaysUse24HourFormat": { "type": "String", "placeholders": {} @@ -11656,5 +11656,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Praktiko aktivita finita", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_id.arb b/lib/l10n/intl_id.arb index eed5ebf5e..f5908e61b 100644 --- a/lib/l10n/intl_id.arb +++ b/lib/l10n/intl_id.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2025-11-20 12:38:25.008007", + "@@last_modified": "2025-11-20 14:53:37.035253", "setAsCanonicalAlias": "Atur sebagai alias utama", "@setAsCanonicalAlias": { "type": "String", @@ -10569,5 +10569,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Aktivitas latihan selesai", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_ie.arb b/lib/l10n/intl_ie.arb index 2c3a97d29..f9303e749 100644 --- a/lib/l10n/intl_ie.arb +++ b/lib/l10n/intl_ie.arb @@ -4376,7 +4376,7 @@ "playWithAI": "Joca con AI pro ora", "courseStartDesc": "Pangea Bot es preste a partir a qualunque momento!\n\n...ma apprender es melior con amicos!", "@@locale": "ie", - "@@last_modified": "2025-11-20 12:38:29.133545", + "@@last_modified": "2025-11-20 14:53:42.684180", "@alwaysUse24HourFormat": { "type": "String", "placeholders": {} @@ -11552,5 +11552,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Praktiko aktivita kompletita", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_it.arb b/lib/l10n/intl_it.arb index b3c3c515f..d21d25255 100644 --- a/lib/l10n/intl_it.arb +++ b/lib/l10n/intl_it.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2025-11-20 12:38:43.010339", + "@@last_modified": "2025-11-20 14:53:53.093014", "about": "Informazioni", "@about": { "type": "String", @@ -10581,5 +10581,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Attività di pratica completata", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_ja.arb b/lib/l10n/intl_ja.arb index 80d1f57bf..01eeb3677 100644 --- a/lib/l10n/intl_ja.arb +++ b/lib/l10n/intl_ja.arb @@ -1,6 +1,6 @@ { "@@locale": "ja", - "@@last_modified": "2025-11-20 12:39:23.909449", + "@@last_modified": "2025-11-20 14:54:15.873729", "about": "このアプリについて", "@about": { "type": "String", @@ -11368,5 +11368,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "練習活動が完了しました", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_ka.arb b/lib/l10n/intl_ka.arb index 90b98ce47..8f221e080 100644 --- a/lib/l10n/intl_ka.arb +++ b/lib/l10n/intl_ka.arb @@ -2598,7 +2598,7 @@ "playWithAI": "ამ დროისთვის ითამაშეთ AI-თან", "courseStartDesc": "Pangea Bot მზადაა ნებისმიერ დროს გასასვლელად!\n\n...მაგრამ სწავლა უკეთესია მეგობრებთან ერთად!", "@@locale": "ka", - "@@last_modified": "2025-11-20 12:39:30.042222", + "@@last_modified": "2025-11-20 14:54:20.259278", "@alwaysUse24HourFormat": { "type": "String", "placeholders": {} @@ -11608,5 +11608,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "პრაქტიკის აქტივობა დასრულდა", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_ko.arb b/lib/l10n/intl_ko.arb index 112a42e4a..83037aaff 100644 --- a/lib/l10n/intl_ko.arb +++ b/lib/l10n/intl_ko.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2025-11-20 12:38:15.496170", + "@@last_modified": "2025-11-20 14:53:30.116789", "about": "소개", "@about": { "type": "String", @@ -10686,5 +10686,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "연습 활동이 완료되었습니다", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_lt.arb b/lib/l10n/intl_lt.arb index 748e0b6cf..8519f651c 100644 --- a/lib/l10n/intl_lt.arb +++ b/lib/l10n/intl_lt.arb @@ -3865,7 +3865,7 @@ "playWithAI": "Žaiskite su dirbtiniu intelektu dabar", "courseStartDesc": "Pangea botas pasiruošęs bet kada pradėti!\n\n...bet mokymasis yra geresnis su draugais!", "@@locale": "lt", - "@@last_modified": "2025-11-20 12:39:09.565316", + "@@last_modified": "2025-11-20 14:54:05.562745", "@alwaysUse24HourFormat": { "type": "String", "placeholders": {} @@ -11383,5 +11383,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Praktikos veikla baigta", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_lv.arb b/lib/l10n/intl_lv.arb index 0be144682..74fd970d1 100644 --- a/lib/l10n/intl_lv.arb +++ b/lib/l10n/intl_lv.arb @@ -4486,7 +4486,7 @@ "playWithAI": "Tagad spēlējiet ar AI", "courseStartDesc": "Pangea bots ir gatavs jebkurā laikā!\n\n...bet mācīties ir labāk ar draugiem!", "@@locale": "lv", - "@@last_modified": "2025-11-20 12:39:03.415375", + "@@last_modified": "2025-11-20 14:54:02.050011", "analyticsInactiveTitle": "Pieprasījumi neaktīviem lietotājiem nevar tikt nosūtīti", "analyticsInactiveDesc": "Neaktīvi lietotāji, kuri nav pieteikušies kopš šīs funkcijas ieviešanas, neredzēs jūsu pieprasījumu.\n\nPieprasījuma poga parādīsies, kad viņi atgriezīsies. Jūs varat atkārtoti nosūtīt pieprasījumu vēlāk, noklikšķinot uz pieprasījuma pogas viņu vārdā, kad tā būs pieejama.", "accessRequestedTitle": "Pieprasījums piekļūt analītikai", @@ -10564,5 +10564,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Prakses aktivitāte pabeigta", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_nb.arb b/lib/l10n/intl_nb.arb index fbf752460..957409665 100644 --- a/lib/l10n/intl_nb.arb +++ b/lib/l10n/intl_nb.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2025-11-20 12:38:47.529512", + "@@last_modified": "2025-11-20 14:53:55.552111", "about": "Om", "@about": { "type": "String", @@ -11671,5 +11671,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Øvingsaktivitet fullført", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_nl.arb b/lib/l10n/intl_nl.arb index ea6185e16..ee0c66ed5 100644 --- a/lib/l10n/intl_nl.arb +++ b/lib/l10n/intl_nl.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2025-11-20 12:39:13.229885", + "@@last_modified": "2025-11-20 14:54:08.318051", "about": "Over ons", "@about": { "type": "String", @@ -10578,5 +10578,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Oefenactiviteit voltooid", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_pl.arb b/lib/l10n/intl_pl.arb index 89f4257e9..e5e42269b 100644 --- a/lib/l10n/intl_pl.arb +++ b/lib/l10n/intl_pl.arb @@ -1,6 +1,6 @@ { "@@locale": "pl", - "@@last_modified": "2025-11-20 12:39:20.003666", + "@@last_modified": "2025-11-20 14:54:12.599201", "about": "O aplikacji", "@about": { "type": "String", @@ -10578,5 +10578,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Aktywność praktyczna zakończona", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_pt.arb b/lib/l10n/intl_pt.arb index 2b043a43a..8b955c282 100644 --- a/lib/l10n/intl_pt.arb +++ b/lib/l10n/intl_pt.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2025-11-20 12:38:37.248064", + "@@last_modified": "2025-11-20 14:53:48.565172", "copiedToClipboard": "Copiada para a área de transferência", "@copiedToClipboard": { "type": "String", @@ -11678,5 +11678,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Atividade de prática concluída", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_pt_BR.arb b/lib/l10n/intl_pt_BR.arb index b6e24f774..0a6af1c4a 100644 --- a/lib/l10n/intl_pt_BR.arb +++ b/lib/l10n/intl_pt_BR.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2025-11-20 12:38:34.435839", + "@@last_modified": "2025-11-20 14:53:46.544212", "about": "Sobre", "@about": { "type": "String", @@ -10936,5 +10936,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Atividade de prática concluída", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_pt_PT.arb b/lib/l10n/intl_pt_PT.arb index 9b70fe260..ad739f3c4 100644 --- a/lib/l10n/intl_pt_PT.arb +++ b/lib/l10n/intl_pt_PT.arb @@ -3335,7 +3335,7 @@ "selectAll": "Selecionar tudo", "deselectAll": "Desmarcar tudo", "@@locale": "pt_PT", - "@@last_modified": "2025-11-20 12:38:58.794363", + "@@last_modified": "2025-11-20 14:53:59.030209", "@alwaysUse24HourFormat": { "type": "String", "placeholders": {} @@ -11607,5 +11607,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Atividade de prática concluída", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_ro.arb b/lib/l10n/intl_ro.arb index d137abb84..39d037523 100644 --- a/lib/l10n/intl_ro.arb +++ b/lib/l10n/intl_ro.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2025-11-20 12:38:26.175424", + "@@last_modified": "2025-11-20 14:53:39.359488", "about": "Despre", "@about": { "type": "String", @@ -11313,5 +11313,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Activitate de practică finalizată", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_ru.arb b/lib/l10n/intl_ru.arb index ab689178d..af79cfc72 100644 --- a/lib/l10n/intl_ru.arb +++ b/lib/l10n/intl_ru.arb @@ -1,6 +1,6 @@ { "@@locale": "ru", - "@@last_modified": "2025-11-20 12:39:28.706564", + "@@last_modified": "2025-11-20 14:54:19.249444", "about": "О проекте", "@about": { "type": "String", @@ -10683,5 +10683,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Практическое задание завершено", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_sk.arb b/lib/l10n/intl_sk.arb index 39a427297..9c11b527b 100644 --- a/lib/l10n/intl_sk.arb +++ b/lib/l10n/intl_sk.arb @@ -1,6 +1,6 @@ { "@@locale": "sk", - "@@last_modified": "2025-11-20 12:38:27.288377", + "@@last_modified": "2025-11-20 14:53:40.669714", "about": "O aplikácii", "@about": { "type": "String", @@ -11662,5 +11662,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Aktivita cvičenia dokončená", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_sl.arb b/lib/l10n/intl_sl.arb index b93ef212a..c5cca2003 100644 --- a/lib/l10n/intl_sl.arb +++ b/lib/l10n/intl_sl.arb @@ -2468,7 +2468,7 @@ "playWithAI": "Za zdaj igrajte z AI-jem", "courseStartDesc": "Pangea Bot je pripravljen kadarkoli!\n\n...ampak je bolje učiti se s prijatelji!", "@@locale": "sl", - "@@last_modified": "2025-11-20 12:38:40.685640", + "@@last_modified": "2025-11-20 14:53:51.206505", "@alwaysUse24HourFormat": { "type": "String", "placeholders": {} @@ -11659,5 +11659,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Aktivnost vadbe zaključena", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_sr.arb b/lib/l10n/intl_sr.arb index 3c2b68156..e1121911a 100644 --- a/lib/l10n/intl_sr.arb +++ b/lib/l10n/intl_sr.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2025-11-20 12:39:31.189262", + "@@last_modified": "2025-11-20 14:54:21.092644", "about": "О програму", "@about": { "type": "String", @@ -11680,5 +11680,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Aktivnost vežbanja je završena", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_sv.arb b/lib/l10n/intl_sv.arb index b5d1323c0..17d1499cd 100644 --- a/lib/l10n/intl_sv.arb +++ b/lib/l10n/intl_sv.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2025-11-20 12:39:21.247328", + "@@last_modified": "2025-11-20 14:54:13.498644", "about": "Om", "@about": { "type": "String", @@ -11056,5 +11056,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Övningsaktivitet slutförd", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_ta.arb b/lib/l10n/intl_ta.arb index 3130e7e00..0bd67b81f 100644 --- a/lib/l10n/intl_ta.arb +++ b/lib/l10n/intl_ta.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2025-11-20 12:39:12.125435", + "@@last_modified": "2025-11-20 14:54:07.409352", "acceptedTheInvitation": "👍 {username} அழைப்பை ஏற்றுக்கொண்டது", "@acceptedTheInvitation": { "type": "String", @@ -10802,5 +10802,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "பயிற்சி செயல்பாடு முடிந்தது", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_te.arb b/lib/l10n/intl_te.arb index 19b706809..de1cc2500 100644 --- a/lib/l10n/intl_te.arb +++ b/lib/l10n/intl_te.arb @@ -1924,7 +1924,7 @@ "playWithAI": "ఇప్పుడే AI తో ఆడండి", "courseStartDesc": "పాంజియా బాట్ ఎప్పుడైనా సిద్ధంగా ఉంటుంది!\n\n...కానీ స్నేహితులతో నేర్చుకోవడం మెరుగైనది!", "@@locale": "te", - "@@last_modified": "2025-11-20 12:39:07.913220", + "@@last_modified": "2025-11-20 14:54:04.730180", "@setCustomPermissionLevel": { "type": "String", "placeholders": {} @@ -11667,5 +11667,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "అభ్యాస కార్యకలాపం పూర్తయింది", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_th.arb b/lib/l10n/intl_th.arb index e48bf0d9a..833a29662 100644 --- a/lib/l10n/intl_th.arb +++ b/lib/l10n/intl_th.arb @@ -4460,7 +4460,7 @@ "playWithAI": "เล่นกับ AI ชั่วคราว", "courseStartDesc": "Pangea Bot พร้อมที่จะเริ่มต้นได้ทุกเมื่อ!\n\n...แต่การเรียนรู้ดีกว่ากับเพื่อน!", "@@locale": "th", - "@@last_modified": "2025-11-20 12:38:57.356247", + "@@last_modified": "2025-11-20 14:53:58.064329", "@alwaysUse24HourFormat": { "type": "String", "placeholders": {} @@ -11636,5 +11636,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "กิจกรรมการฝึกซ้อมเสร็จสิ้น", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_tr.arb b/lib/l10n/intl_tr.arb index e49db8bbb..488531f7d 100644 --- a/lib/l10n/intl_tr.arb +++ b/lib/l10n/intl_tr.arb @@ -1,6 +1,6 @@ { "@@locale": "tr", - "@@last_modified": "2025-11-20 12:39:06.593277", + "@@last_modified": "2025-11-20 14:54:03.661128", "about": "Hakkında", "@about": { "type": "String", @@ -10800,5 +10800,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Pratik etkinliği tamamlandı", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_uk.arb b/lib/l10n/intl_uk.arb index c994e4825..072488302 100644 --- a/lib/l10n/intl_uk.arb +++ b/lib/l10n/intl_uk.arb @@ -1,6 +1,6 @@ { "@@locale": "uk", - "@@last_modified": "2025-11-20 12:38:44.579835", + "@@last_modified": "2025-11-20 14:53:53.830897", "about": "Про застосунок", "@about": { "type": "String", @@ -10572,5 +10572,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Практична діяльність завершена", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_vi.arb b/lib/l10n/intl_vi.arb index 3fcaf4cbb..cac0bebc0 100644 --- a/lib/l10n/intl_vi.arb +++ b/lib/l10n/intl_vi.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2025-11-20 12:39:10.677258", + "@@last_modified": "2025-11-20 14:54:06.548321", "about": "Giới thiệu", "@about": { "type": "String", @@ -6148,5 +6148,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "Hoạt động thực hành đã hoàn thành", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_yue.arb b/lib/l10n/intl_yue.arb index 331526003..787fb2e58 100644 --- a/lib/l10n/intl_yue.arb +++ b/lib/l10n/intl_yue.arb @@ -1860,7 +1860,7 @@ "selectAll": "全選", "deselectAll": "取消全選", "@@locale": "yue", - "@@last_modified": "2025-11-20 12:38:42.034948", + "@@last_modified": "2025-11-20 14:53:52.037690", "@ignoreUser": { "type": "String", "placeholders": {} @@ -11669,5 +11669,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "練習活動已完成", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_zh.arb b/lib/l10n/intl_zh.arb index 8af1f93fd..bcf87821c 100644 --- a/lib/l10n/intl_zh.arb +++ b/lib/l10n/intl_zh.arb @@ -1,6 +1,6 @@ { "@@locale": "zh", - "@@last_modified": "2025-11-20 12:39:15.698399", + "@@last_modified": "2025-11-20 14:54:09.943983", "about": "关于", "@about": { "type": "String", @@ -10569,5 +10569,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "练习活动已完成", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/l10n/intl_zh_Hant.arb b/lib/l10n/intl_zh_Hant.arb index 072b4475c..1f29ffbc7 100644 --- a/lib/l10n/intl_zh_Hant.arb +++ b/lib/l10n/intl_zh_Hant.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2025-11-20 12:39:00.347163", + "@@last_modified": "2025-11-20 14:53:59.953711", "about": "關於", "@about": { "type": "String", @@ -10576,5 +10576,10 @@ "@changeCourseDesc": { "type": "String", "placeholders": {} + }, + "practiceActivityCompleted": "練習活動已完成", + "@practiceActivityCompleted": { + "type": "String", + "placeholders": {} } } \ No newline at end of file diff --git a/lib/pangea/analytics_misc/level_up/star_rain_widget.dart b/lib/pangea/analytics_misc/level_up/star_rain_widget.dart index 56a730176..25e03ac2f 100644 --- a/lib/pangea/analytics_misc/level_up/star_rain_widget.dart +++ b/lib/pangea/analytics_misc/level_up/star_rain_widget.dart @@ -5,15 +5,18 @@ import 'package:flutter/material.dart'; import 'package:confetti/confetti.dart'; import 'package:fluffychat/config/app_config.dart'; +import 'package:fluffychat/widgets/matrix.dart'; class StarRainWidget extends StatefulWidget { final bool showBlast; final Duration rainDuration; final Duration blastDuration; final VoidCallback? onFinished; + final String? overlayKey; const StarRainWidget({ super.key, + this.overlayKey, this.showBlast = true, this.rainDuration = const Duration(seconds: 8), this.blastDuration = const Duration(seconds: 1), @@ -57,6 +60,10 @@ class _StarRainWidgetState extends State { }); } await Future.delayed(const Duration(milliseconds: 800)); + if (widget.overlayKey != null) { + MatrixState.pAnyState.closeOverlay(widget.overlayKey); + } + widget.onFinished?.call(); if (mounted) { _blastController.stop(); diff --git a/lib/pangea/common/utils/overlay.dart b/lib/pangea/common/utils/overlay.dart index d3074dee0..d66492e2c 100644 --- a/lib/pangea/common/utils/overlay.dart +++ b/lib/pangea/common/utils/overlay.dart @@ -3,6 +3,7 @@ import 'dart:developer'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; +import 'package:fluffychat/pangea/analytics_misc/level_up/star_rain_widget.dart'; import 'package:fluffychat/pangea/choreographer/choreo_constants.dart'; import 'package:fluffychat/pangea/choreographer/choreographer.dart'; import 'package:fluffychat/pangea/choreographer/igc/pangea_match_state_model.dart'; @@ -273,4 +274,17 @@ class OverlayUtil { blockOverlay: true, ); } + + static void showStarRainOverlay(BuildContext context) { + showOverlay( + context: context, + position: OverlayPositionEnum.centered, + closePrevOverlay: false, + canPop: false, + overlayKey: "star_rain_level_up", + child: const StarRainWidget( + overlayKey: "star_rain_level_up", + ), + ); + } } diff --git a/lib/pangea/message_token_text/token_practice_button.dart b/lib/pangea/message_token_text/token_practice_button.dart index 8a0827a66..1e0717ecc 100644 --- a/lib/pangea/message_token_text/token_practice_button.dart +++ b/lib/pangea/message_token_text/token_practice_button.dart @@ -179,13 +179,9 @@ class TokenPracticeButtonState extends State ); return; } + widget.overlayController!.onChoiceSelect(null); - widget.overlayController!.activity!.onMatch( - widget.token, - form, - widget.overlayController!.pangeaMessageEvent, - () => widget.overlayController!.setState(() {}), - ); + widget.overlayController!.onMatch(widget.token, form); } bool get _isEmpty { diff --git a/lib/pangea/toolbar/reading_assistance_input_row/message_morph_choice.dart b/lib/pangea/toolbar/reading_assistance_input_row/message_morph_choice.dart index f795c57c5..c69694c75 100644 --- a/lib/pangea/toolbar/reading_assistance_input_row/message_morph_choice.dart +++ b/lib/pangea/toolbar/reading_assistance_input_row/message_morph_choice.dart @@ -132,8 +132,7 @@ class MessageMorphInputBarContentState ), onTap: () { setState(() => selectedTag = choice); - - widget.activity.onMultipleChoiceSelect( + widget.overlayController.onMatch( token, PracticeChoice( choiceContent: choice, @@ -145,8 +144,6 @@ class MessageMorphInputBarContentState form: token.text.content, ), ), - widget.overlayController.pangeaMessageEvent, - () => overlay.setState(() {}), ); }, isSelected: selectedTag == choice, diff --git a/lib/pangea/toolbar/reading_assistance_input_row/reading_assistance_input_bar.dart b/lib/pangea/toolbar/reading_assistance_input_row/reading_assistance_input_bar.dart index 9e55bfa4b..1ae1cd716 100644 --- a/lib/pangea/toolbar/reading_assistance_input_row/reading_assistance_input_bar.dart +++ b/lib/pangea/toolbar/reading_assistance_input_row/reading_assistance_input_bar.dart @@ -6,6 +6,7 @@ import 'package:fluffychat/pangea/toolbar/enums/message_mode_enum.dart'; import 'package:fluffychat/pangea/toolbar/widgets/message_selection_overlay.dart'; import 'package:fluffychat/pangea/toolbar/widgets/practice_activity/practice_activity_card.dart'; import 'package:fluffychat/pangea/toolbar/widgets/practice_mode_buttons.dart'; +import 'package:fluffychat/widgets/matrix.dart'; const double minContentHeight = 120; @@ -57,11 +58,7 @@ class ReadingAssistanceInputBarState extends State { case MessageMode.noneSelected: case MessageMode.messageMeaning: content = overlayController.isTotallyDone - ? Text( - L10n.of(context).allDone, - style: Theme.of(context).textTheme.bodyLarge, - textAlign: TextAlign.center, - ) + ? const AllDoneWidget() : Text( L10n.of(context).choosePracticeMode, style: Theme.of(context) @@ -74,9 +71,11 @@ class ReadingAssistanceInputBarState extends State { case MessageMode.wordEmoji: case MessageMode.wordMeaning: case MessageMode.listening: - if (target == null || activityCompleted) { + if (overlayController.isTotallyDone) { + content = const AllDoneWidget(); + } else if (target == null || activityCompleted) { content = Text( - L10n.of(context).allDone, + L10n.of(context).practiceActivityCompleted, style: Theme.of(context).textTheme.bodyLarge, textAlign: TextAlign.center, ); @@ -87,9 +86,11 @@ class ReadingAssistanceInputBarState extends State { ); } case MessageMode.wordMorph: - if (activityCompleted) { + if (overlayController.isTotallyDone) { + content = const AllDoneWidget(); + } else if (activityCompleted) { content = Text( - L10n.of(context).allDone, + L10n.of(context).practiceActivityCompleted, style: Theme.of(context).textTheme.bodyLarge, textAlign: TextAlign.center, ); @@ -149,3 +150,32 @@ class ReadingAssistanceInputBarState extends State { ); } } + +class AllDoneWidget extends StatelessWidget { + const AllDoneWidget({ + super.key, + }); + + @override + Widget build(BuildContext context) { + return Column( + spacing: 8, + children: [ + Text( + L10n.of(context).allDone, + style: Theme.of(context).textTheme.bodyLarge?.copyWith( + fontWeight: FontWeight.bold, + letterSpacing: 0.5, + ), + textAlign: TextAlign.center, + ), + ElevatedButton( + child: Text(L10n.of(context).continueText), + onPressed: () { + MatrixState.pAnyState.closeOverlay(); + }, + ), + ], + ); + } +} diff --git a/lib/pangea/toolbar/widgets/message_selection_overlay.dart b/lib/pangea/toolbar/widgets/message_selection_overlay.dart index 7c4b4dd88..dfb548aee 100644 --- a/lib/pangea/toolbar/widgets/message_selection_overlay.dart +++ b/lib/pangea/toolbar/widgets/message_selection_overlay.dart @@ -322,6 +322,27 @@ class MessageOverlayController extends State setState(() {}); } + void onMatch(PangeaToken token, PracticeChoice choice) { + if (activity == null) return; + activity!.activityType == ActivityTypeEnum.morphId + ? activity!.onMultipleChoiceSelect( + token, + choice, + pangeaMessageEvent, + () => setState(() {}), + ) + : activity!.onMatch( + token, + choice, + pangeaMessageEvent, + () => setState(() {}), + ); + + if (isTotallyDone) { + OverlayUtil.showStarRainOverlay(context); + } + } + ///////////////////////////////////// /// Getters ////////////////////////////////////