diff --git a/CHANGELOG.md b/CHANGELOG.md index 7441f4533..8837c0ae1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,39 @@ +## v2.3.0 + +FluffyChat v2.3.0 fixes a possible database corruption bug on Android, also fixes a +major performance leak and introduces polls and threads. + +- feat: Implement polls (Christian Kußowski) +- feat: Implement threads (krille-chan) +- fix: Database corruption because notification tab isolate starts too late (Christian Kußowski) +- refactor: Improved UIA support for OIDC and SSO (Christian Kußowski) +- refactor: Invite users when upgrading private room (Christian Kußowski) +- build: (deps): bump cross_file from 0.3.4+2 to 0.3.5 (dependabot[bot]) +- build: (deps): bump file_picker from 10.3.3 to 10.3.6 (dependabot[bot]) +- build: (deps): bump go_router from 16.3.0 to 17.0.0 (dependabot[bot]) +- build: (deps): bump http from 1.5.0 to 1.6.0 (dependabot[bot]) +- build: (deps): bump image_picker from 1.2.0 to 1.2.1 (dependabot[bot]) +- build: (deps): bump qr_code_scanner_plus from 2.0.13 to 2.0.14 (dependabot[bot]) +- build: (deps): bump video_player from 2.10.0 to 2.10.1 (dependabot[bot]) +- build: Switch back to stable web auth package (krille-chan) +- build: Use matrix sdk 4.0.0 (Christian Kußowski) +- build: Use secure storage from pub.dev again (krille-chan) +- chore(translations): Added translation using Weblate (Uzbek) (bahrom04) +- chore(translations): Translated using Weblate (Basque) (xabirequejo) +- chore(translations): Translated using Weblate (Belarusian) (Alex Katon) +- chore(translations): Translated using Weblate (Chinese (Simplified Han script)) (大王叫我来巡山) +- chore(translations): Translated using Weblate (Dutch) (Jelv) +- chore(translations): Translated using Weblate (Estonian) (Priit Jõerüüt) +- chore(translations): Translated using Weblate (Finnish) (Priit Jõerüüt) +- chore(translations): Translated using Weblate (Finnish) (Ricky Tigg) +- chore(translations): Translated using Weblate (French) (luneth) +- chore(translations): Translated using Weblate (Galician) (josé m.) +- chore(translations): Translated using Weblate (Irish) (Aindriú Mac Giolla Eoin) +- chore(translations): Translated using Weblate (Latvian) (Edgars Andersons) +- chore(translations): Translated using Weblate (Norwegian Bokmål) (Frank Paul Silye) +- chore(translations): Translated using Weblate (Uzbek) (bahrom04) +- chore(translations): Translated using Weblate (Uzbek) (BeMeritus) + ## v2.2.0 FluffyChat 2.2.0 introduces a new UX for spaces and adds support for restricted diff --git a/android/fastlane/metadata/android/en-US/changelogs/default.txt b/android/fastlane/metadata/android/en-US/changelogs/default.txt index a69b067f6..28ba54f3e 100644 --- a/android/fastlane/metadata/android/en-US/changelogs/default.txt +++ b/android/fastlane/metadata/android/en-US/changelogs/default.txt @@ -1,8 +1,2 @@ -FluffyChat 2.2.0 introduces a new UX for spaces and adds support for restricted -join rules. -The app also now has a new design for recording voice messages including a -pause button. -You also now see the progress when downloading files. -Also FluffyChat now supports notification actions (reply and mark as read) and -also now supports Android Auto integration. Please do not cause an accident when using -the app while driving! \ No newline at end of file +FluffyChat 2.3.0 fixes a possible database corruption bug, also fixes a +major performance leak and introduces polls and threads. \ No newline at end of file diff --git a/lib/l10n/intl_fi.arb b/lib/l10n/intl_fi.arb index bc478e2df..cc2fb396b 100644 --- a/lib/l10n/intl_fi.arb +++ b/lib/l10n/intl_fi.arb @@ -2692,79 +2692,226 @@ "@moveDown": {}, "poll": "Kysely", "@poll": {}, - "setCustomPermissionLevel": "Aseta mukautettu käyttöoikeustaso", - "setPermissionsLevelDescription": "Valitse alla ennalta määritetty rooli tai syötä mukautettu käyttöoikeustaso väliltä 0–100.", - "ignoreUser": "Ohita käyttäjä", - "normalUser": "Normaali käyttäjä", - "aboutHomeserver": "Tietoja {homeserver}", - "commandHint_roomupgrade": "Päivitä tämä huone annettuun huonetyyppiin", - "appLockDescription": "Lukitse sovellus, kun sitä ei käytetä, PIN-koodilla", - "countChatsAndCountParticipants": "{chats} keskustelua ja {participants} osallistujaa", - "noChatsFoundHere": "Täällä ei ole vielä keskusteluja. Aloita uusi keskustelu jonkun kanssa käyttämällä alla olevaa painiketta. ⤵️", - "joinedChats": "Liitetyt keskustelut", + "setCustomPermissionLevel": "Aseta mukautettu lupataso", + "@setCustomPermissionLevel": {}, + "setPermissionsLevelDescription": "Valitse alla oleva ennalta määritetty rooli tai anna mukautettu lupataso väliltä 0–100.", + "@setPermissionsLevelDescription": {}, + "ignoreUser": "Jätä huomiotta", + "@ignoreUser": {}, + "normalUser": "Peruskäyttäjä", + "@normalUser": {}, + "aboutHomeserver": "Tietoja {homeserver}:sta", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "commandHint_roomupgrade": "Päivitä tämä huone annettuun huoneversioon", + "@commandHint_roomupgrade": {}, + "appLockDescription": "Lukitse sovellus kun sitä ei käytetä PIN-koodin kanssa", + "@appLockDescription": {}, + "countChatsAndCountParticipants": "{chats} pikakeskustelut ja {participants} osallistujat", + "@countChatsAndCountParticipants": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + }, + "participants": { + "type": "int" + } + } + }, + "noChatsFoundHere": "Täältä ei löytynyt vielä pikakeskusteluja. Aloita uusi pikakeskustelu jonkun kanssa alla olevalla painikkeella. ⤵️", + "@noChatsFoundHere": {}, + "joinedChats": "Liittyneet pikakeskustelut", + "@joinedChats": {}, "space": "Tila", + "@space": {}, "spaces": "Tilat", + "@spaces": {}, "checkList": "Tarkistuslista", + "@checkList": {}, "countInvited": "{count} kutsuttu", - "globalChatId": "Globaali keskustelutunnus", - "accessAndVisibilityDescription": "Kuka saa liittyä tähän keskusteluun ja kuinka keskustelu voidaan löytää.", + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "globalChatId": "Yleisesti pätevä keskustelutunnus", + "@globalChatId": {}, + "accessAndVisibilityDescription": "Kuka voi liittyä tähän pikakeskusteluun ja miten pikakeskustelun voi löytää.", + "@accessAndVisibilityDescription": {}, "calls": "Puhelut", - "customEmojisAndStickers": "Mukautetut emotikonit ja tarrat", - "customEmojisAndStickersBody": "Lisää tai jaa mukautettuja emotikoneja tai tarroja, joita voi käyttää missä tahansa keskustelussa.", + "@calls": {}, + "customEmojisAndStickers": "Mukautetut emojit ja tarrat", + "@customEmojisAndStickers": {}, + "customEmojisAndStickersBody": "Lisää tai jaa mukautettuja emojeja tai tarroja, joita voidaan käyttää missä tahansa pikakeskustelussa.", + "@customEmojisAndStickersBody": {}, + "hideInvalidOrUnknownMessageFormats": "Piilota virheelliset tai tuntemattomat viestimuodot", + "@hideInvalidOrUnknownMessageFormats": {}, + "block": "Estä", + "@block": {}, + "blockedUsers": "Estetyt käyttäjät", + "@blockedUsers": {}, + "blockListDescription": "Voit estää sinua häiritsevät käyttäjät. Et voi vastaanottaa viestejä tai huonekutsuja henkilökohtaisella estolistallasi olevilta käyttäjiltä.", + "@blockListDescription": {}, + "hideMemberChangesInPublicChats": "Piilota jäsenten muutokset julkisissa pikakeskusteluissa", + "@hideMemberChangesInPublicChats": {}, + "hideMemberChangesInPublicChatsBody": "Älä näytä pikakeskustelun aikajanalla, jos joku liittyy julkiseen pikakeskusteluun tai poistuu siitä luettavuuden parantamiseksi.", + "@hideMemberChangesInPublicChatsBody": {}, + "blockUsername": "Jätä käyttäjänimi huomiotta", + "@blockUsername": {}, + "overview": "Yleiskatsaus", + "@overview": {}, + "notifyMeFor": "Ilmoita minulle", + "@notifyMeFor": {}, + "passwordRecoverySettings": "Salasanan palautusasetukset", + "@passwordRecoverySettings": {}, + "sendImages": "Lähetä {count} kuva", + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "presenceStyle": "Läsnäolo:", + "@presenceStyle": { + "type": "String", + "placeholders": {} + }, + "presencesToggle": "Näytä muiden käyttäjien tilaviestit", + "@presencesToggle": { + "type": "String", + "placeholders": {} + }, + "synchronizingPleaseWaitCounter": " Synkronoidaan… ({percentage} %)", + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "youInvitedToBy": "📩 Sinut on kutsuttu linkin kautta kohteeseen:\n{alias}", + "@youInvitedToBy": { + "placeholders": { + "alias": { + "type": "String" + } + } + }, + "invitedBy": "📩 Kutsujana {user}", + "@invitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "usersMustKnock": "Käyttäjien on koputettava", + "@usersMustKnock": {}, + "noOneCanJoin": "Kukaan ei voi liittyä", + "@noOneCanJoin": {}, + "userWouldLikeToChangeTheChat": "{user} haluaa liittyä pikakeskusteluun.", + "@userWouldLikeToChangeTheChat": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "noPublicLinkHasBeenCreatedYet": "Julkista linkkiä ei ole vielä luotu", + "@noPublicLinkHasBeenCreatedYet": {}, + "knock": "Koputa", + "@knock": {}, + "hidePresences": "Piilotetaanko tilaluettelo?", + "@hidePresences": {}, + "removeDevicesDescription": "Sinut kirjataan ulos tästä laitteesta, etkä voi enää vastaanottaa viestejä.", + "@removeDevicesDescription": {}, + "banUserDescription": "Käyttäjä kielletään pikakeskustelusta, eikä hän voi liittyä pikakeskusteluun uudelleen ennen kuin kielto kumotetaan.", + "@banUserDescription": {}, + "unbanUserDescription": "Käyttäjä voi liittyä pikakeskusteluun uudelleen, jos hän yrittää.", + "@unbanUserDescription": {}, + "kickUserDescription": "Käyttäjä potkitaan ulos pikakeskustelusta, mutta häntä ei porttikieltoa saada. Julkisissa pikakeskusteluissa käyttäjä voi liittyä takaisin milloin tahansa.", + "@kickUserDescription": {}, + "makeAdminDescription": "Kun olet tehnyt tästä käyttäjästä järjestelmänvalvojan, et ehkä voi perua tätä, koska hänellä on siitä hetkestä lähtien samat oikeudet kuin sinulla.", + "@makeAdminDescription": {}, + "pushNotificationsNotAvailable": "Työntöilmoitukset ei saatavilla", + "@pushNotificationsNotAvailable": {}, + "learnMore": "Opi lisää", + "@learnMore": {}, + "yourGlobalUserIdIs": "Yleisesti pätevä käyttäjätunnuksesi on: ", + "@yourGlobalUserIdIs": {}, + "noUsersFoundWithQuery": "Valitettavasti käyttäjää ei löytynyt haulla \"{query}\". Tarkistathan, onko kirjoitusvirhe.", + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "knocking": "Koputetaan", + "@knocking": {}, + "chatCanBeDiscoveredViaSearchOnServer": "Pikakeskustelu löytyy haulla {server}:lta", + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "searchChatsRooms": "Hae #pikakeskustelut, @käyttäjät...", + "@searchChatsRooms": {}, + "nothingFound": "Mitään ei löytynyt...", + "@nothingFound": {}, + "groupName": "Ryhmän nimi", + "@groupName": {}, + "createGroupAndInviteUsers": "Luo ryhmä ja kutsu käyttäjiä", + "@createGroupAndInviteUsers": {}, + "groupCanBeFoundViaSearch": "Ryhmä löytyy haun kautta", + "@groupCanBeFoundViaSearch": {}, + "wrongRecoveryKey": "Pahoittelut... tämä ei vaikuta olevan oikea palautusavain.", + "@wrongRecoveryKey": {}, + "startConversation": "Aloita keskustelu", + "@startConversation": {}, + "commandHint_sendraw": "Lähetä raaka JSON", + "@commandHint_sendraw": {}, + "databaseMigrationTitle": "Tietokanta on optimoitu", + "@databaseMigrationTitle": {}, + "databaseMigrationBody": "Odotathan hetki. Tämä voi kestää hetken.", + "@databaseMigrationBody": {}, + "leaveEmptyToClearStatus": "Jätä tyhjäksi tyhjentääksesi tilasi.", + "@leaveEmptyToClearStatus": {}, + "publicLink": "Julkinen linkki", + "@publicLink": {}, + "publicChatAddresses": "Julkiset keskusteluosoitteet", + "@publicChatAddresses": {}, + "createNewAddress": "Luo uusi osoite", + "@createNewAddress": {}, + "joinSpace": "Liity tilaan", + "@joinSpace": {}, + "publicSpaces": "Julkiset tilat", + "@publicSpaces": {}, + "addChatOrSubSpace": "Lisää pikakeskustelu tai alitila", + "@addChatOrSubSpace": {}, + "subspace": "Alitila", + "@subspace": {}, + "decline": "Hylkää", + "@decline": {}, "hideRedactedMessages": "Piilota muokatut viestit", "hideRedactedMessagesBody": "Jos joku muokkaa viestin, tämä viesti ei ole enää näkyvissä keskustelussa.", - "hideInvalidOrUnknownMessageFormats": "Piilota virheelliset tai tuntemattomat viestimuodot", - "block": "Estä", - "blockedUsers": "Estetyt käyttäjät", - "blockListDescription": "Voit estää häiritseviä käyttäjiä. Et voi vastaanottaa viestejä tai huoneen kutsuja käyttäjiltä, jotka ovat estolistallasi.", - "blockUsername": "Ohita käyttäjänimi", - "hideMemberChangesInPublicChats": "Piilota jäsenvaihdokset julkisissa keskusteluissa", - "hideMemberChangesInPublicChatsBody": "Älä näytä keskustelun aikajanalla, jos joku liittyy tai poistuu julkisesta keskustelusta, parantaen luettavuutta.", - "overview": "Yleiskatsaus", - "notifyMeFor": "Ilmoita minulle", - "passwordRecoverySettings": "Salasanan palautusasetukset", - "sendImages": "Lähetä {count} kuva", - "presenceStyle": "Läsnäolo:", - "presencesToggle": "Näytä muiden käyttäjien tilaviestit", - "synchronizingPleaseWaitCounter": " Synkronoidaan… ({percentage}%)", - "youInvitedToBy": "📩 Sinut on kutsuttu linkin kautta:\n{alias}", - "invitedBy": "📩 Kutsunut {user}", - "usersMustKnock": "Käyttäjien täytyy koputtaa", - "noOneCanJoin": "Kukaan ei voi liittyä", - "userWouldLikeToChangeTheChat": "{user} haluaisi liittyä keskusteluun.", - "noPublicLinkHasBeenCreatedYet": "Yhtään julkista linkkiä ei ole vielä luotu", - "knock": " Koputa", - "hidePresences": "Piilota tila-lista?", - "removeDevicesDescription": "Sinut kirjataan ulos tästä laitteesta etkä enää voi vastaanottaa viestejä.", - "banUserDescription": "Käyttäjä estetään keskustelusta eikä hän voi enää liittyä keskusteluun ennen kuin hänet vapautetaan estosta.", - "unbanUserDescription": "Käyttäjä voi liittyä keskusteluun uudelleen, jos hän yrittää.", - "kickUserDescription": "Käyttäjä poistetaan keskustelusta, mutta häntä ei estetä. Julkisissa keskusteluissa käyttäjä voi liittyä uudelleen milloin tahansa.", - "makeAdminDescription": "Kun teet tämän käyttäjän ylläpitäjäksi, et ehkä voi peruuttaa tätä, koska hänellä on samat oikeudet kuin sinulla.", - "pushNotificationsNotAvailable": "Ponnahdusilmoitukset eivät ole saatavilla", - "learnMore": "Lisätietoja", - "yourGlobalUserIdIs": "Kansainvälinen käyttäjätunnuksesi on: ", - "noUsersFoundWithQuery": "Valitettavasti käyttäjää ei löytynyt haulla \"{query}\". Tarkista, onko kirjoitusvirhe.", - "knocking": " Koputtaa", - "chatCanBeDiscoveredViaSearchOnServer": "Keskustelu voidaan löytää haun avulla palvelimella {server}", - "searchChatsRooms": "Etsi #keskusteluja, @käyttäjiä...", - "nothingFound": "Ei mitään löytynyt...", - "groupName": "Ryhmän nimi", - "createGroupAndInviteUsers": "Luo ryhmä ja kutsu käyttäjiä", - "groupCanBeFoundViaSearch": "Ryhmän voi löytää haun avulla", - "wrongRecoveryKey": "Valitettavasti tämä ei näytä oikealta palautusavaimelta.", - "startConversation": "Aloita keskustelu", - "commandHint_sendraw": "Lähetä raakaa jsonia", - "databaseMigrationTitle": "Tietokanta on optimoitu", - "databaseMigrationBody": "Odota hetki. Tämä saattaa kestää hetken.", - "leaveEmptyToClearStatus": "Jätä tyhjäksi poistaaksesi tilasi.", - "publicLink": "Julkinen linkki", - "publicChatAddresses": "Julkiset keskustelunumerot", - "createNewAddress": "Luo uusi osoite", - "joinSpace": "Liity tilaan", - "publicSpaces": "Julkiset tilat", - "addChatOrSubSpace": "Lisää keskustelu tai alitila", - "subspace": "Alitila", - "decline": "Hylkää", "initAppError": "Sovelluksen alustuksessa tapahtui virhe", "userRole": "Käyttäjän rooli", "minimumPowerLevel": "{level} on minimitehotaso.", @@ -4043,97 +4190,6 @@ "courseStartDesc": "Pangea Bot on valmis milloin tahansa!\n\n...mutta oppiminen on parempaa ystävien kanssa!", "@@locale": "fi", "@@last_modified": "2026-01-29 15:24:28.359131", - "@setCustomPermissionLevel": { - "type": "String", - "placeholders": {} - }, - "@setPermissionsLevelDescription": { - "type": "String", - "placeholders": {} - }, - "@ignoreUser": { - "type": "String", - "placeholders": {} - }, - "@normalUser": { - "type": "String", - "placeholders": {} - }, - "@aboutHomeserver": { - "type": "String", - "placeholders": { - "homeserver": { - "type": "String" - } - } - }, - "@commandHint_roomupgrade": { - "type": "String", - "placeholders": {} - }, - "@appLockDescription": { - "type": "String", - "placeholders": {} - }, - "@countChatsAndCountParticipants": { - "type": "String", - "placeholders": { - "chats": { - "type": "int" - }, - "participants": { - "type": "int" - } - } - }, - "@noChatsFoundHere": { - "type": "String", - "placeholders": {} - }, - "@joinedChats": { - "type": "String", - "placeholders": {} - }, - "@space": { - "type": "String", - "placeholders": {} - }, - "@spaces": { - "type": "String", - "placeholders": {} - }, - "@checkList": { - "type": "String", - "placeholders": {} - }, - "@countInvited": { - "type": "String", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "@globalChatId": { - "type": "String", - "placeholders": {} - }, - "@accessAndVisibilityDescription": { - "type": "String", - "placeholders": {} - }, - "@calls": { - "type": "String", - "placeholders": {} - }, - "@customEmojisAndStickers": { - "type": "String", - "placeholders": {} - }, - "@customEmojisAndStickersBody": { - "type": "String", - "placeholders": {} - }, "@hideRedactedMessages": { "type": "String", "placeholders": {} @@ -4142,242 +4198,6 @@ "type": "String", "placeholders": {} }, - "@hideInvalidOrUnknownMessageFormats": { - "type": "String", - "placeholders": {} - }, - "@block": { - "type": "String", - "placeholders": {} - }, - "@blockedUsers": { - "type": "String", - "placeholders": {} - }, - "@blockListDescription": { - "type": "String", - "placeholders": {} - }, - "@blockUsername": { - "type": "String", - "placeholders": {} - }, - "@hideMemberChangesInPublicChats": { - "type": "String", - "placeholders": {} - }, - "@hideMemberChangesInPublicChatsBody": { - "type": "String", - "placeholders": {} - }, - "@overview": { - "type": "String", - "placeholders": {} - }, - "@notifyMeFor": { - "type": "String", - "placeholders": {} - }, - "@passwordRecoverySettings": { - "type": "String", - "placeholders": {} - }, - "@sendImages": { - "type": "String", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "@presenceStyle": { - "type": "String", - "placeholders": {} - }, - "@presencesToggle": { - "type": "String", - "placeholders": {} - }, - "@synchronizingPleaseWaitCounter": { - "type": "String", - "placeholders": { - "percentage": { - "type": "String" - } - } - }, - "@youInvitedToBy": { - "type": "String", - "placeholders": { - "alias": { - "type": "String" - } - } - }, - "@invitedBy": { - "type": "String", - "placeholders": { - "user": { - "type": "String" - } - } - }, - "@usersMustKnock": { - "type": "String", - "placeholders": {} - }, - "@noOneCanJoin": { - "type": "String", - "placeholders": {} - }, - "@userWouldLikeToChangeTheChat": { - "type": "String", - "placeholders": { - "user": { - "type": "String" - } - } - }, - "@noPublicLinkHasBeenCreatedYet": { - "type": "String", - "placeholders": {} - }, - "@knock": { - "type": "String", - "placeholders": {} - }, - "@hidePresences": { - "type": "String", - "placeholders": {} - }, - "@removeDevicesDescription": { - "type": "String", - "placeholders": {} - }, - "@banUserDescription": { - "type": "String", - "placeholders": {} - }, - "@unbanUserDescription": { - "type": "String", - "placeholders": {} - }, - "@kickUserDescription": { - "type": "String", - "placeholders": {} - }, - "@makeAdminDescription": { - "type": "String", - "placeholders": {} - }, - "@pushNotificationsNotAvailable": { - "type": "String", - "placeholders": {} - }, - "@learnMore": { - "type": "String", - "placeholders": {} - }, - "@yourGlobalUserIdIs": { - "type": "String", - "placeholders": {} - }, - "@noUsersFoundWithQuery": { - "type": "String", - "placeholders": { - "query": { - "type": "String" - } - } - }, - "@knocking": { - "type": "String", - "placeholders": {} - }, - "@chatCanBeDiscoveredViaSearchOnServer": { - "type": "String", - "placeholders": { - "server": { - "type": "String" - } - } - }, - "@searchChatsRooms": { - "type": "String", - "placeholders": {} - }, - "@nothingFound": { - "type": "String", - "placeholders": {} - }, - "@groupName": { - "type": "String", - "placeholders": {} - }, - "@createGroupAndInviteUsers": { - "type": "String", - "placeholders": {} - }, - "@groupCanBeFoundViaSearch": { - "type": "String", - "placeholders": {} - }, - "@wrongRecoveryKey": { - "type": "String", - "placeholders": {} - }, - "@startConversation": { - "type": "String", - "placeholders": {} - }, - "@commandHint_sendraw": { - "type": "String", - "placeholders": {} - }, - "@databaseMigrationTitle": { - "type": "String", - "placeholders": {} - }, - "@databaseMigrationBody": { - "type": "String", - "placeholders": {} - }, - "@leaveEmptyToClearStatus": { - "type": "String", - "placeholders": {} - }, - "@publicLink": { - "type": "String", - "placeholders": {} - }, - "@publicChatAddresses": { - "type": "String", - "placeholders": {} - }, - "@createNewAddress": { - "type": "String", - "placeholders": {} - }, - "@joinSpace": { - "type": "String", - "placeholders": {} - }, - "@publicSpaces": { - "type": "String", - "placeholders": {} - }, - "@addChatOrSubSpace": { - "type": "String", - "placeholders": {} - }, - "@subspace": { - "type": "String", - "placeholders": {} - }, - "@decline": { - "type": "String", - "placeholders": {} - }, "@initAppError": { "type": "String", "placeholders": {} diff --git a/lib/l10n/intl_uz.arb b/lib/l10n/intl_uz.arb index 11c6d5deb..2d77349b0 100644 --- a/lib/l10n/intl_uz.arb +++ b/lib/l10n/intl_uz.arb @@ -1,10 +1,18 @@ { "repeatPassword": "Parolni takrorlang", "@repeatPassword": {}, - "normalUser": "Odatiy foydalanuvchi", + "normalUser": "Oddiy foydalanuvchi", "@normalUser": {}, "alwaysUse24HourFormat": "true", "@alwaysUse24HourFormat": { "description": "Set to true to always display time of day in 24 hour format." - } + }, + "notAnImage": "Rasm fayli emas.", + "@notAnImage": {}, + "setCustomPermissionLevel": "Maxsus ruxsatlar darajasini sozlash", + "@setCustomPermissionLevel": {}, + "setPermissionsLevelDescription": "Quyidagi oldindan belgilangan rolni tanlang yoki 0-100 orasidagi maxsus ruxsatlar darajasini kiriting.", + "@setPermissionsLevelDescription": {}, + "ignoreUser": "Foydalanuvchini e’tiborsiz qoldirish", + "@ignoreUser": {} } diff --git a/lib/pages/chat/events/message.dart b/lib/pages/chat/events/message.dart index 1f42723e1..8ba7619f7 100644 --- a/lib/pages/chat/events/message.dart +++ b/lib/pages/chat/events/message.dart @@ -725,7 +725,7 @@ class Message extends StatelessWidget { ? snapshot .data! : Event( - eventId: event.relationshipEventId!, + eventId: event.inReplyToEventId() ?? '\$fake_event_id', content: { 'msgtype': 'm.text', 'body': '...', diff --git a/lib/pangea/events/constants/pangea_event_types.dart b/lib/pangea/events/constants/pangea_event_types.dart index 80fbd1323..252c4ac6e 100644 --- a/lib/pangea/events/constants/pangea_event_types.dart +++ b/lib/pangea/events/constants/pangea_event_types.dart @@ -17,6 +17,7 @@ class PangeaEventTypes { static const choreoRecord = "pangea.record"; static const representation = "pangea.representation"; static const sttTranslation = "pangea.stt_translation"; + static const textToSpeech = "pangea.text_to_speech"; // static const vocab = "p.vocab"; static const roomInfo = "pangea.roomtopic"; diff --git a/lib/pangea/events/event_wrappers/pangea_message_event.dart b/lib/pangea/events/event_wrappers/pangea_message_event.dart index 67809bb92..bb9d629c0 100644 --- a/lib/pangea/events/event_wrappers/pangea_message_event.dart +++ b/lib/pangea/events/event_wrappers/pangea_message_event.dart @@ -97,7 +97,7 @@ class PangeaMessageEvent { Set get allAudio => _latestEdit .aggregatedEvents( timeline, - RelationshipTypes.reply, + PangeaEventTypes.textToSpeech, ) .where((element) { return element.content.tryGet>( @@ -416,7 +416,6 @@ class PangeaMessageEvent { room.sendFileEvent( file, - inReplyTo: _event, extraContent: { 'info': { ...file.info, @@ -430,15 +429,12 @@ class PangeaMessageEvent { ModelKey.transcription: response .toPangeaAudioEventData(rep?.text ?? body, langCode, voice) .toJson(), + "m.relates_to": { + "rel_type": PangeaEventTypes.textToSpeech, + "event_id": _event.eventId, + }, }, - ).then((eventId) async { - final Event? audioEvent = - eventId != null ? await room.getEventById(eventId) : null; - - if (audioEvent != null) { - allAudio.add(audioEvent); - } - }); + ); return file; } diff --git a/lib/pangea/toolbar/layout/overlay_message.dart b/lib/pangea/toolbar/layout/overlay_message.dart index 076d70818..cd6963d83 100644 --- a/lib/pangea/toolbar/layout/overlay_message.dart +++ b/lib/pangea/toolbar/layout/overlay_message.dart @@ -155,7 +155,10 @@ class OverlayMessage extends StatelessWidget { mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, children: [ - if (event.relationshipType == RelationshipTypes.reply) + if (event.inReplyToEventId( + includingFallback: false, + ) != + null) FutureBuilder( future: event.getReplyEvent( timeline, diff --git a/pubspec.lock b/pubspec.lock index 642bc03e3..7d225611d 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1507,7 +1507,7 @@ packages: path: "/Users/ggurdin/pangea/matrix-dart-sdk" relative: false source: path - version: "3.0.2" + version: "4.0.0" meta: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 5efea722b..6d3b78fba 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -61,10 +61,7 @@ dependencies: latlong2: ^0.9.1 linkify: ^5.0.0 # #Pangea - # matrix: #^3.0.1 - # git: - # url: https://github.com/famedly/matrix-dart-sdk.git - # ref: main + # matrix: ^4.0.0 matrix: path: /Users/ggurdin/pangea/matrix-dart-sdk # Pangea# diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index a31787047..aec3f009a 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -1,7 +1,7 @@ name: fluffychat title: FluffyChat base: core24 -version: 2.2.0 +version: 2.3.0 license: AGPL-3.0 summary: The cutest messenger in the Matrix network description: | @@ -53,7 +53,7 @@ platforms: parts: flutter-git: source: https://github.com/flutter/flutter.git - source-tag: 3.35.5 + source-tag: 3.35.7 source-depth: 1 plugin: nil override-build: |