Merge pull request #5413 from pangeachat/5308-set-activity-image-as-chat-background

feat: use image as activity background
This commit is contained in:
ggurdin 2026-01-26 12:29:37 -05:00 committed by GitHub
commit 70df34359e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
60 changed files with 401 additions and 67 deletions

View file

@ -145,6 +145,7 @@ abstract class AppConfig {
static bool sendPublicReadReceipts = true;
static bool swipeRightToLeftToReply = true;
static bool? sendOnEnter;
static bool useActivityImageAsChatBackground = true;
static bool showPresences = true;
// #Pangea
// static bool displayNavigationRail = false;

View file

@ -35,6 +35,8 @@ abstract class SettingKeys {
static const String displayNavigationRail =
'chat.fluffy.display_navigation_rail';
// #Pangea
static const String useActivityImageAsChatBackground =
'pangea.use_activity_image_as_chat_background';
static const String volume = 'pangea.volume';
static const String showedActivityMenu =
'pangea.showed_activity_menu_tutorial';

View file

@ -1,6 +1,6 @@
{
"@@locale": "ar",
"@@last_modified": "2026-01-22 12:01:48.002470",
"@@last_modified": "2026-01-26 12:28:00.853326",
"about": "حول",
"@about": {
"type": "String",
@ -11141,5 +11141,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "استخدم صورة النشاط كخلفية للدردشة",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1911,7 +1911,7 @@
"playWithAI": "Пакуль гуляйце з ШІ",
"courseStartDesc": "Pangea Bot гатовы да працы ў любы час!\n\n...але навучанне лепш з сябрамі!",
"@@locale": "be",
"@@last_modified": "2026-01-22 12:01:33.641094",
"@@last_modified": "2026-01-26 12:27:52.592887",
"@alwaysUse24HourFormat": {
"type": "String",
"placeholders": {}
@ -12023,5 +12023,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Выкарыстоўвайце малюнак актыўнасці як фон чата",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,5 +1,5 @@
{
"@@last_modified": "2026-01-22 12:02:02.719528",
"@@last_modified": "2026-01-26 12:28:14.369915",
"about": "সম্পর্কে",
"@about": {
"type": "String",
@ -12028,5 +12028,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "চ্যাট ব্যাকগ্রাউন্ড হিসেবে কার্যকলাপের ছবি ব্যবহার করুন",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -4279,7 +4279,7 @@
"joinPublicTrip": "མི་ཚེས་ལ་ལོག་འབད།",
"startOwnTrip": "ངེད་རང་གི་ལོག་ལ་སྦྱོར་བཅོས།",
"@@locale": "bo",
"@@last_modified": "2026-01-22 12:01:59.937396",
"@@last_modified": "2026-01-26 12:28:10.688209",
"@alwaysUse24HourFormat": {
"type": "String",
"placeholders": {}
@ -10678,5 +10678,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Bruk aktivitetsbilde som chatbakgrunn",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,5 +1,5 @@
{
"@@last_modified": "2026-01-22 12:01:35.625715",
"@@last_modified": "2026-01-26 12:27:54.192592",
"about": "Quant a",
"@about": {
"type": "String",
@ -10948,5 +10948,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Utilitza la imatge d'activitat com a fons de xat",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,6 +1,6 @@
{
"@@locale": "cs",
"@@last_modified": "2026-01-22 12:01:30.360444",
"@@last_modified": "2026-01-26 12:27:50.205605",
"about": "O aplikaci",
"@about": {
"type": "String",
@ -11531,5 +11531,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Použít obrázek aktivity jako pozadí chatu",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1930,7 +1930,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": "2026-01-22 12:00:57.389253",
"@@last_modified": "2026-01-26 12:27:28.906661",
"@aboutHomeserver": {
"type": "String",
"placeholders": {
@ -11985,5 +11985,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Brug aktivitetsbillede som chatbaggrund",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,6 +1,6 @@
{
"@@locale": "de",
"@@last_modified": "2026-01-22 12:01:22.683777",
"@@last_modified": "2026-01-26 12:27:44.472299",
"alwaysUse24HourFormat": "true",
"@alwaysUse24HourFormat": {
"description": "Set to true to always display time of day in 24 hour format."
@ -10931,5 +10931,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Aktivitätsbild als Chat-Hintergrund verwenden",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -4456,7 +4456,7 @@
"playWithAI": "Παίξτε με την Τεχνητή Νοημοσύνη προς το παρόν",
"courseStartDesc": "Ο Pangea Bot είναι έτοιμος να ξεκινήσει οποιαδήποτε στιγμή!\n\n...αλλά η μάθηση είναι καλύτερη με φίλους!",
"@@locale": "el",
"@@last_modified": "2026-01-22 12:02:10.279313",
"@@last_modified": "2026-01-26 12:28:19.788327",
"@alwaysUse24HourFormat": {
"type": "String",
"placeholders": {}
@ -11982,5 +11982,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Χρησιμοποιήστε την εικόνα δραστηριότητας ως φόντο συνομιλίας",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -5070,5 +5070,6 @@
},
"findCourse": "Find a course",
"publicInviteDescChat": "Search for users to invite them to this chat.",
"publicInviteDescSpace": "Search for users to invite them to this space."
"publicInviteDescSpace": "Search for users to invite them to this space.",
"useActivityImageAsChatBackground": "Use activity image as chat background"
}

View file

@ -1,5 +1,5 @@
{
"@@last_modified": "2026-01-22 12:02:15.725740",
"@@last_modified": "2026-01-26 12:28:24.101271",
"about": "Prio",
"@about": {
"type": "String",
@ -12013,5 +12013,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Uzu aktivan bildon kiel ĉatfondon",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,6 +1,6 @@
{
"@@locale": "es",
"@@last_modified": "2026-01-22 12:00:51.625942",
"@@last_modified": "2026-01-26 12:27:25.542021",
"about": "Acerca de",
"@about": {
"type": "String",
@ -8158,5 +8158,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Usar imagen de actividad como fondo de chat",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,6 +1,6 @@
{
"@@locale": "et",
"@@last_modified": "2026-01-22 12:01:20.400166",
"@@last_modified": "2026-01-26 12:27:43.497205",
"about": "Rakenduse teave",
"@about": {
"type": "String",
@ -11195,5 +11195,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Kasuta tegevuse pilti vestluse taustana",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,6 +1,6 @@
{
"@@locale": "eu",
"@@last_modified": "2026-01-22 12:01:17.457241",
"@@last_modified": "2026-01-26 12:27:40.932084",
"about": "Honi buruz",
"@about": {
"type": "String",
@ -10924,5 +10924,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Erabili jarduera irudia txat atzeko plano gisa",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,5 +1,5 @@
{
"@@last_modified": "2026-01-22 12:02:04.083596",
"@@last_modified": "2026-01-26 12:28:15.886645",
"repeatPassword": "تکرار رمزعبور",
"@repeatPassword": {},
"about": "درباره",
@ -11656,5 +11656,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "از تصویر فعالیت به عنوان پس‌زمینه چت استفاده کنید",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -4009,7 +4009,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": "2026-01-22 12:00:55.098205",
"@@last_modified": "2026-01-26 12:27:27.651389",
"@alwaysUse24HourFormat": {
"type": "String",
"placeholders": {}
@ -11547,5 +11547,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Käytä aktiviteettikuvaa chat-taustana",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -2787,7 +2787,7 @@
"selectAll": "Piliin lahat",
"deselectAll": "Huwag piliin lahat",
"@@locale": "fil",
"@@last_modified": "2026-01-22 12:01:44.028462",
"@@last_modified": "2026-01-26 12:27:58.277677",
"@setCustomPermissionLevel": {
"type": "String",
"placeholders": {}
@ -11900,5 +11900,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Gamitin ang larawan ng aktibidad bilang background ng chat",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,6 +1,6 @@
{
"@@locale": "fr",
"@@last_modified": "2026-01-22 12:02:23.383738",
"@@last_modified": "2026-01-26 12:28:29.933498",
"about": "À propos",
"@about": {
"type": "String",
@ -11248,5 +11248,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Utiliser l'image d'activité comme arrière-plan de chat",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -4517,7 +4517,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": "2026-01-22 12:02:22.009738",
"@@last_modified": "2026-01-26 12:28:28.914158",
"@customReaction": {
"type": "String",
"placeholders": {}
@ -10922,5 +10922,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Úsáid íomhá gníomhaíochta mar chúlra comhrá",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,6 +1,6 @@
{
"@@locale": "gl",
"@@last_modified": "2026-01-22 12:00:52.883998",
"@@last_modified": "2026-01-26 12:27:26.548491",
"about": "Acerca de",
"@about": {
"type": "String",
@ -10921,5 +10921,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Usa a imaxe de actividade como fondo de chat",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,5 +1,5 @@
{
"@@last_modified": "2026-01-22 12:01:11.911490",
"@@last_modified": "2026-01-26 12:27:37.673318",
"about": "אודות",
"@about": {
"type": "String",
@ -11973,5 +11973,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "השתמש בתמונה של הפעילות כרקע לצ'אט",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -4483,7 +4483,7 @@
"playWithAI": "अभी के लिए एआई के साथ खेलें",
"courseStartDesc": "पैंजिया बॉट कभी भी जाने के लिए तैयार है!\n\n...लेकिन दोस्तों के साथ सीखना बेहतर है!",
"@@locale": "hi",
"@@last_modified": "2026-01-22 12:02:13.864252",
"@@last_modified": "2026-01-26 12:28:22.666463",
"@alwaysUse24HourFormat": {
"type": "String",
"placeholders": {}
@ -12009,5 +12009,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "चैट पृष्ठभूमि के रूप में गतिविधि छवि का उपयोग करें",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,6 +1,6 @@
{
"@@locale": "hr",
"@@last_modified": "2026-01-22 12:01:10.402528",
"@@last_modified": "2026-01-26 12:27:36.383504",
"about": "Informacije",
"@about": {
"type": "String",
@ -11296,5 +11296,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Koristi sliku aktivnosti kao pozadinu chata",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,6 +1,6 @@
{
"@@locale": "hu",
"@@last_modified": "2026-01-22 12:01:00.971468",
"@@last_modified": "2026-01-26 12:27:30.234620",
"about": "Névjegy",
"@about": {
"type": "String",
@ -10925,5 +10925,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Használja az aktivitás képet csevegési háttérként",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1958,7 +1958,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": "2026-01-22 12:01:13.730279",
"@@last_modified": "2026-01-26 12:27:38.716861",
"@alwaysUse24HourFormat": {
"type": "String",
"placeholders": {}
@ -12002,5 +12002,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Usa l'immagine dell'attività come sfondo della chat",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,5 +1,5 @@
{
"@@last_modified": "2026-01-22 12:01:02.729155",
"@@last_modified": "2026-01-26 12:27:31.365804",
"setAsCanonicalAlias": "Atur sebagai alias utama",
"@setAsCanonicalAlias": {
"type": "String",
@ -10915,5 +10915,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Gunakan gambar aktivitas sebagai latar belakang obrolan",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -4372,7 +4372,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": "2026-01-22 12:01:08.955250",
"@@last_modified": "2026-01-26 12:27:35.147805",
"@alwaysUse24HourFormat": {
"type": "String",
"placeholders": {}
@ -11898,5 +11898,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Úsáid íomhá gníomhaíochta mar chúlra comhrá",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,5 +1,5 @@
{
"@@last_modified": "2026-01-22 12:01:27.366543",
"@@last_modified": "2026-01-26 12:27:47.544878",
"about": "Informazioni",
"@about": {
"type": "String",
@ -10927,5 +10927,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Usa l'immagine dell'attività come sfondo della chat",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,6 +1,6 @@
{
"@@locale": "ja",
"@@last_modified": "2026-01-22 12:02:12.048814",
"@@last_modified": "2026-01-26 12:28:21.231253",
"about": "このアプリについて",
"@about": {
"type": "String",
@ -11714,5 +11714,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "アクティビティ画像をチャットの背景として使用",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -2594,7 +2594,7 @@
"playWithAI": "ამ დროისთვის ითამაშეთ AI-თან",
"courseStartDesc": "Pangea Bot მზადაა ნებისმიერ დროს გასასვლელად!\n\n...მაგრამ სწავლა უკეთესია მეგობრებთან ერთად!",
"@@locale": "ka",
"@@last_modified": "2026-01-22 12:02:18.860564",
"@@last_modified": "2026-01-26 12:28:26.253312",
"@alwaysUse24HourFormat": {
"type": "String",
"placeholders": {}
@ -11954,5 +11954,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "გამოიყენეთ აქტივობის სურათი ჩეთის ფონად",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,5 +1,5 @@
{
"@@last_modified": "2026-01-22 12:00:49.883642",
"@@last_modified": "2026-01-26 12:27:24.404672",
"about": "소개",
"@about": {
"type": "String",
@ -11032,5 +11032,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "활동 이미지를 채팅 배경으로 사용",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -3861,7 +3861,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": "2026-01-22 12:01:53.612206",
"@@last_modified": "2026-01-26 12:28:04.436326",
"@alwaysUse24HourFormat": {
"type": "String",
"placeholders": {}
@ -11729,5 +11729,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Naudoti veiklos vaizdą kaip pokalbio foną",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -4482,7 +4482,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": "2026-01-22 12:01:46.451812",
"@@last_modified": "2026-01-26 12:27:59.827518",
"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",
@ -10910,5 +10910,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Izmantojiet aktivitātes attēlu kā čata fona",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,5 +1,5 @@
{
"@@last_modified": "2026-01-22 12:01:31.934487",
"@@last_modified": "2026-01-26 12:27:51.317423",
"about": "Om",
"@about": {
"type": "String",
@ -12017,5 +12017,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Bruk aktivitetsbilde som chatbakgrunn",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,5 +1,5 @@
{
"@@last_modified": "2026-01-22 12:01:58.109571",
"@@last_modified": "2026-01-26 12:28:08.329376",
"about": "Over ons",
"@about": {
"type": "String",
@ -10924,5 +10924,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Gebruik activiteit afbeelding als chatachtergrond",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,6 +1,6 @@
{
"@@locale": "pl",
"@@last_modified": "2026-01-22 12:02:06.402870",
"@@last_modified": "2026-01-26 12:28:17.139756",
"about": "O aplikacji",
"@about": {
"type": "String",
@ -10922,5 +10922,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Użyj obrazu aktywności jako tła czatu",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,5 +1,5 @@
{
"@@last_modified": "2026-01-22 12:01:18.883594",
"@@last_modified": "2026-01-26 12:27:42.318949",
"copiedToClipboard": "Copiada para a área de transferência",
"@copiedToClipboard": {
"type": "String",
@ -12024,5 +12024,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Usar imagem da atividade como fundo do chat",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,5 +1,5 @@
{
"@@last_modified": "2026-01-22 12:01:15.782911",
"@@last_modified": "2026-01-26 12:27:39.754550",
"about": "Sobre",
"@about": {
"type": "String",
@ -11282,5 +11282,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Usar imagem da atividade como fundo do chat",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -3331,7 +3331,7 @@
"selectAll": "Selecionar tudo",
"deselectAll": "Desmarcar tudo",
"@@locale": "pt_PT",
"@@last_modified": "2026-01-22 12:01:38.348686",
"@@last_modified": "2026-01-26 12:27:56.165630",
"@alwaysUse24HourFormat": {
"type": "String",
"placeholders": {}
@ -11953,5 +11953,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Usar imagem da atividade como fundo do chat",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,5 +1,5 @@
{
"@@last_modified": "2026-01-22 12:01:04.721303",
"@@last_modified": "2026-01-26 12:27:32.499634",
"about": "Despre",
"@about": {
"type": "String",
@ -11659,5 +11659,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Folosește imaginea activității ca fundal pentru chat",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,6 +1,6 @@
{
"@@locale": "ru",
"@@last_modified": "2026-01-22 12:02:17.097388",
"@@last_modified": "2026-01-26 12:28:25.124958",
"about": "О проекте",
"@about": {
"type": "String",
@ -11032,5 +11032,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Использовать изображение активности в качестве фона чата",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,6 +1,6 @@
{
"@@locale": "sk",
"@@last_modified": "2026-01-22 12:01:06.427460",
"@@last_modified": "2026-01-26 12:27:33.826661",
"about": "O aplikácii",
"@about": {
"type": "String",
@ -12008,5 +12008,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Použiť obrázok aktivity ako pozadie chatu",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -2464,7 +2464,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": "2026-01-22 12:01:24.219945",
"@@last_modified": "2026-01-26 12:27:45.590223",
"@alwaysUse24HourFormat": {
"type": "String",
"placeholders": {}
@ -12005,5 +12005,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Uporabi sliko dejavnosti kot ozadje klepeta",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,5 +1,5 @@
{
"@@last_modified": "2026-01-22 12:02:20.533801",
"@@last_modified": "2026-01-26 12:28:27.586474",
"about": "О програму",
"@about": {
"type": "String",
@ -12026,5 +12026,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Koristi sliku aktivnosti kao pozadinu za čat",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,5 +1,5 @@
{
"@@last_modified": "2026-01-22 12:02:08.064498",
"@@last_modified": "2026-01-26 12:28:18.216720",
"about": "Om",
"@about": {
"type": "String",
@ -11402,5 +11402,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Använd aktivitetsbild som chattbakgrund",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,5 +1,5 @@
{
"@@last_modified": "2026-01-22 12:01:56.352823",
"@@last_modified": "2026-01-26 12:28:07.408609",
"acceptedTheInvitation": "👍 {username} அழைப்பை ஏற்றுக்கொண்டது",
"@acceptedTheInvitation": {
"type": "String",
@ -11148,5 +11148,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "செயல்பாட்டு படத்தை உரையாடல் பின்னணி ஆக பயன்படுத்தவும்",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1920,7 +1920,7 @@
"playWithAI": "ఇప్పుడే AI తో ఆడండి",
"courseStartDesc": "పాంజియా బాట్ ఎప్పుడైనా సిద్ధంగా ఉంటుంది!\n\n...కానీ స్నేహితులతో నేర్చుకోవడం మెరుగైనది!",
"@@locale": "te",
"@@last_modified": "2026-01-22 12:01:51.350363",
"@@last_modified": "2026-01-26 12:28:03.154699",
"@setCustomPermissionLevel": {
"type": "String",
"placeholders": {}
@ -12013,5 +12013,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "చాట్ నేపథ్యంగా కార్యకలాప చిత్రాన్ని ఉపయోగించండి",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -4456,7 +4456,7 @@
"playWithAI": "เล่นกับ AI ชั่วคราว",
"courseStartDesc": "Pangea Bot พร้อมที่จะเริ่มต้นได้ทุกเมื่อ!\n\n...แต่การเรียนรู้ดีกว่ากับเพื่อน!",
"@@locale": "th",
"@@last_modified": "2026-01-22 12:01:36.919446",
"@@last_modified": "2026-01-26 12:27:55.201298",
"@alwaysUse24HourFormat": {
"type": "String",
"placeholders": {}
@ -11982,5 +11982,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "ใช้ภาพกิจกรรมเป็นพื้นหลังแชท",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,6 +1,6 @@
{
"@@locale": "tr",
"@@last_modified": "2026-01-22 12:01:49.339268",
"@@last_modified": "2026-01-26 12:28:01.798236",
"about": "Hakkında",
"@about": {
"type": "String",
@ -11146,5 +11146,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Etkinlik resmini sohbet arka planı olarak kullan",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,6 +1,6 @@
{
"@@locale": "uk",
"@@last_modified": "2026-01-22 12:01:28.947095",
"@@last_modified": "2026-01-26 12:27:48.869225",
"about": "Про застосунок",
"@about": {
"type": "String",
@ -10918,5 +10918,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Використовувати зображення активності як фон чату",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,5 +1,5 @@
{
"@@last_modified": "2026-01-22 12:01:54.904291",
"@@last_modified": "2026-01-26 12:28:05.933736",
"about": "Giới thiệu",
"@about": {
"type": "String",
@ -6494,5 +6494,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "Sử dụng hình ảnh hoạt động làm nền trò chuyện",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1856,7 +1856,7 @@
"selectAll": "全選",
"deselectAll": "取消全選",
"@@locale": "yue",
"@@last_modified": "2026-01-22 12:01:25.863585",
"@@last_modified": "2026-01-26 12:27:46.517764",
"@ignoreUser": {
"type": "String",
"placeholders": {}
@ -12015,5 +12015,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "使用活動圖片作為聊天背景",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,6 +1,6 @@
{
"@@locale": "zh",
"@@last_modified": "2026-01-22 12:02:00.962577",
"@@last_modified": "2026-01-26 12:28:13.245619",
"about": "关于",
"@about": {
"type": "String",
@ -10915,5 +10915,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "将活动图像用作聊天背景",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,5 +1,5 @@
{
"@@last_modified": "2026-01-22 12:01:42.417971",
"@@last_modified": "2026-01-26 12:27:57.200655",
"about": "關於",
"@about": {
"type": "String",
@ -10922,5 +10922,10 @@
"@publicInviteDescSpace": {
"type": "String",
"placeholders": {}
},
"useActivityImageAsChatBackground": "使用活動圖片作為聊天背景",
"@useActivityImageAsChatBackground": {
"type": "String",
"placeholders": {}
}
}

View file

@ -6,6 +6,7 @@ import 'package:badges/badges.dart';
import 'package:go_router/go_router.dart';
import 'package:matrix/matrix.dart';
import 'package:fluffychat/config/app_config.dart';
import 'package:fluffychat/config/themes.dart';
import 'package:fluffychat/l10n/l10n.dart';
import 'package:fluffychat/pages/chat/chat.dart';
@ -24,6 +25,7 @@ import 'package:fluffychat/pangea/analytics_misc/level_up/star_rain_widget.dart'
import 'package:fluffychat/pangea/chat/widgets/chat_floating_action_button.dart';
import 'package:fluffychat/pangea/chat/widgets/chat_input_bar.dart';
import 'package:fluffychat/pangea/chat/widgets/chat_view_background.dart';
import 'package:fluffychat/pangea/common/config/environment.dart';
import 'package:fluffychat/pangea/navigation/navigation_util.dart';
import 'package:fluffychat/utils/account_config.dart';
import 'package:fluffychat/utils/localized_exception_extension.dart';
@ -357,7 +359,55 @@ class ChatView extends StatelessWidget {
child: Stack(
// Pangea#
children: <Widget>[
if (accountConfig.wallpaperUrl != null)
// #Pangea
// if (accountConfig.wallpaperUrl != null)
// Only use activity image as chat background if enabled in AppConfig
if (controller.room.activityPlan != null &&
controller.room.activityPlan!.imageURL != null &&
AppConfig.useActivityImageAsChatBackground)
Opacity(
opacity: 0.25,
child: ImageFiltered(
imageFilter: ui.ImageFilter.blur(
sigmaX: accountConfig.wallpaperBlur ?? 0.0,
sigmaY: accountConfig.wallpaperBlur ?? 0.0,
),
child: controller.room.activityPlan!.imageURL!
.toString()
.startsWith('mxc')
? MxcImage(
uri: controller.room.activityPlan!.imageURL!,
fit: BoxFit.cover,
height: MediaQuery.sizeOf(context).height,
width: MediaQuery.sizeOf(context).width,
cacheKey: controller
.room.activityPlan!.imageURL
.toString(),
isThumbnail: false,
)
: Image.network(
controller.room.activityPlan!.imageURL
.toString(),
fit: BoxFit.cover,
height: MediaQuery.sizeOf(context).height,
width: MediaQuery.sizeOf(context).width,
headers: controller
.room.activityPlan!.imageURL
.toString()
.contains(Environment.cmsApi)
? {
'Authorization':
'Bearer ${MatrixState.pangeaController.userController.accessToken}',
}
: null,
errorBuilder: (context, error, stackTrace) =>
Container(),
),
),
)
// If not enabled, fall through to default wallpaper logic
else if (accountConfig.wallpaperUrl != null)
// Pangea#
Opacity(
opacity: accountConfig.wallpaperOpacity ?? 0.5,
child: ImageFiltered(

View file

@ -144,6 +144,7 @@ class Message extends StatelessWidget {
valueListenable: controller.activityController.showInstructions,
builder: (context, show, __) {
return ActivitySummary(
inChat: true,
activity: event.room.activityPlan!,
room: event.room,
assignedRoles: event.room.hasArchivedActivity

View file

@ -78,7 +78,15 @@ class SettingsChatView extends StatelessWidget {
storeKey: SettingKeys.swipeRightToLeftToReply,
defaultValue: AppConfig.swipeRightToLeftToReply,
),
// #Pangea
SettingsSwitchListTile.adaptive(
title: L10n.of(context).useActivityImageAsChatBackground,
onChanged: (b) =>
AppConfig.useActivityImageAsChatBackground = b,
storeKey: SettingKeys.useActivityImageAsChatBackground,
defaultValue: AppConfig.useActivityImageAsChatBackground,
),
// Divider(color: theme.dividerColor),
// ListTile(
// title: Text(

View file

@ -9,6 +9,7 @@ import 'package:material_symbols_icons/symbols.dart';
import 'package:matrix/matrix.dart';
import 'package:matrix/src/utils/markdown.dart';
import 'package:fluffychat/config/app_config.dart';
import 'package:fluffychat/config/themes.dart';
import 'package:fluffychat/l10n/l10n.dart';
import 'package:fluffychat/pangea/activity_planner/activity_plan_model.dart';
@ -35,6 +36,8 @@ class ActivitySummary extends StatelessWidget {
final ValueNotifier<Set<String>>? usedVocab;
final bool inChat;
const ActivitySummary({
super.key,
required this.activity,
@ -49,6 +52,7 @@ class ActivitySummary extends StatelessWidget {
this.getParticipantOpacity,
this.room,
this.course,
this.inChat = false,
});
@override
@ -63,18 +67,20 @@ class ActivitySummary extends StatelessWidget {
child: Column(
spacing: 4.0,
children: [
LayoutBuilder(
builder: (context, constraints) {
return ImageByUrl(
imageUrl: activity.imageURL,
width: min(
constraints.maxWidth,
MediaQuery.sizeOf(context).height * 0.5,
),
borderRadius: BorderRadius.circular(20),
);
},
),
(!inChat || !AppConfig.useActivityImageAsChatBackground)
? LayoutBuilder(
builder: (context, constraints) {
return ImageByUrl(
imageUrl: activity.imageURL,
width: min(
constraints.maxWidth,
MediaQuery.sizeOf(context).height * 0.5,
),
borderRadius: BorderRadius.circular(20),
);
},
)
: const SizedBox.shrink(),
ActivityParticipantList(
activity: activity,
room: room,