fix: prevent subscription management launch from being blocked, show snackbar with button to try launch again (#5685)

This commit is contained in:
ggurdin 2026-02-12 15:58:07 -05:00 committed by GitHub
parent 33719b3ee7
commit 229370abc7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
56 changed files with 378 additions and 85 deletions

View file

@ -1,6 +1,6 @@
{
"@@locale": "ar",
"@@last_modified": "2026-02-12 14:19:37.053689",
"@@last_modified": "2026-02-12 15:55:16.528301",
"about": "حول",
"@about": {
"type": "String",
@ -11610,5 +11610,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "لقد أطلقنا إدارة الاشتراكات في علامة تبويب جديدة. إذا لم ترَ علامة التبويب الجديدة، يرجى التحقق من مانع النوافذ المنبثقة لديك.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -4619,7 +4619,7 @@
"playWithAI": "Пакуль гуляйце з ШІ",
"courseStartDesc": "Pangea Bot гатовы да працы ў любы час!\n\n...але навучанне лепш з сябрамі!",
"@@locale": "be",
"@@last_modified": "2026-02-12 14:19:29.850964",
"@@last_modified": "2026-02-12 15:55:05.568287",
"@ignore": {
"type": "String",
"placeholders": {}
@ -11279,5 +11279,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Мы запусцілі кіраванне падпіскай у новым укладцы. Калі вы не ўбачылі новую ўкладку, калі ласка, праверце свой блакіроўшчык усплывальных акнаў.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,5 +1,5 @@
{
"@@last_modified": "2026-02-12 14:19:44.709318",
"@@last_modified": "2026-02-12 15:55:29.425875",
"about": "সম্পর্কে",
"@about": {
"type": "String",
@ -12004,5 +12004,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "আমরা একটি নতুন ট্যাবে সাবস্ক্রিপশন ব্যবস্থাপনা চালু করেছি। যদি আপনি নতুন ট্যাবটি না দেখে থাকেন, দয়া করে আপনার পপআপ ব্লকারটি পরীক্ষা করুন।",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -3781,7 +3781,7 @@
"joinPublicTrip": "མི་ཚེས་ལ་ལོག་འབད།",
"startOwnTrip": "ངེད་རང་གི་ལོག་ལ་སྦྱོར་བཅོས།",
"@@locale": "bo",
"@@last_modified": "2026-02-12 14:19:42.615076",
"@@last_modified": "2026-02-12 15:55:26.462139",
"@alwaysUse24HourFormat": {
"type": "String",
"placeholders": {}
@ -10661,5 +10661,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Mokhoro a thakhisa taolo ya ngwaga ka fa tabeng e ncha. Ha o ka se bone tab e ncha, ka kopo hlahloba blocker ya hao ya popup.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,5 +1,5 @@
{
"@@last_modified": "2026-02-12 14:19:31.220078",
"@@last_modified": "2026-02-12 15:55:07.308206",
"about": "Quant a",
"@about": {
"type": "String",
@ -11420,5 +11420,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Hem llançat la gestió de subscripcions en una nova pestanya. Si no has vist la nova pestanya, si us plau, comprova el teu bloquejador de finestres emergents.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,6 +1,6 @@
{
"@@locale": "cs",
"@@last_modified": "2026-02-12 14:19:28.029824",
"@@last_modified": "2026-02-12 15:55:02.189038",
"about": "O aplikaci",
"@about": {
"type": "String",
@ -11832,5 +11832,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Spustili jsme správu předplatného v novém okně. Pokud jste novou kartu neviděli, zkontrolujte prosím svůj blokátor vyskakovacích oken.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1926,7 +1926,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-02-12 14:19:10.024299",
"@@last_modified": "2026-02-12 15:54:34.009508",
"@aboutHomeserver": {
"type": "String",
"placeholders": {
@ -12460,5 +12460,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Vi har lanceret abonnementsstyring i en ny fane. Hvis du ikke så den nye fane, bedes du tjekke din popup-blokker.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,6 +1,6 @@
{
"@@locale": "de",
"@@last_modified": "2026-02-12 14:19:23.493734",
"@@last_modified": "2026-02-12 15:54:54.817922",
"alwaysUse24HourFormat": "true",
"@alwaysUse24HourFormat": {
"description": "Set to true to always display time of day in 24 hour format."
@ -11249,5 +11249,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Wir haben das Abonnementmanagement in einem neuen Tab gestartet. Wenn Sie den neuen Tab nicht gesehen haben, überprüfen Sie bitte Ihren Popup-Blocker.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -4476,7 +4476,7 @@
"playWithAI": "Παίξτε με την Τεχνητή Νοημοσύνη προς το παρόν",
"courseStartDesc": "Ο Pangea Bot είναι έτοιμος να ξεκινήσει οποιαδήποτε στιγμή!\n\n...αλλά η μάθηση είναι καλύτερη με φίλους!",
"@@locale": "el",
"@@last_modified": "2026-02-12 14:19:48.698962",
"@@last_modified": "2026-02-12 15:55:35.530168",
"@checkList": {
"type": "String",
"placeholders": {}
@ -12419,5 +12419,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Λανσάραμε τη διαχείριση συνδρομών σε μια νέα καρτέλα. Αν δεν είδατε τη νέα καρτέλα, παρακαλώ ελέγξτε τον αποκλειστή αναδυόμενων παραθύρων σας.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -5345,5 +5345,6 @@
"joinCourseForActivities": "Join a course to try activities.",
"courseDescription": "Courses consist of 3-8 modules each with activities to encourage practicing words in different contexts",
"emailVerificationFailed": "Email verification failed. Please try again.",
"unlockLearningTools": "Unlock learning tools"
"unlockLearningTools": "Unlock learning tools",
"managementSnackbarMessage": "We launched subscription management in a new tab. If you didn't see the new tab, please check your popup blocker."
}

View file

@ -1,5 +1,5 @@
{
"@@last_modified": "2026-02-12 14:19:50.972053",
"@@last_modified": "2026-02-12 15:55:40.077453",
"about": "Prio",
"@about": {
"type": "String",
@ -12483,5 +12483,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Ni lanĉis abonadministradon en nova langeto. Se vi ne vidis la novan langeton, bonvolu kontroli vian pop-up blokilon.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,6 +1,6 @@
{
"@@locale": "es",
"@@last_modified": "2026-02-12 14:19:07.287744",
"@@last_modified": "2026-02-12 15:54:28.188727",
"about": "Acerca de",
"@about": {
"type": "String",
@ -8570,5 +8570,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Hemos lanzado la gestión de suscripciones en una nueva pestaña. Si no viste la nueva pestaña, por favor verifica tu bloqueador de ventanas emergentes.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,6 +1,6 @@
{
"@@locale": "et",
"@@last_modified": "2026-02-12 14:19:22.749998",
"@@last_modified": "2026-02-12 15:54:53.453907",
"about": "Rakenduse teave",
"@about": {
"type": "String",
@ -11534,5 +11534,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Käivitame tellimuse haldamise uues vahekaardis. Kui te ei näinud uut vahekaarti, palun kontrollige oma hüpikakna blokeerijat.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,6 +1,6 @@
{
"@@locale": "eu",
"@@last_modified": "2026-02-12 14:19:20.758329",
"@@last_modified": "2026-02-12 15:54:50.402230",
"about": "Honi buruz",
"@about": {
"type": "String",
@ -11260,5 +11260,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Harpidetza kudeaketa berri bat ireki dugu. Tab berri hori ikusi ez baduzu, mesedez, begiratu zure pop-up blokeatzailea.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,5 +1,5 @@
{
"@@last_modified": "2026-02-12 14:19:45.762483",
"@@last_modified": "2026-02-12 15:55:31.068009",
"repeatPassword": "تکرار گذرواژه",
"@repeatPassword": {},
"about": "درباره",
@ -11381,5 +11381,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "ما مدیریت اشتراک را در یک تب جدید راه‌اندازی کردیم. اگر تب جدید را ندیدید، لطفاً مسدودکننده پاپ‌آپ خود را بررسی کنید.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -4604,7 +4604,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-02-12 14:19:09.156864",
"@@last_modified": "2026-02-12 15:54:32.495414",
"@notificationRuleJitsi": {
"type": "String",
"placeholders": {}
@ -11319,5 +11319,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Julkaisimme tilauksen hallinnan uudessa välilehdessä. Jos et nähnyt uutta välilehteä, tarkista ponnahdusikkunoiden estäjäsi.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -2783,7 +2783,7 @@
"selectAll": "Piliin lahat",
"deselectAll": "Huwag piliin lahat",
"@@locale": "fil",
"@@last_modified": "2026-02-12 14:19:35.424642",
"@@last_modified": "2026-02-12 15:55:13.765888",
"@setCustomPermissionLevel": {
"type": "String",
"placeholders": {}
@ -12375,5 +12375,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Inilunsad namin ang pamamahala ng subscription sa isang bagong tab. Kung hindi mo nakita ang bagong tab, mangyaring suriin ang iyong popup blocker.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,6 +1,6 @@
{
"@@locale": "fr",
"@@last_modified": "2026-02-12 14:19:55.122129",
"@@last_modified": "2026-02-12 15:55:46.639594",
"about": "À propos",
"@about": {
"type": "String",
@ -11666,5 +11666,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Nous avons lancé la gestion des abonnements dans un nouvel onglet. Si vous n'avez pas vu le nouvel onglet, veuillez vérifier votre bloqueur de fenêtres contextuelles.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -4639,7 +4639,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-02-12 14:19:54.334526",
"@@last_modified": "2026-02-12 15:55:45.340674",
"@writeAMessageLangCodes": {
"type": "String",
"placeholders": {
@ -11267,5 +11267,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Seoladh bainistíocht síntiúis i gcluaisín nua. Má chonaic tú an cluaisín nua, seiceáil le do thoil do bhacadóir pop-up.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,6 +1,6 @@
{
"@@locale": "gl",
"@@last_modified": "2026-02-12 14:19:08.365623",
"@@last_modified": "2026-02-12 15:54:31.163261",
"about": "Acerca de",
"@about": {
"type": "String",
@ -11260,5 +11260,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Lanzamos a xestión de subscrición nunha nova pestana. Se non ves a nova pestana, por favor, verifica o teu bloqueador de ventás emerxentes.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,5 +1,5 @@
{
"@@last_modified": "2026-02-12 14:19:18.118020",
"@@last_modified": "2026-02-12 15:54:46.170245",
"about": "אודות",
"@about": {
"type": "String",
@ -12443,5 +12443,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "השקנו ניהול מנויים בלשונית חדשה. אם לא ראית את הלשונית החדשה, אנא בדוק את חוסם הפופ-אפ שלך.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -3999,7 +3999,7 @@
"playWithAI": "अभी के लिए एआई के साथ खेलें",
"courseStartDesc": "पैंजिया बॉट कभी भी जाने के लिए तैयार है!\n\n...लेकिन दोस्तों के साथ सीखना बेहतर है!",
"@@locale": "hi",
"@@last_modified": "2026-02-12 14:19:50.325668",
"@@last_modified": "2026-02-12 15:55:38.647413",
"@alwaysUse24HourFormat": {
"type": "String",
"placeholders": {}
@ -12007,5 +12007,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "हमने एक नए टैब में सदस्यता प्रबंधन लॉन्च किया है। यदि आपने नया टैब नहीं देखा, तो कृपया अपने पॉपअप ब्लॉकर की जांच करें।",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,6 +1,6 @@
{
"@@locale": "hr",
"@@last_modified": "2026-02-12 14:19:16.781492",
"@@last_modified": "2026-02-12 15:54:44.996537",
"about": "Informacije",
"@about": {
"type": "String",
@ -11753,5 +11753,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Pokrenuli smo upravljanje pretplatama u novoj kartici. Ako niste vidjeli novu karticu, provjerite svoj blokator iskačućih prozora.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,6 +1,6 @@
{
"@@locale": "hu",
"@@last_modified": "2026-02-12 14:19:11.401904",
"@@last_modified": "2026-02-12 15:54:36.494745",
"about": "Névjegy",
"@about": {
"type": "String",
@ -11397,5 +11397,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Elindítottuk az előfizetéskezelést egy új lapon. Ha nem láttad az új lapot, kérlek ellenőrizd a felugróablak-blokkolódat.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1954,7 +1954,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-02-12 14:19:18.922556",
"@@last_modified": "2026-02-12 15:54:47.755572",
"@alwaysUse24HourFormat": {
"type": "String",
"placeholders": {}
@ -12472,5 +12472,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Mi lanĉis abonadministradon en nova langeto. Se vi ne vidis la novan langeton, bonvolu kontroli vian pop-up blokilon.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,5 +1,5 @@
{
"@@last_modified": "2026-02-12 14:19:12.173785",
"@@last_modified": "2026-02-12 15:54:37.712685",
"setAsCanonicalAlias": "Atur sebagai alias utama",
"@setAsCanonicalAlias": {
"type": "String",
@ -11366,5 +11366,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Kami telah meluncurkan manajemen langganan di tab baru. Jika Anda tidak melihat tab baru, silakan periksa pemblokir popup Anda.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -4000,7 +4000,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-02-12 14:19:15.453228",
"@@last_modified": "2026-02-12 15:54:43.547279",
"@alwaysUse24HourFormat": {
"type": "String",
"placeholders": {}
@ -12008,5 +12008,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Tugaimid tús le bainistíocht síntiúis i gcluaisín nua. Más rud é nach bhfaca tú an cluaisín nua, le do thoil seiceáil do bhacadóir pop-up.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,5 +1,5 @@
{
"@@last_modified": "2026-02-12 14:19:26.246745",
"@@last_modified": "2026-02-12 15:54:59.311944",
"about": "Informazioni",
"@about": {
"type": "String",
@ -11354,5 +11354,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Abbiamo lanciato la gestione degli abbonamenti in una nuova scheda. Se non hai visto la nuova scheda, controlla il tuo blocco dei popup.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,6 +1,6 @@
{
"@@locale": "ja",
"@@last_modified": "2026-02-12 14:19:49.555051",
"@@last_modified": "2026-02-12 15:55:37.098583",
"about": "このアプリについて",
"@about": {
"type": "String",
@ -12184,5 +12184,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "新しいタブでサブスクリプション管理を開始しました。新しいタブが表示されない場合は、ポップアップブロッカーを確認してください。",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -2590,7 +2590,7 @@
"playWithAI": "ამ დროისთვის ითამაშეთ AI-თან",
"courseStartDesc": "Pangea Bot მზადაა ნებისმიერ დროს გასასვლელად!\n\n...მაგრამ სწავლა უკეთესია მეგობრებთან ერთად!",
"@@locale": "ka",
"@@last_modified": "2026-02-12 14:19:52.730489",
"@@last_modified": "2026-02-12 15:55:42.671383",
"@alwaysUse24HourFormat": {
"type": "String",
"placeholders": {}
@ -12424,5 +12424,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "ჩვენი გამოწერის მართვა ახალი ჩანართში გაწვდილი გვაქვს. თუ ახალი ჩანართი არ გინახავთ, გთხოვთ შეამოწმოთ თქვენი პოპ-აპ ბლოკერი.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,5 +1,5 @@
{
"@@last_modified": "2026-02-12 14:19:06.049539",
"@@last_modified": "2026-02-12 15:54:26.148157",
"about": "소개",
"@about": {
"type": "String",
@ -11486,5 +11486,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "새 탭에서 구독 관리 기능을 시작했습니다. 새 탭이 보이지 않으면 팝업 차단기를 확인해 주세요.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -3857,7 +3857,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-02-12 14:19:39.720089",
"@@last_modified": "2026-02-12 15:55:21.225087",
"@alwaysUse24HourFormat": {
"type": "String",
"placeholders": {}
@ -12199,5 +12199,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Paleidome prenumeratos valdymą naujame skirtuke. Jei nematėte naujojo skirtuko, patikrinkite savo iššokančių langų blokatorių.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -4605,7 +4605,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-02-12 14:19:36.338931",
"@@last_modified": "2026-02-12 15:55:15.397809",
"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",
@ -11255,5 +11255,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Mēs esam palaiduši abonēšanas pārvaldību jaunā cilnē. Ja neesat redzējuši jauno cilni, lūdzu, pārbaudiet savu uznirstošo logu bloķētāju.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,5 +1,5 @@
{
"@@last_modified": "2026-02-12 14:19:29.069491",
"@@last_modified": "2026-02-12 15:55:03.826328",
"about": "Om",
"@about": {
"type": "String",
@ -11329,5 +11329,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Vi har lansert abonnementshåndtering i en ny fane. Hvis du ikke så den nye fanen, vennligst sjekk popup-blokkeren din.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,5 +1,5 @@
{
"@@last_modified": "2026-02-12 14:19:41.940922",
"@@last_modified": "2026-02-12 15:55:24.763725",
"about": "Over ons",
"@about": {
"type": "String",
@ -11260,5 +11260,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "We hebben het abonnementbeheer in een nieuw tabblad gelanceerd. Als je het nieuwe tabblad niet hebt gezien, controleer dan je pop-up blocker.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,6 +1,6 @@
{
"@@locale": "pl",
"@@last_modified": "2026-02-12 14:19:46.687042",
"@@last_modified": "2026-02-12 15:55:32.706990",
"about": "O aplikacji",
"@about": {
"type": "String",
@ -11382,5 +11382,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Uruchomiliśmy zarządzanie subskrypcjami w nowej karcie. Jeśli nie widzisz nowej karty, sprawdź swój blokator wyskakujących okienek.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,5 +1,5 @@
{
"@@last_modified": "2026-02-12 14:19:21.495283",
"@@last_modified": "2026-02-12 15:54:51.749090",
"copiedToClipboard": "Copiada para a área de transferência",
"@copiedToClipboard": {
"type": "String",
@ -12481,5 +12481,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Lançamos a gestão de assinaturas em uma nova aba. Se você não viu a nova aba, por favor, verifique seu bloqueador de pop-ups.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,5 +1,5 @@
{
"@@last_modified": "2026-02-12 14:19:19.754331",
"@@last_modified": "2026-02-12 15:54:49.082065",
"about": "Sobre",
"@about": {
"type": "String",
@ -11260,5 +11260,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Lançamos o gerenciamento de assinaturas em uma nova aba. Se você não viu a nova aba, verifique seu bloqueador de pop-ups.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -3327,7 +3327,7 @@
"selectAll": "Selecionar tudo",
"deselectAll": "Desmarcar tudo",
"@@locale": "pt_PT",
"@@last_modified": "2026-02-12 14:19:32.861651",
"@@last_modified": "2026-02-12 15:55:09.873153",
"@alwaysUse24HourFormat": {
"type": "String",
"placeholders": {}
@ -12428,5 +12428,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Lançamos a gestão de assinaturas em uma nova aba. Se você não viu a nova aba, por favor, verifique seu bloqueador de pop-ups.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,5 +1,5 @@
{
"@@last_modified": "2026-02-12 14:19:13.816075",
"@@last_modified": "2026-02-12 15:54:39.247533",
"about": "Despre",
"@about": {
"type": "String",
@ -12129,5 +12129,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Am lansat gestionarea abonamentelor într-o filă nouă. Dacă nu ai văzut fila nouă, te rugăm să verifici blocatorul de feronerie.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,6 +1,6 @@
{
"@@locale": "ru",
"@@last_modified": "2026-02-12 14:19:51.968270",
"@@last_modified": "2026-02-12 15:55:41.309030",
"about": "О проекте",
"@about": {
"type": "String",
@ -11260,5 +11260,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Мы запустили управление подписками в новой вкладке. Если вы не видите новую вкладку, пожалуйста, проверьте свой блокировщик всплывающих окон.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,6 +1,6 @@
{
"@@locale": "sk",
"@@last_modified": "2026-02-12 14:19:14.622122",
"@@last_modified": "2026-02-12 15:54:41.290145",
"about": "O aplikácii",
"@about": {
"type": "String",
@ -12478,5 +12478,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Spustili sme správu predplatného v novom okne. Ak ste nevideli nové okno, skontrolujte prosím svoj blokátor vyskakovacích okien.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -2460,7 +2460,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-02-12 14:19:24.467310",
"@@last_modified": "2026-02-12 15:54:56.456937",
"@alwaysUse24HourFormat": {
"type": "String",
"placeholders": {}
@ -12475,5 +12475,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Zagnali smo upravljanje naročnin v novem zavihku. Če novega zavihka niste videli, prosimo, preverite svoj blokator pojavnih oken.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,5 +1,5 @@
{
"@@last_modified": "2026-02-12 14:19:53.531659",
"@@last_modified": "2026-02-12 15:55:44.378014",
"about": "О програму",
"@about": {
"type": "String",
@ -12490,5 +12490,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Pokrenuli smo upravljanje pretplatama u novoj kartici. Ako niste videli novu karticu, molimo proverite svoj blokator iskačućih prozora.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,5 +1,5 @@
{
"@@last_modified": "2026-02-12 14:19:47.603162",
"@@last_modified": "2026-02-12 15:55:33.937274",
"about": "Om",
"@about": {
"type": "String",
@ -11872,5 +11872,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Vi har lanserat prenumerationshantering i en ny flik. Om du inte såg den nya fliken, vänligen kontrollera din popup-blockerare.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,5 +1,5 @@
{
"@@last_modified": "2026-02-12 14:19:41.262931",
"@@last_modified": "2026-02-12 15:55:23.698841",
"acceptedTheInvitation": "👍 {username} அழைப்பை ஏற்றுக்கொண்டது",
"@acceptedTheInvitation": {
"type": "String",
@ -11380,5 +11380,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "நாங்கள் புதிய தாவலில் சந்தா மேலாண்மையை தொடங்கினோம். நீங்கள் புதிய தாவலை காணவில்லை என்றால், உங்கள் பாப்-அப் தடுப்பை சரிபார்க்கவும்.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1916,7 +1916,7 @@
"playWithAI": "ఇప్పుడే AI తో ఆడండి",
"courseStartDesc": "పాంజియా బాట్ ఎప్పుడైనా సిద్ధంగా ఉంటుంది!\n\n...కానీ స్నేహితులతో నేర్చుకోవడం మెరుగైనది!",
"@@locale": "te",
"@@last_modified": "2026-02-12 14:19:38.869213",
"@@last_modified": "2026-02-12 15:55:19.505503",
"@setCustomPermissionLevel": {
"type": "String",
"placeholders": {}
@ -12483,5 +12483,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "మేము కొత్త టాబ్‌లో సబ్‌స్క్రిప్షన్ నిర్వహణను ప్రారంభించాము. మీరు కొత్త టాబ్‌ను చూడకపోతే, దయచేసి మీ పాప్-అప్ బ్లాకర్‌ను తనిఖీ చేయండి.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -3999,7 +3999,7 @@
"playWithAI": "เล่นกับ AI ชั่วคราว",
"courseStartDesc": "Pangea Bot พร้อมที่จะเริ่มต้นได้ทุกเมื่อ!\n\n...แต่การเรียนรู้ดีกว่ากับเพื่อน!",
"@@locale": "th",
"@@last_modified": "2026-02-12 14:19:32.047326",
"@@last_modified": "2026-02-12 15:55:08.750062",
"@alwaysUse24HourFormat": {
"type": "String",
"placeholders": {}
@ -12007,5 +12007,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "เราได้เปิดตัวการจัดการการสมัครสมาชิกในแท็บใหม่ หากคุณไม่เห็นแท็บใหม่ โปรดตรวจสอบตัวบล็อกป๊อปอัปของคุณ.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,6 +1,6 @@
{
"@@locale": "tr",
"@@last_modified": "2026-02-12 14:19:37.773936",
"@@last_modified": "2026-02-12 15:55:18.066423",
"about": "Hakkında",
"@about": {
"type": "String",
@ -11600,5 +11600,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Abonelik yönetimini yeni bir sekmede başlattık. Yeni sekmeyi görmediyseniz, lütfen açılır pencere engelleyicinizi kontrol edin.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,6 +1,6 @@
{
"@@locale": "uk",
"@@last_modified": "2026-02-12 14:19:27.246355",
"@@last_modified": "2026-02-12 15:55:00.736118",
"about": "Про застосунок",
"@about": {
"type": "String",
@ -11260,5 +11260,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Ми запустили управління підпискою в новій вкладці. Якщо ви не бачили нову вкладку, будь ласка, перевірте свій блокувальник спливаючих вікон.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -3495,7 +3495,7 @@
"setupChatBackup": "Chat zaxirasini sozlash",
"@setupChatBackup": {},
"@@locale": "uz",
"@@last_modified": "2026-02-12 14:19:34.497441",
"@@last_modified": "2026-02-12 15:55:12.635683",
"noMoreResultsFound": "Boshqa natijalar topilmadi",
"chatSearchedUntil": "Chat {time} gacha qidirildi",
"federationBaseUrl": "Federatsiya Asos URL",
@ -11154,5 +11154,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Biz obuna boshqaruvini yangi oynada ishga tushirdik. Agar siz yangi oynani ko'rmagan bo'lsangiz, iltimos, pop-up bloklovchingizni tekshiring.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,5 +1,5 @@
{
"@@last_modified": "2026-02-12 14:19:40.440257",
"@@last_modified": "2026-02-12 15:55:22.460223",
"about": "Giới thiệu",
"@about": {
"type": "String",
@ -6977,5 +6977,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "Chúng tôi đã ra mắt quản lý đăng ký trong một tab mới. Nếu bạn không thấy tab mới, vui lòng kiểm tra trình chặn popup của bạn.",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1852,7 +1852,7 @@
"selectAll": "全選",
"deselectAll": "取消全選",
"@@locale": "yue",
"@@last_modified": "2026-02-12 14:19:25.181672",
"@@last_modified": "2026-02-12 15:54:57.891614",
"@ignoreUser": {
"type": "String",
"placeholders": {}
@ -12490,5 +12490,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "我們在新標籤中啟動了訂閱管理。如果你沒有看到新標籤,請檢查你的彈出窗口阻擋器。",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,6 +1,6 @@
{
"@@locale": "zh",
"@@last_modified": "2026-02-12 14:19:43.735980",
"@@last_modified": "2026-02-12 15:55:28.100164",
"about": "关于",
"@about": {
"type": "String",
@ -11260,5 +11260,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "我们在新标签页中启动了订阅管理。如果您没有看到新标签页,请检查您的弹出窗口拦截器。",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -1,5 +1,5 @@
{
"@@last_modified": "2026-02-12 14:19:33.575679",
"@@last_modified": "2026-02-12 15:55:11.199909",
"about": "關於",
"@about": {
"type": "String",
@ -11399,5 +11399,10 @@
"@unlockLearningTools": {
"type": "String",
"placeholders": {}
},
"managementSnackbarMessage": "我們在新標籤中啟用了訂閱管理。如果您沒有看到新標籤,請檢查您的彈出窗口阻擋器。",
"@managementSnackbarMessage": {
"type": "String",
"placeholders": {}
}
}

View file

@ -3,9 +3,10 @@ import 'dart:async';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher_string.dart';
import 'package:url_launcher/url_launcher.dart';
import 'package:fluffychat/config/app_config.dart';
import 'package:fluffychat/l10n/l10n.dart';
import 'package:fluffychat/pangea/common/config/environment.dart';
import 'package:fluffychat/pangea/common/utils/error_handler.dart';
import 'package:fluffychat/pangea/subscription/controllers/subscription_controller.dart';
@ -30,6 +31,7 @@ class SubscriptionManagementController extends State<SubscriptionManagement>
SubscriptionDetails? selectedSubscription;
bool loading = false;
String? userEmail;
@override
void initState() {
@ -43,6 +45,11 @@ class SubscriptionManagementController extends State<SubscriptionManagement>
subscriptionController.addListener(_onSubscriptionUpdate);
subscriptionController.subscriptionNotifier.addListener(_onSubscribe);
subscriptionController.updateCustomerInfo();
MatrixState.pangeaController.userController.userEmail.then((email) {
if (mounted) {
setState(() => userEmail = email);
}
});
super.initState();
}
@ -174,60 +181,75 @@ class SubscriptionManagementController extends State<SubscriptionManagement>
}
Future<void> onClickCancelSubscription() async {
final uri = await launchMangementUrl(ManagementOption.cancel);
if (uri != null) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
showCloseIcon: true,
duration: const Duration(seconds: 30),
content: Row(
children: [
Expanded(child: Text(L10n.of(context).managementSnackbarMessage)),
TextButton(
child: Text(
L10n.of(context).tryAgain,
style: TextStyle(
color: Theme.of(context).colorScheme.primaryContainer,
),
),
onPressed: () {
launchUrl(uri, mode: LaunchMode.externalApplication);
},
),
],
),
),
);
}
await SubscriptionManagementRepo.setClickedCancelSubscription();
await SubscriptionManagementRepo.setSubscriptionEndDate(
subscriptionEndDate,
);
await launchMangementUrl(ManagementOption.cancel);
if (mounted) setState(() {});
}
Future<void> launchMangementUrl(ManagementOption option) async {
Future<Uri?> launchMangementUrl(ManagementOption option) async {
String managementUrl = Environment.stripeManagementUrl;
final String? email =
await MatrixState.pangeaController.userController.userEmail;
if (email != null) {
managementUrl += "?prefilled_email=${Uri.encodeComponent(email)}";
if (userEmail != null) {
managementUrl += "?prefilled_email=${Uri.encodeComponent(userEmail!)}";
}
final String? purchaseAppId = subscriptionController
.currentSubscriptionInfo
?.currentSubscription
?.appId;
if (purchaseAppId == null) return;
if (purchaseAppId == null) return null;
final SubscriptionAppIds? appIds =
subscriptionController.availableSubscriptionInfo!.appIds;
if (purchaseAppId == appIds?.stripeId) {
launchUrlString(managementUrl);
return;
final uri = Uri.parse(managementUrl);
launchUrl(uri, mode: LaunchMode.externalApplication);
return uri;
}
if (purchaseAppId == appIds?.appleId) {
launchUrlString(
AppConfig.appleMangementUrl,
mode: LaunchMode.externalApplication,
);
return;
final uri = Uri.parse(AppConfig.appleMangementUrl);
launchUrl(uri, mode: LaunchMode.externalApplication);
return uri;
}
switch (option) {
case ManagementOption.history:
launchUrlString(
AppConfig.googlePlayHistoryUrl,
mode: LaunchMode.externalApplication,
);
break;
final uri = Uri.parse(AppConfig.googlePlayHistoryUrl);
launchUrl(uri, mode: LaunchMode.externalApplication);
return uri;
case ManagementOption.paymentMethod:
launchUrlString(
AppConfig.googlePlayPaymentMethodUrl,
mode: LaunchMode.externalApplication,
);
break;
final uri = Uri.parse(AppConfig.googlePlayPaymentMethodUrl);
launchUrl(uri, mode: LaunchMode.externalApplication);
return uri;
default:
launchUrlString(
AppConfig.googlePlayMangementUrl,
mode: LaunchMode.externalApplication,
);
break;
final uri = Uri.parse(AppConfig.googlePlayMangementUrl);
launchUrl(uri, mode: LaunchMode.externalApplication);
return uri;
}
}