diff --git a/android/app/src/main/kotlin/chat/fluffy/fluffychat/FcmPushService.kt b/android/app/src/main/kotlin/chat/fluffy/fluffychat/FcmPushService.kt
index d9930f557..0db8bdcae 100644
--- a/android/app/src/main/kotlin/chat/fluffy/fluffychat/FcmPushService.kt
+++ b/android/app/src/main/kotlin/chat/fluffy/fluffychat/FcmPushService.kt
@@ -2,17 +2,9 @@
import com.famedly.fcm_shared_isolate.FcmSharedIsolateService
-import chat.fluffy.fluffychat.MainActivity
-
-import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine
-import io.flutter.view.FlutterMain
import io.flutter.embedding.engine.dart.DartExecutor.DartEntrypoint
-
import android.content.Context
-import android.os.Bundle
-import android.util.Log
-import android.view.WindowManager
class FcmPushService : FcmSharedIsolateService() {
override fun getEngine(): FlutterEngine {
diff --git a/android/app/src/main/res/xml/locale_config.xml b/android/app/src/main/res/xml/locale_config.xml
index 46d66d7b8..b3bb1ff7a 100644
--- a/android/app/src/main/res/xml/locale_config.xml
+++ b/android/app/src/main/res/xml/locale_config.xml
@@ -45,6 +45,7 @@
+
diff --git a/assets/l10n/intl_de.arb b/assets/l10n/intl_de.arb
index a364e036c..bff044f66 100644
--- a/assets/l10n/intl_de.arb
+++ b/assets/l10n/intl_de.arb
@@ -3273,5 +3273,21 @@
"notificationRuleJitsi": "Jitsi",
"@notificationRuleJitsi": {},
"allDevices": "Alle Geräte",
- "@allDevices": {}
+ "@allDevices": {},
+ "enterNewChat": "Neuen Chat starten",
+ "@enterNewChat": {},
+ "shareKeysWith": "Schlüssel teilen mit...",
+ "@shareKeysWith": {},
+ "shareKeysWithDescription": "Welchen Geräten sollte vertraut werden, damit sie deine Nachrichten in verschlüsselten Chats mitlesen können?",
+ "@shareKeysWithDescription": {},
+ "verifiedDevicesOnly": "Nur verifizierte Geräte",
+ "@verifiedDevicesOnly": {},
+ "takeAPhoto": "Foto aufnehmen",
+ "@takeAPhoto": {},
+ "recordAVideo": "Video aufnehmen",
+ "@recordAVideo": {},
+ "optionalMessage": "(Optionale) Nachricht...",
+ "@optionalMessage": {},
+ "notSupportedOnThisDevice": "Nicht unterstützt auf diesem Gerät",
+ "@notSupportedOnThisDevice": {}
}
diff --git a/assets/l10n/intl_et.arb b/assets/l10n/intl_et.arb
index c1c694544..5cefa835e 100644
--- a/assets/l10n/intl_et.arb
+++ b/assets/l10n/intl_et.arb
@@ -3343,5 +3343,7 @@
"notSupportedOnThisDevice": "See pole antud seadmes toetatud",
"@notSupportedOnThisDevice": {},
"enterNewChat": "Liitu uue vestlusega",
- "@enterNewChat": {}
+ "@enterNewChat": {},
+ "commandHint_roomupgrade": "Uuenda see jututuba antud jututoa versioonini",
+ "@commandHint_roomupgrade": {}
}
diff --git a/assets/l10n/intl_ga.arb b/assets/l10n/intl_ga.arb
index 003709d97..bc8642a98 100644
--- a/assets/l10n/intl_ga.arb
+++ b/assets/l10n/intl_ga.arb
@@ -3348,5 +3348,7 @@
"optionalMessage": "Teachtaireacht (Roghnach)…",
"@optionalMessage": {},
"enterNewChat": "Cuir isteach comhrá nua",
- "@enterNewChat": {}
+ "@enterNewChat": {},
+ "commandHint_roomupgrade": "Uasghrádaigh an seomra seo go dtí an leagan seomra a thugtar",
+ "@commandHint_roomupgrade": {}
}
diff --git a/assets/l10n/intl_gl.arb b/assets/l10n/intl_gl.arb
index 1c5fc9533..d81422e84 100644
--- a/assets/l10n/intl_gl.arb
+++ b/assets/l10n/intl_gl.arb
@@ -3341,5 +3341,9 @@
"takeAPhoto": "Facer foto",
"@takeAPhoto": {},
"recordAVideo": "Gravar vídeo",
- "@recordAVideo": {}
+ "@recordAVideo": {},
+ "enterNewChat": "Entrar na nova conversa",
+ "@enterNewChat": {},
+ "commandHint_roomupgrade": "Actualizar esta sala á versión de sala indicada",
+ "@commandHint_roomupgrade": {}
}
diff --git a/assets/l10n/intl_id.arb b/assets/l10n/intl_id.arb
index 5732fb7ea..6e072cdd9 100644
--- a/assets/l10n/intl_id.arb
+++ b/assets/l10n/intl_id.arb
@@ -3342,5 +3342,7 @@
"notSupportedOnThisDevice": "Tidak didukung pada perangkat ini",
"@notSupportedOnThisDevice": {},
"enterNewChat": "Masuk ke obrolan baru",
- "@enterNewChat": {}
+ "@enterNewChat": {},
+ "commandHint_roomupgrade": "Tingkatkan ruangan ini ke versi ruangan yang ditentukan",
+ "@commandHint_roomupgrade": {}
}
diff --git a/assets/l10n/intl_lv.arb b/assets/l10n/intl_lv.arb
index c26a15c01..9ec64399b 100644
--- a/assets/l10n/intl_lv.arb
+++ b/assets/l10n/intl_lv.arb
@@ -1680,7 +1680,7 @@
"type": "String",
"placeholders": {}
},
- "chooseAStrongPassword": "Jāizvēlas stipra parole",
+ "chooseAStrongPassword": "Jāizvēlas droša parole",
"@chooseAStrongPassword": {
"type": "String",
"placeholders": {}
@@ -3321,5 +3321,7 @@
"notSupportedOnThisDevice": "Šajā ierīcē nav atbalstīts",
"@notSupportedOnThisDevice": {},
"enterNewChat": "Ieiet jaunajā tērzēšanā",
- "@enterNewChat": {}
+ "@enterNewChat": {},
+ "commandHint_roomupgrade": "Uzlabot šo istabu uz norādīto istabas versiju",
+ "@commandHint_roomupgrade": {}
}
diff --git a/assets/l10n/intl_nl.arb b/assets/l10n/intl_nl.arb
index fc98ad721..0706f6d94 100644
--- a/assets/l10n/intl_nl.arb
+++ b/assets/l10n/intl_nl.arb
@@ -69,7 +69,7 @@
}
}
},
- "anyoneCanJoin": "Iedereen kan deelnemen",
+ "anyoneCanJoin": "Iedereen kan toetreden",
"@anyoneCanJoin": {
"type": "String",
"placeholders": {}
@@ -294,7 +294,7 @@
}
}
},
- "changedTheJoinRules": "{username} heeft de deelnameregels gewijzigd",
+ "changedTheJoinRules": "{username} heeft de toetredingsregels gewijzigd",
"@changedTheJoinRules": {
"type": "String",
"placeholders": {
@@ -303,7 +303,7 @@
}
}
},
- "changedTheJoinRulesTo": "{username} heeft de deelnameregels gewijzigd in: {joinRules}",
+ "changedTheJoinRulesTo": "{username} heeft de toetredingsregels gewijzigd in: {joinRules}",
"@changedTheJoinRulesTo": {
"type": "String",
"placeholders": {
@@ -352,7 +352,7 @@
"type": "String",
"placeholders": {}
},
- "changeTheme": "Stijl veranderen",
+ "changeTheme": "Je stijl veranderen",
"@changeTheme": {
"type": "String",
"placeholders": {}
@@ -426,7 +426,7 @@
"type": "String",
"description": "Usage hint for the command /invite"
},
- "commandHint_join": "Deelnemen aan de kamer",
+ "commandHint_join": "Toetreden tot de vermelde kamer",
"@commandHint_join": {
"type": "String",
"description": "Usage hint for the command /join"
@@ -530,7 +530,7 @@
"type": "String",
"placeholders": {}
},
- "containsUserName": "Bevat gebruikersnaam",
+ "containsUserName": "Bevat inlognaam",
"@containsUserName": {
"type": "String",
"placeholders": {}
@@ -587,7 +587,7 @@
}
}
},
- "createNewSpace": "Nieuwe space",
+ "createNewSpace": "Maak nieuwe space aan",
"@createNewSpace": {
"type": "String",
"placeholders": {}
@@ -844,7 +844,7 @@
"type": "String",
"placeholders": {}
},
- "fromJoining": "Vanaf deelname",
+ "fromJoining": "Vanaf toetreden",
"@fromJoining": {
"type": "String",
"placeholders": {}
@@ -1027,7 +1027,7 @@
}
}
},
- "joinRoom": "Deelnemen",
+ "joinRoom": "Toetreden tot de kamer",
"@joinRoom": {
"type": "String",
"placeholders": {}
@@ -1208,7 +1208,7 @@
"type": "String",
"placeholders": {}
},
- "noGoogleServicesWarning": "Firebase Cloud Messaging lijkt niet beschikbaar op je apparaat. Om nog steeds meldingen te krijgen, adviseren we om ntfy te installeren. Met ntfy of een andere Unified Push provider kun je meldingen ontvangen op een veilige manier. Je kunt ntfy downloaden van de PlayStore of van F-Droid.",
+ "noGoogleServicesWarning": "Firebase Cloud Messaging lijkt niet beschikbaar op je apparaat. Om nog steeds pushmeldingen te krijgen, adviseren we om ntfy te installeren. Met ntfy of een andere Unified Push provider kun je pushmeldingen ontvangen op een veilige manier. Je kunt ntfy downloaden van de PlayStore of van F-Droid.",
"@noGoogleServicesWarning": {
"type": "String",
"placeholders": {}
@@ -1245,7 +1245,7 @@
"type": "String",
"placeholders": {}
},
- "notifications": "Notificaties",
+ "notifications": "Meldingen",
"@notifications": {
"type": "String",
"placeholders": {}
@@ -1423,7 +1423,7 @@
"type": "String",
"placeholders": {}
},
- "publicRooms": "Publieke Kamers",
+ "publicRooms": "Openbare kamers",
"@publicRooms": {
"type": "String",
"placeholders": {}
@@ -1938,7 +1938,7 @@
}
}
},
- "username": "Gebruikersnaam",
+ "username": "Inlognaam",
"@username": {
"type": "String",
"placeholders": {}
@@ -2010,7 +2010,7 @@
"type": "String",
"placeholders": {}
},
- "waitingPartnerEmoji": "Wachten tot partner de emoji accepteert …",
+ "waitingPartnerEmoji": "Wachten tot je partner de emoji accepteert…",
"@waitingPartnerEmoji": {
"type": "String",
"placeholders": {}
@@ -2055,7 +2055,7 @@
"type": "String",
"placeholders": {}
},
- "withTheseAddressesRecoveryDescription": "Met deze adressen kan je je wachtwoord herstellen.",
+ "withTheseAddressesRecoveryDescription": "Met deze adressen kun je je wachtwoord herstellen.",
"@withTheseAddressesRecoveryDescription": {
"type": "String",
"placeholders": {}
@@ -2243,7 +2243,7 @@
"@widgetVideo": {},
"widgetEtherpad": "Tekstnotitie",
"@widgetEtherpad": {},
- "separateChatTypes": "Gescheiden directe chats en groepen",
+ "separateChatTypes": "Directe chats en groepen los weergeven",
"@separateChatTypes": {
"type": "String",
"placeholders": {}
@@ -2405,7 +2405,7 @@
"@otherCallingPermissions": {},
"newGroup": "Nieuwe groep",
"@newGroup": {},
- "newSpace": "Nieuwe space",
+ "newSpace": "Space aanmaken",
"@newSpace": {},
"enterRoom": "Kamer betreden",
"@enterRoom": {},
@@ -2431,7 +2431,7 @@
}
}
},
- "commandHint_googly": "Wat wiebelogen versturen",
+ "commandHint_googly": "Wiebel-ogen versturen",
"@commandHint_googly": {},
"commandHint_cuddle": "Een knuffel versturen",
"@commandHint_cuddle": {},
@@ -2527,7 +2527,7 @@
"@exportEmotePack": {},
"replace": "Vervang",
"@replace": {},
- "report": "rapporteer",
+ "report": "Rapporteer",
"@report": {},
"reportErrorDescription": "😭 Oh nee. Er is iets misgegaan. Probeer het later nog eens. Als je wilt, kun je de bug rapporteren aan de ontwikkelaars.",
"@reportErrorDescription": {},
@@ -2539,11 +2539,11 @@
"@signInWithPassword": {},
"chatPermissions": "Chat toestemmingen",
"@chatPermissions": {},
- "chatDescription": "Chatbeschrijving",
+ "chatDescription": "Chatomschrijving",
"@chatDescription": {},
- "chatDescriptionHasBeenChanged": "Chatbeschrijving gewijzigd",
+ "chatDescriptionHasBeenChanged": "Chatomschrijving gewijzigd",
"@chatDescriptionHasBeenChanged": {},
- "noChatDescriptionYet": "Nog geen chatbeschrijving gemaakt.",
+ "noChatDescriptionYet": "Nog geen chatomschrijving gemaakt.",
"@noChatDescriptionYet": {},
"tryAgain": "Opnieuw proberen",
"@tryAgain": {},
@@ -2569,7 +2569,7 @@
"@inviteContactToGroupQuestion": {},
"optionalRedactReason": "(Optioneel) Reden voor aanpassing van dit bericht...",
"@optionalRedactReason": {},
- "addChatDescription": "Voeg een chatbeschrijving toe...",
+ "addChatDescription": "Voeg een chatomschrijving toe...",
"@addChatDescription": {},
"invalidServerName": "Foute servernaam",
"@invalidServerName": {},
@@ -2588,7 +2588,7 @@
},
"directChat": "Directe chat",
"@directChat": {},
- "setChatDescription": "Chatbeschrijving instellen",
+ "setChatDescription": "Chatomschrijving instellen",
"@setChatDescription": {},
"setTheme": "Thema instellen:",
"@setTheme": {},
@@ -2600,7 +2600,7 @@
"@inviteGroupChat": {},
"invitePrivateChat": "📨 Privé-chat uitnodiging",
"@invitePrivateChat": {},
- "emoteKeyboardNoRecents": "Recent-gebruikte emoticons zullen hier verschijnen...",
+ "emoteKeyboardNoRecents": "Recent gebruikte emoticons zullen hier verschijnen...",
"@emoteKeyboardNoRecents": {
"type": "String",
"placeholders": {}
@@ -2622,7 +2622,7 @@
"@removeDevicesDescription": {},
"unbanUserDescription": "De persoon zal weer in staat zijn om de chat te betreden als ze het proberen.",
"@unbanUserDescription": {},
- "pushNotificationsNotAvailable": "Meldingen zijn niet beschikbaar",
+ "pushNotificationsNotAvailable": "Pushmeldingen zijn niet beschikbaar",
"@pushNotificationsNotAvailable": {},
"makeAdminDescription": "Wanneer je deze persoon beheerder maakt kun je dit niet ongedaan maken als jullie dezelfde rechten hebben.",
"@makeAdminDescription": {},
@@ -2642,13 +2642,13 @@
"@roomUpgradeDescription": {},
"pleaseEnterANumber": "Vul een getal in groter dan 0",
"@pleaseEnterANumber": {},
- "kickUserDescription": "De persoon is verwijderd uit de chat, maar is niet verbannen. In publieke chats kan de persoon op elk moment opnieuw deelnemen.",
+ "kickUserDescription": "De persoon is verwijderd uit de chat, maar is niet verbannen. In openbare chats kan de persoon op elk moment opnieuw deelnemen.",
"@kickUserDescription": {},
"alwaysUse24HourFormat": "true",
"@alwaysUse24HourFormat": {
"description": "Set to true to always display time of day in 24 hour format."
},
- "joinSpace": "Deelname aan space",
+ "joinSpace": "Toetreden tot de space",
"@joinSpace": {},
"block": "Blokkeren",
"@block": {},
@@ -2665,11 +2665,11 @@
"@swipeRightToLeftToReply": {},
"calls": "Gesprekken",
"@calls": {},
- "customEmojisAndStickers": "Aangepaste emojis and stickers",
+ "customEmojisAndStickers": "Aangepaste emoticons en stickers",
"@customEmojisAndStickers": {},
- "accessAndVisibilityDescription": "Wie mag meedoen in deze chat en hoe de chat ontdekt kan worden.",
+ "accessAndVisibilityDescription": "Wie mag toetreden tot deze chat en hoe de chat ontdekt kan worden.",
"@accessAndVisibilityDescription": {},
- "customEmojisAndStickersBody": "Voeg toe of deel aangepaste emojis of stickers die gebruikt kunnen worden in elke chat.",
+ "customEmojisAndStickersBody": "Voeg toe of deel aangepaste emoji's of stickers die gebruikt kunnen worden in elke chat.",
"@customEmojisAndStickersBody": {},
"hideRedactedMessages": "Verberg verwijderde berichten",
"@hideRedactedMessages": {},
@@ -2677,7 +2677,7 @@
"@hideRedactedMessagesBody": {},
"hideInvalidOrUnknownMessageFormats": "Verberg ongeldige of onbekende berichtformaten",
"@hideInvalidOrUnknownMessageFormats": {},
- "passwordRecoverySettings": "Wachtwoord herstel instellingen",
+ "passwordRecoverySettings": "Wachtwoordherstel-instellingen",
"@passwordRecoverySettings": {},
"youInvitedToBy": "📩 Je bent uitgenodigd via een link voor:\n{alias}",
"@youInvitedToBy": {
@@ -2687,15 +2687,15 @@
}
}
},
- "knock": "Kloppen",
+ "knock": "Klop",
"@knock": {},
"overview": "Overzicht",
"@overview": {},
- "hidePresences": "Verberg Status Lijst?",
+ "hidePresences": "Verberg statuslijst?",
"@hidePresences": {},
"noOneCanJoin": "Niemand kan deelnemen",
"@noOneCanJoin": {},
- "yourGlobalUserIdIs": "Je globale gebruikers-ID is: ",
+ "yourGlobalUserIdIs": "Je Matrix ID is: ",
"@yourGlobalUserIdIs": {},
"appLockDescription": "Vergendel de app wanneer het niet gebruikt wordt met een pincode",
"@appLockDescription": {},
@@ -2711,11 +2711,11 @@
}
}
},
- "publicSpaces": "Publieke spaces",
+ "publicSpaces": "Openbare spaces",
"@publicSpaces": {},
- "blockUsername": "Negeer gebruikersnaam",
+ "blockUsername": "Negeer inlognaam",
"@blockUsername": {},
- "publicChatAddresses": "Publieke chat adressen",
+ "publicChatAddresses": "Openbare chat adressen",
"@publicChatAddresses": {},
"createNewAddress": "Creëer nieuw adres",
"@createNewAddress": {},
@@ -2733,7 +2733,7 @@
},
"noMoreChatsFound": "Geen chats gevonden...",
"@noMoreChatsFound": {},
- "joinedChats": "Deelnemende chats",
+ "joinedChats": "Chats waaraan je deelneemt",
"@joinedChats": {},
"knocking": "Kloppen",
"@knocking": {},
@@ -2741,7 +2741,7 @@
"@space": {},
"spaces": "Spaces",
"@spaces": {},
- "unread": "Zet als ongelezen",
+ "unread": "Ongelezen",
"@unread": {},
"databaseBuildErrorBody": "Het aanmaken van de SQlite database is mislukt. De app probeert nu een traditionele database te gebruiken. Meldt alsjeblieft deze fout aan de ontwikkelaars via deze {url}. De foutmelding is: {error}",
"@databaseBuildErrorBody": {
@@ -2757,7 +2757,7 @@
},
"groupName": "Groepsnaam",
"@groupName": {},
- "changeGeneralChatSettings": "Wijzig algemene chat instellingen",
+ "changeGeneralChatSettings": "Algemene chat instellingen wijzigen",
"@changeGeneralChatSettings": {},
"restricted": "Beperkt",
"@restricted": {},
@@ -2765,7 +2765,7 @@
"@searchForUsers": {},
"searchMore": "Zoek meer...",
"@searchMore": {},
- "noPublicLinkHasBeenCreatedYet": "Publieke link is nog niet gecreëerd",
+ "noPublicLinkHasBeenCreatedYet": "Openbare link is nog niet gecreëerd",
"@noPublicLinkHasBeenCreatedYet": {},
"groupCanBeFoundViaSearch": "Groep kan gevonden worden via zoeken",
"@groupCanBeFoundViaSearch": {},
@@ -2794,12 +2794,12 @@
},
"noDatabaseEncryption": "Database versleuteling is niet ondersteund op dit platform",
"@noDatabaseEncryption": {},
- "thereAreCountUsersBlocked": "Nu zijn er {count} personen geblokkeerd.",
+ "thereAreCountUsersBlocked": "Momenteel zijn er {count} personen geblokkeerd.",
"@thereAreCountUsersBlocked": {
"type": "String",
"count": {}
},
- "markAsUnread": "Markeer als ongelezen",
+ "markAsUnread": "Als ongelezen markeren",
"@markAsUnread": {},
"userLevel": "{level} - Persoon",
"@userLevel": {
@@ -2819,7 +2819,7 @@
}
}
},
- "adminLevel": "{level} - Administrator",
+ "adminLevel": "{level} - Beheerder",
"@adminLevel": {
"type": "String",
"placeholders": {
@@ -2832,7 +2832,7 @@
"@stickers": {},
"nothingFound": "Niets gevonden...",
"@nothingFound": {},
- "gallery": "Gallerij",
+ "gallery": "Galerij",
"@gallery": {},
"transparent": "Transparant",
"@transparent": {},
@@ -2840,11 +2840,11 @@
"@incomingMessages": {},
"discover": "Ontdek",
"@discover": {},
- "commandHint_ignore": "Negeer de gegeven matrix ID",
+ "commandHint_ignore": "Negeer de gegeven Matrix ID",
"@commandHint_ignore": {},
"noChatsFoundHere": "Hier zijn nog geen chats. Begin een nieuwe chat met iemand door op de onderstaande knop te klikken. ⤵️",
"@noChatsFoundHere": {},
- "unableToJoinChat": "Kan niet deelnemen aan chat. Misschien heeft de andere partij het gesprek al afgesloten.",
+ "unableToJoinChat": "Kan niet toetreden tot de chat. Misschien heeft de andere partij het gesprek al afgesloten.",
"@unableToJoinChat": {},
"aboutHomeserver": "Over {homeserver}",
"@aboutHomeserver": {
@@ -2893,7 +2893,7 @@
},
"website": "Website",
"@website": {},
- "hideMemberChangesInPublicChats": "Verberg persoon veranderingen in publieke chats",
+ "hideMemberChangesInPublicChats": "Verberg persoon veranderingen in openbare chats",
"@hideMemberChangesInPublicChats": {},
"hideMemberChangesInPublicChatsBody": "Verberg in de tijdlijn van de chat als iemand zich aanmeldt bij een openbare chat of deze verlaat om de leesbaarheid te verbeteren.",
"@hideMemberChangesInPublicChatsBody": {},
@@ -2910,7 +2910,7 @@
}
}
},
- "createGroupAndInviteUsers": "Maak een groep en nodig personen uit",
+ "createGroupAndInviteUsers": "Maak groep en nodig personen uit",
"@createGroupAndInviteUsers": {},
"userWouldLikeToChangeTheChat": "{user} wil graag deelnemen aan de chat.",
"@userWouldLikeToChangeTheChat": {
@@ -2946,13 +2946,13 @@
"@databaseMigrationBody": {},
"commandHint_sendraw": "Stuur kale json",
"@commandHint_sendraw": {},
- "passwordIsWrong": "Je ingevoerd wachtwoord is onjuist",
+ "passwordIsWrong": "Je ingevoerde wachtwoord is fout",
"@passwordIsWrong": {},
"newPassword": "Nieuw wachtwoord",
"@newPassword": {},
- "pleaseChooseAStrongPassword": "Kies een sterk wachtwoord",
+ "pleaseChooseAStrongPassword": "Kies a.j.b. een sterk wachtwoord",
"@pleaseChooseAStrongPassword": {},
- "publicLink": "Publieke link",
+ "publicLink": "Openbare link",
"@publicLink": {},
"select": "Selecteer",
"@select": {},
@@ -2970,25 +2970,25 @@
"@decline": {},
"thisDevice": "Dit apparaat:",
"@thisDevice": {},
- "contentNotificationSettings": "Content notificatie instellingen",
+ "contentNotificationSettings": "Contentmelding instellingen",
"@contentNotificationSettings": {},
- "roomNotificationSettings": "Kamer notificatie instellingen",
+ "roomNotificationSettings": "Kamermelding instellingen",
"@roomNotificationSettings": {},
- "userSpecificNotificationSettings": "Persoon specifieke notificatie instellingen",
+ "userSpecificNotificationSettings": "Persoon specifieke melding instellingen",
"@userSpecificNotificationSettings": {},
- "otherNotificationSettings": "Andere notificatie instellingen",
+ "otherNotificationSettings": "Andere melding instellingen",
"@otherNotificationSettings": {},
"notificationRuleContainsUserName": "Bevat naam van persoon",
"@notificationRuleContainsUserName": {},
- "notificationRuleContainsUserNameDescription": "Stuurt een notificatie als een bericht de persoon vermeld.",
+ "notificationRuleContainsUserNameDescription": "Stuurt een melding als een bericht de persoon vermeld.",
"@notificationRuleContainsUserNameDescription": {},
- "notificationRuleMaster": "Demp alle notificaties",
+ "notificationRuleMaster": "Alle meldingen uitschakelen",
"@notificationRuleMaster": {},
- "notificationRuleMasterDescription": "Overschrijf alle andere regels en schakel alle notificaties uit.",
+ "notificationRuleMasterDescription": "Overschrijf alle andere regels en meldingen uitschakelen.",
"@notificationRuleMasterDescription": {},
- "notificationRuleMemberEventDescription": "Verberg notificaties voor een kamer-gebeurtenissen.",
+ "notificationRuleMemberEventDescription": "Meldingen voor kamer-gebeurtenissen uitschakelen.",
"@notificationRuleMemberEventDescription": {},
- "notificationRuleIsUserMention": "Persoon vermelding",
+ "notificationRuleIsUserMention": "Persoonvermelding",
"@notificationRuleIsUserMention": {},
"initAppError": "Er is een fout opgetreden bij het laden van de app",
"@initAppError": {},
@@ -3021,17 +3021,17 @@
"@opacity": {},
"verifyOtherUserDescription": "Als je een persoon verifieert ben je er zeker van dat je echt met haar contact hebt. 💪\n\nWanneer je een verificatie start ziet de persoon een popup in de app. Hier staat een serie van emoji's of getallen die je met elkaar moet vergelijken.\n\nDe beste manier om dit te doen is in persoon of met een videogesprek. 👭",
"@verifyOtherUserDescription": {},
- "changeTheVisibilityOfChatHistory": "Wijzig de zichtbaarheid van de chat-geschiedenis",
+ "changeTheVisibilityOfChatHistory": "Zichtbaarheid van de chat-geschiedenis wijzigen",
"@changeTheVisibilityOfChatHistory": {},
"whatIsAHomeserver": "Wat is een server?",
"@whatIsAHomeserver": {},
- "sendRoomNotifications": "Een @room-notificatie versturen",
+ "sendRoomNotifications": "@room-meldingen versturen",
"@sendRoomNotifications": {},
"noticeChatBackupDeviceVerification": "Opmerking: Als al je apparaten zijn verbonden met de chat back-up worden ze automatisch geverifieerd.",
"@noticeChatBackupDeviceVerification": {},
"notificationRuleMemberEvent": "Kamer-gebeurtenis",
"@notificationRuleMemberEvent": {},
- "notificationRuleSuppressNotices": "Verberg automatische berichten",
+ "notificationRuleSuppressNotices": "Automatische berichten uitschakelen",
"@notificationRuleSuppressNotices": {},
"setWallpaper": "Wallpaper instellen",
"@setWallpaper": {},
@@ -3045,19 +3045,19 @@
"@noContactInformationProvided": {},
"waitingForServer": "Wachten op server...",
"@waitingForServer": {},
- "generalNotificationSettings": "Algemene notificatie instellingen",
+ "generalNotificationSettings": "Algemene melding instellingen",
"@generalNotificationSettings": {},
- "notificationRuleInviteForMeDescription": "Stuur een notificatie wanneer een persoon wordt uitgenodigd voor een kamer.",
+ "notificationRuleInviteForMeDescription": "Stuur een melding wanneer een persoon wordt uitgenodigd voor een kamer.",
"@notificationRuleInviteForMeDescription": {},
- "notificationRuleSuppressNoticesDescription": "Verberg notificaties van automatische accounts zoals bots.",
+ "notificationRuleSuppressNoticesDescription": "Meldingen van automatische accounts zoals bots uitschakelen.",
"@notificationRuleSuppressNoticesDescription": {},
"notificationRuleInviteForMe": "Uitnodiging voor mij",
"@notificationRuleInviteForMe": {},
- "inviteOtherUsers": "Andere personen uitnodigen voor deze chat",
+ "inviteOtherUsers": "Personen voor deze chat uitnodigen",
"@inviteOtherUsers": {},
"changeTheChatPermissions": "Chat-rechten wijzigen",
"@changeTheChatPermissions": {},
- "changeTheCanonicalRoomAlias": "Het standaard publieke chat-adres veranderen",
+ "changeTheCanonicalRoomAlias": "Standaard openbaar chat-adres wijzigen",
"@changeTheCanonicalRoomAlias": {},
"blur": "Vervaag:",
"@blur": {},
@@ -3175,13 +3175,13 @@
}
}
},
- "sendReadReceipts": "Ontvangstbevestigingen versturen",
+ "sendReadReceipts": "Leesbevestigingen versturen",
"@sendReadReceipts": {},
- "formattedMessages": "Bericht opmaken",
+ "formattedMessages": "Opgemaakte berichten",
"@formattedMessages": {},
"chatPermissionsDescription": "Stel het gewenste rechten-niveau in voor bepaalde acties in deze chat. Het rechten-niveau 0, 50 en 100 zijn gebruikelijk voor deelnemer, moderator en beheerder, maar elke verdeling is mogelijk.",
"@chatPermissionsDescription": {},
- "changeTheDescriptionOfTheGroup": "De omschrijving van de chat veranderen",
+ "changeTheDescriptionOfTheGroup": "Chatomschrijving wijzigen",
"@changeTheDescriptionOfTheGroup": {},
"userRole": "Rol",
"@userRole": {},
@@ -3245,5 +3245,100 @@
}
},
"homeserverDescription": "Al je data is opgeslagen op de server, net als bij een email-leverancier. Je kan kiezen welke server je gebruikt en toch communiceren met iedereen. Lees meer op https://matrix.org.",
- "@homeserverDescription": {}
+ "@homeserverDescription": {},
+ "notificationRuleContainsDisplayName": "Bevat de naam",
+ "@notificationRuleContainsDisplayName": {},
+ "notificationRuleIsUserMentionDescription": "Stuur een melding als de persoon direct genoemd wordt in een bericht.",
+ "@notificationRuleIsUserMentionDescription": {},
+ "notificationRuleContainsDisplayNameDescription": "Stuur een melding als de persoon genoemd wordt in het bericht.",
+ "@notificationRuleContainsDisplayNameDescription": {},
+ "notificationRuleIsRoomMention": "Kamervermelding",
+ "@notificationRuleIsRoomMention": {},
+ "notificationRuleIsRoomMentionDescription": "Stuur een melding naar de persoon als er in een kamervermelding is.",
+ "@notificationRuleIsRoomMentionDescription": {},
+ "notificationRuleRoomnotif": "Kamermelding",
+ "@notificationRuleRoomnotif": {},
+ "notificationRuleRoomnotifDescription": "Stuur een melding naar de persoon wanneer een bericht '@room' bevat.",
+ "@notificationRuleRoomnotifDescription": {},
+ "notificationRuleTombstone": "Sleutingsbericht",
+ "@notificationRuleTombstone": {},
+ "notificationRuleReaction": "Reactie",
+ "@notificationRuleReaction": {},
+ "notificationRuleRoomServerAcl": "Kamer Server ACL",
+ "@notificationRuleRoomServerAcl": {},
+ "notificationRuleTombstoneDescription": "Stuur een melding naar de persoon over kamersluitingsberichten.",
+ "@notificationRuleTombstoneDescription": {},
+ "notificationRuleReactionDescription": "Meldingen voor reacties uitschakelen.",
+ "@notificationRuleReactionDescription": {},
+ "notificationRuleRoomServerAclDescription": "Meldingen voor kamer server toegangscontrolelijst (ACL) uitschakelen.",
+ "@notificationRuleRoomServerAclDescription": {},
+ "notificationRuleSuppressEdits": "Bewerkingen uitschakelen",
+ "@notificationRuleSuppressEdits": {},
+ "notificationRuleCall": "Oproep",
+ "@notificationRuleCall": {},
+ "notificationRuleSuppressEditsDescription": "Meldingen voor bewerkte berichten uitschakelen.",
+ "@notificationRuleSuppressEditsDescription": {},
+ "notificationRuleEncryptedRoomOneToOneDescription": "Stuur een melding naar de persoon over berichten in versleutelde een-op-een kamers.",
+ "@notificationRuleEncryptedRoomOneToOneDescription": {},
+ "notificationRuleEncryptedRoomOneToOne": "Versleutelde een-op-een kamer",
+ "@notificationRuleEncryptedRoomOneToOne": {},
+ "notificationRuleRoomOneToOne": "Een-op-een kamer",
+ "@notificationRuleRoomOneToOne": {},
+ "notificationRuleMessage": "Bericht",
+ "@notificationRuleMessage": {},
+ "notificationRuleEncrypted": "Versleuteld",
+ "@notificationRuleEncrypted": {},
+ "notificationRuleRoomOneToOneDescription": "Stuur een melding naar de persoon over berichten in een-op-een kamers.",
+ "@notificationRuleRoomOneToOneDescription": {},
+ "notificationRuleMessageDescription": "Stuur een melding naar de persoon over algemene berichten.",
+ "@notificationRuleMessageDescription": {},
+ "notificationRuleJitsi": "Jitsi",
+ "@notificationRuleJitsi": {},
+ "notificationRuleEncryptedDescription": "Stuur een melding naar de persoon over berichten in versleutelde kamers.",
+ "@notificationRuleEncryptedDescription": {},
+ "notificationRuleJitsiDescription": "Stuur een melding naar de persoon over Jitsi widget gebeurtenissen.",
+ "@notificationRuleJitsiDescription": {},
+ "unknownPushRule": "Onbekende notificatieregel '{rule}'",
+ "@unknownPushRule": {
+ "type": "String",
+ "placeholders": {
+ "rule": {
+ "type": "String"
+ }
+ }
+ },
+ "notificationRuleServerAcl": "Server ACL gebeurtenissen uitschakelen",
+ "@notificationRuleServerAcl": {},
+ "notificationRuleServerAclDescription": "Meldingen over server ACL gebeurtenissen uitschakelen.",
+ "@notificationRuleServerAclDescription": {},
+ "more": "Meer",
+ "@more": {},
+ "enterNewChat": "Nieuwe chat openen",
+ "@enterNewChat": {},
+ "crossVerifiedDevices": "Kruislings geverifieerde apparaten",
+ "@crossVerifiedDevices": {},
+ "allDevices": "Alle apparaten",
+ "@allDevices": {},
+ "shareKeysWithDescription": "Welke apparaten moeten vertrouwd worden zodat ze je berichten kunnen lezen in versleutelde chats?",
+ "@shareKeysWithDescription": {},
+ "verifiedDevicesOnly": "Alleen geverifieerde apparaten",
+ "@verifiedDevicesOnly": {},
+ "crossVerifiedDevicesIfEnabled": "Kruislings geverifieerde apparaten als ingeschakeld",
+ "@crossVerifiedDevicesIfEnabled": {},
+ "shareKeysWith": "Deel sleutels met...",
+ "@shareKeysWith": {},
+ "notificationRuleCallDescription": "Stuur een melding naar de persoon over oproepen.",
+ "@notificationRuleCallDescription": {},
+ "deletePushRuleCanNotBeUndone": "Als je deze melding-instelling verwijderd, kan dit niet ongedaan gemaakt worden.",
+ "@deletePushRuleCanNotBeUndone": {},
+ "takeAPhoto": "Neem een foto",
+ "@takeAPhoto": {},
+ "recordAVideo": "Neem een video",
+ "@recordAVideo": {},
+ "optionalMessage": "(Optioneel) bericht...",
+ "@optionalMessage": {},
+ "notSupportedOnThisDevice": "Niet ondersteund op dit apparaat",
+ "@notSupportedOnThisDevice": {},
+ "commandHint_roomupgrade": "Upgradeer deze kamer naar de aangegeven kamerversie",
+ "@commandHint_roomupgrade": {}
}
diff --git a/assets/l10n/intl_ru.arb b/assets/l10n/intl_ru.arb
index 3a59b50c5..d986499a9 100644
--- a/assets/l10n/intl_ru.arb
+++ b/assets/l10n/intl_ru.arb
@@ -2476,7 +2476,7 @@
"@noOtherDevicesFound": {},
"reportErrorDescription": "😭 О, нет. Что-то пошло не так. При желании вы можете сообщить об этой ошибке разработчикам.",
"@reportErrorDescription": {},
- "report": "сообщить",
+ "report": "пожаловаться",
"@report": {},
"allRooms": "Все группы",
"@allRooms": {
@@ -3184,5 +3184,91 @@
}
},
"compress": "Сжатие",
- "@compress": {}
+ "@compress": {},
+ "notificationRuleMessage": "Сообщение",
+ "@notificationRuleMessage": {},
+ "appWantsToUseForLoginDescription": "Вы позволяете приложению и веб-сайту делиться информацией о вас.",
+ "@appWantsToUseForLoginDescription": {},
+ "newChatRequest": "📩 Запрос нового чата",
+ "@newChatRequest": {},
+ "allDevices": "Все устройства",
+ "@allDevices": {},
+ "roomNotificationSettings": "Настройки уведомлений комнаты",
+ "@roomNotificationSettings": {},
+ "notificationRuleContainsUserName": "Содержит имя пользователя",
+ "@notificationRuleContainsUserName": {},
+ "notificationRuleMaster": "Отключить все уведомления",
+ "@notificationRuleMaster": {},
+ "notificationRuleSuppressNoticesDescription": "Отключить уведомления от автоматизированных клиентов, таких как боты.",
+ "@notificationRuleSuppressNoticesDescription": {},
+ "notificationRuleInviteForMe": "Приглашение для меня",
+ "@notificationRuleInviteForMe": {},
+ "notificationRuleMemberEventDescription": "Отключить уведомления о событиях о членстве.",
+ "@notificationRuleMemberEventDescription": {},
+ "notificationRuleIsRoomMention": "Упоминание комнаты",
+ "@notificationRuleIsRoomMention": {},
+ "notificationRuleReactionDescription": "Отключить уведомления о реакциях.",
+ "@notificationRuleReactionDescription": {},
+ "notificationRuleCall": "Звонок",
+ "@notificationRuleCall": {},
+ "notificationRuleSuppressEditsDescription": "Отключить уведомления о отредактированных сообщениях.",
+ "@notificationRuleSuppressEditsDescription": {},
+ "notificationRuleEncrypted": "Зашифровано",
+ "@notificationRuleEncrypted": {},
+ "more": "Больше",
+ "@more": {},
+ "synchronizingPleaseWaitCounter": " Синхронизация… ({percentage}%)",
+ "@synchronizingPleaseWaitCounter": {
+ "type": "String",
+ "placeholders": {
+ "percentage": {
+ "type": "String"
+ }
+ }
+ },
+ "appWantsToUseForLogin": "Использовать '{server}' для входа",
+ "@appWantsToUseForLogin": {
+ "type": "String",
+ "placeholders": {
+ "server": {
+ "type": "String"
+ }
+ }
+ },
+ "contentNotificationSettings": "Настройки уведомлений по тексту",
+ "@contentNotificationSettings": {},
+ "generalNotificationSettings": "Общие настройки уведомлений",
+ "@generalNotificationSettings": {},
+ "userSpecificNotificationSettings": "Настроки уведомлений пользователя",
+ "@userSpecificNotificationSettings": {},
+ "otherNotificationSettings": "Другие настройки уведомлений",
+ "@otherNotificationSettings": {},
+ "notificationRuleContainsUserNameDescription": "Уведомляет пользователя когда сообщение содержит его имя пользователя.",
+ "@notificationRuleContainsUserNameDescription": {},
+ "notificationRuleMasterDescription": "Перекрывает все другие правила и отключает все уведомления.",
+ "@notificationRuleMasterDescription": {},
+ "notificationRuleSuppressNotices": "Отключить автоматические сообщения",
+ "@notificationRuleSuppressNotices": {},
+ "notificationRuleIsUserMention": "Упоминание пользователя",
+ "@notificationRuleIsUserMention": {},
+ "notificationRuleContainsDisplayName": "Содержит отображаемое имя",
+ "@notificationRuleContainsDisplayName": {},
+ "notificationRuleReaction": "Реакция",
+ "@notificationRuleReaction": {},
+ "takeAPhoto": "Снять фото",
+ "@takeAPhoto": {},
+ "recordAVideo": "Записать видео",
+ "@recordAVideo": {},
+ "enterNewChat": "Введите новый чат",
+ "@enterNewChat": {},
+ "otherPartyNotLoggedIn": "Другая сторона в настоящее время не вошла в систему и поэтому не может получать сообщения!",
+ "@otherPartyNotLoggedIn": {},
+ "open": "Открыть",
+ "@open": {},
+ "waitingForServer": "Ожидание сервера...",
+ "@waitingForServer": {},
+ "appIntroduction": "FluffyChat позволяет вам общаться с друзьями с разными мессенджерами. Узнайте больше на https://matrix.org или просто нажмите *Продолжить*.",
+ "@appIntroduction": {},
+ "previous": "Предыдущий",
+ "@previous": {}
}
diff --git a/assets/l10n/intl_te.arb b/assets/l10n/intl_te.arb
new file mode 100644
index 000000000..60cbd30c8
--- /dev/null
+++ b/assets/l10n/intl_te.arb
@@ -0,0 +1,15 @@
+{
+ "alwaysUse24HourFormat": "తప్పుడు",
+ "@alwaysUse24HourFormat": {
+ "description": "Set to true to always display time of day in 24 hour format."
+ },
+ "notAnImage": "ఇమేజ్ ఫైల్ కాదు.",
+ "@notAnImage": {},
+ "repeatPassword": "పాస్వర్డ్ను పునరావృతం చేయండి",
+ "@repeatPassword": {},
+ "remove": "తొలగించు",
+ "@remove": {
+ "type": "String",
+ "placeholders": {}
+ }
+}
diff --git a/assets/l10n/intl_uk.arb b/assets/l10n/intl_uk.arb
index 4bd6cdef8..6240a8b28 100644
--- a/assets/l10n/intl_uk.arb
+++ b/assets/l10n/intl_uk.arb
@@ -3258,5 +3258,23 @@
"notificationRuleMemberEventDescription": "Забороняє сповіщення про події учасників.",
"@notificationRuleMemberEventDescription": {},
"notificationRuleSuppressNoticesDescription": "Забороняє сповіщення від автоматизованих клієнтів, таких як боти.",
- "@notificationRuleSuppressNoticesDescription": {}
+ "@notificationRuleSuppressNoticesDescription": {},
+ "notificationRuleIsUserMention": "Згадки користувачів",
+ "@notificationRuleIsUserMention": {},
+ "commandHint_roomupgrade": "Оновити цю кімнату до версії даної кімнати",
+ "@commandHint_roomupgrade": {},
+ "notificationRuleIsUserMentionDescription": "Сповіщає користувачів, коли безпосередньо їх згадують у повідомленні.",
+ "@notificationRuleIsUserMentionDescription": {},
+ "notificationRuleContainsDisplayName": "Містить показуване ім’я",
+ "@notificationRuleContainsDisplayName": {},
+ "notificationRuleIsRoomMentionDescription": "Сповіщає користувача, коли є згадка всієї кімнати.",
+ "@notificationRuleIsRoomMentionDescription": {},
+ "notificationRuleRoomnotif": "Сповіщення кімнати",
+ "@notificationRuleRoomnotif": {},
+ "notificationRuleRoomnotifDescription": "Сповіщає користувача, коли повідомлення містить '@room'.",
+ "@notificationRuleRoomnotifDescription": {},
+ "notificationRuleContainsDisplayNameDescription": "Сповіщає користувача, коли повідомлення містить показуване ім'я.",
+ "@notificationRuleContainsDisplayNameDescription": {},
+ "notificationRuleIsRoomMention": "Згадки кімнати",
+ "@notificationRuleIsRoomMention": {}
}
diff --git a/assets/l10n/intl_zh.arb b/assets/l10n/intl_zh.arb
index b8a5858ed..377750632 100644
--- a/assets/l10n/intl_zh.arb
+++ b/assets/l10n/intl_zh.arb
@@ -3343,5 +3343,7 @@
"notSupportedOnThisDevice": "此设备上不受支持",
"@notSupportedOnThisDevice": {},
"enterNewChat": "进入新聊天",
- "@enterNewChat": {}
+ "@enterNewChat": {},
+ "commandHint_roomupgrade": "将此聊天室升级到给定的聊天室版本",
+ "@commandHint_roomupgrade": {}
}
diff --git a/assets/l10n/intl_zh_Hant.arb b/assets/l10n/intl_zh_Hant.arb
index 3a8c26014..c4f77b844 100644
--- a/assets/l10n/intl_zh_Hant.arb
+++ b/assets/l10n/intl_zh_Hant.arb
@@ -186,7 +186,7 @@
}
}
},
- "changedTheChatDescriptionTo": "{username} 變更了聊天室介紹為:「{description}」",
+ "changedTheChatDescriptionTo": "{username} 把聊天室介紹變更為:「{description}」",
"@changedTheChatDescriptionTo": {
"type": "String",
"placeholders": {
@@ -198,7 +198,7 @@
}
}
},
- "changedTheChatNameTo": "{username} 變更了聊天室名稱為:「{chatname}」",
+ "changedTheChatNameTo": "{username} 把聊天室名稱變更為:「{chatname}」",
"@changedTheChatNameTo": {
"type": "String",
"placeholders": {
@@ -2750,7 +2750,7 @@
"@disableEncryptionWarning": {},
"deviceKeys": "裝置密鑰:",
"@deviceKeys": {},
- "fileIsTooBigForServer": "伺服器報告該文件太大,無法傳送。",
+ "fileIsTooBigForServer": "無法發送!該伺服器僅支援最大到 {max} 的附件。",
"@fileIsTooBigForServer": {},
"fileHasBeenSavedAt": "文件已保存在 {path}",
"@fileHasBeenSavedAt": {
@@ -3164,5 +3164,90 @@
"type": "String"
}
}
- }
+ },
+ "contentNotificationSettings": "內容通知設定",
+ "@contentNotificationSettings": {},
+ "generalNotificationSettings": "常規通知設定",
+ "@generalNotificationSettings": {},
+ "roomNotificationSettings": "聊天室通知設定",
+ "@roomNotificationSettings": {},
+ "userSpecificNotificationSettings": "用戶特定通知設定",
+ "@userSpecificNotificationSettings": {},
+ "otherNotificationSettings": "其他通知設定",
+ "@otherNotificationSettings": {},
+ "notificationRuleContainsUserName": "包含用户名稱",
+ "@notificationRuleContainsUserName": {},
+ "notificationRuleContainsUserNameDescription": "當訊息帶有用户名稱時通知用戶。",
+ "@notificationRuleContainsUserNameDescription": {},
+ "notificationRuleMaster": "靜音所有通知",
+ "@notificationRuleMaster": {},
+ "notificationRuleMasterDescription": "覆蓋所有其他規則並禁止所有通知。",
+ "@notificationRuleMasterDescription": {},
+ "notificationRuleInviteForMe": "邀請我",
+ "@notificationRuleInviteForMe": {},
+ "notificationRuleSuppressNoticesDescription": "隱藏來自bot等的自動化消息。",
+ "@notificationRuleSuppressNoticesDescription": {},
+ "notificationRuleSuppressNotices": "隱藏自動化消息",
+ "@notificationRuleSuppressNotices": {},
+ "notificationRuleMemberEvent": "成員事件",
+ "@notificationRuleMemberEvent": {},
+ "notificationRuleMemberEventDescription": "隱藏成員事件的通知。",
+ "@notificationRuleMemberEventDescription": {},
+ "notificationRuleIsUserMention": "用户提及",
+ "@notificationRuleIsUserMention": {},
+ "notificationRuleInviteForMeDescription": "當用户被邀請到聊天室時,通知他們。",
+ "@notificationRuleInviteForMeDescription": {},
+ "commandHint_roomupgrade": "升級此聊天室至指定版本",
+ "@commandHint_roomupgrade": {},
+ "serverInformation": "伺服器資訊 :",
+ "@serverInformation": {},
+ "name": "名稱",
+ "@name": {},
+ "website": "網站",
+ "@website": {},
+ "compress": "壓縮",
+ "@compress": {},
+ "newChatRequest": "📩 新的聊天邀請",
+ "@newChatRequest": {},
+ "enterNewChat": "進入新聊天室",
+ "@enterNewChat": {},
+ "version": "版本",
+ "@version": {},
+ "unableToJoinChat": "無法加入聊天室。對話可能以被其他方結束。",
+ "@unableToJoinChat": {},
+ "appWantsToUseForLogin": "使用伺服器「{server} 」登入",
+ "@appWantsToUseForLogin": {
+ "type": "String",
+ "placeholders": {
+ "server": {
+ "type": "String"
+ }
+ }
+ },
+ "italicText": "斜體",
+ "@italicText": {},
+ "boldText": "粗體",
+ "@boldText": {},
+ "strikeThrough": "刪除線",
+ "@strikeThrough": {},
+ "pleaseFillOut": "請填充",
+ "@pleaseFillOut": {},
+ "invalidUrl": "無效 url",
+ "@invalidUrl": {},
+ "appWantsToUseForLoginDescription": "你特此允許該應用程式和網站分享關於你的信息。",
+ "@appWantsToUseForLoginDescription": {},
+ "open": "打開",
+ "@open": {},
+ "waitingForServer": "等待伺服器中...",
+ "@waitingForServer": {},
+ "appIntroduction": "FluffyChat 讓你和你的朋友跨越工具聊天。在 https://matrix.org 了解更多或*繼續*。",
+ "@appIntroduction": {},
+ "previous": "上一個",
+ "@previous": {},
+ "otherPartyNotLoggedIn": "對方現未登入,未能接收訊息 !",
+ "@otherPartyNotLoggedIn": {},
+ "supportPage": "幫助頁面",
+ "@supportPage": {},
+ "addLink": "插入連結",
+ "@addLink": {}
}
diff --git a/lib/config/setting_keys.dart b/lib/config/setting_keys.dart
index 05ccef14e..14d259470 100644
--- a/lib/config/setting_keys.dart
+++ b/lib/config/setting_keys.dart
@@ -32,11 +32,6 @@ abstract class SettingKeys {
'chat.fluffy.swipeRightToLeftToReply';
static const String experimentalVoip = 'chat.fluffy.experimental_voip';
static const String showPresences = 'chat.fluffy.show_presences';
- static const String displayChatDetailsColumn =
- 'chat.fluffy.display_chat_details_column';
- static const String noEncryptionWarningShown =
- 'chat.fluffy.no_encryption_warning_shown';
- static const String shareKeysWith = 'chat.fluffy.share_keys_with_2';
}
enum AppSettings {
@@ -53,6 +48,15 @@ enum AppSettings {
pushNotificationsPusherFormat(
'pushNotificationsPusherFormat',
'event_id_only',
+ ),
+ shareKeysWith('chat.fluffy.share_keys_with_2', 'all'),
+ noEncryptionWarningShown(
+ 'chat.fluffy.no_encryption_warning_shown',
+ false,
+ ),
+ displayChatDetailsColumn(
+ 'chat.fluffy.display_chat_details_column',
+ false,
);
final String key;
diff --git a/lib/pages/chat/chat.dart b/lib/pages/chat/chat.dart
index c39977677..94c1ed431 100644
--- a/lib/pages/chat/chat.dart
+++ b/lib/pages/chat/chat.dart
@@ -302,8 +302,7 @@ class ChatController extends State
WidgetsBinding.instance.addPostFrameCallback(_shareItems);
super.initState();
_displayChatDetailsColumn = ValueNotifier(
- Matrix.of(context).store.getBool(SettingKeys.displayChatDetailsColumn) ??
- false,
+ AppSettings.displayChatDetailsColumn.getItem(Matrix.of(context).store),
);
sendingClient = Matrix.of(context).client;
@@ -1297,10 +1296,10 @@ class ChatController extends State
late final ValueNotifier _displayChatDetailsColumn;
void toggleDisplayChatDetailsColumn() async {
- await Matrix.of(context).store.setBool(
- SettingKeys.displayChatDetailsColumn,
- !_displayChatDetailsColumn.value,
- );
+ await AppSettings.displayChatDetailsColumn.setItem(
+ Matrix.of(context).store,
+ !_displayChatDetailsColumn.value,
+ );
_displayChatDetailsColumn.value = !_displayChatDetailsColumn.value;
}
diff --git a/lib/pages/chat/events/video_player.dart b/lib/pages/chat/events/video_player.dart
index ad3dfaf15..5cb5cf913 100644
--- a/lib/pages/chat/events/video_player.dart
+++ b/lib/pages/chat/events/video_player.dart
@@ -37,22 +37,34 @@ class EventVideoPlayer extends StatefulWidget {
}
class EventVideoPlayerState extends State {
- ChewieController? _chewieManager;
+ ChewieController? _chewieController;
+ VideoPlayerController? _videoPlayerController;
bool _isDownloading = false;
- String? _networkUri;
- File? _tmpFile;
+
+ // The video_player package only doesn't support Windows and Linux.
+ final _supportsVideoPlayer =
+ !PlatformInfos.isWindows && !PlatformInfos.isLinux;
void _downloadAction() async {
- if (PlatformInfos.isDesktop) {
+ if (!_supportsVideoPlayer) {
widget.event.saveFile(context);
return;
}
+
setState(() => _isDownloading = true);
+
try {
final videoFile = await widget.event.downloadAndDecryptAttachment();
+
+ // Dispose the controllers if we already have them.
+ _disposeControllers();
+ late VideoPlayerController videoPlayerController;
+
+ // Create the VideoPlayerController from the contents of videoFile.
if (kIsWeb) {
final blob = html.Blob([videoFile.bytes]);
- _networkUri = html.Url.createObjectUrlFromBlob(blob);
+ final networkUri = Uri.parse(html.Url.createObjectUrlFromBlob(blob));
+ videoPlayerController = VideoPlayerController.networkUrl(networkUri);
} else {
final tempDir = await getTemporaryDirectory();
final fileName = Uri.encodeComponent(
@@ -62,25 +74,19 @@ class EventVideoPlayerState extends State {
if (await file.exists() == false) {
await file.writeAsBytes(videoFile.bytes);
}
- _tmpFile = file;
- }
- final tmpFile = _tmpFile;
- final networkUri = _networkUri;
- if (kIsWeb && networkUri != null && _chewieManager == null) {
- _chewieManager ??= ChewieController(
- videoPlayerController:
- VideoPlayerController.networkUrl(Uri.parse(networkUri)),
- autoPlay: true,
- autoInitialize: true,
- );
- } else if (!kIsWeb && tmpFile != null && _chewieManager == null) {
- _chewieManager ??= ChewieController(
- useRootNavigator: false,
- videoPlayerController: VideoPlayerController.file(tmpFile),
- autoPlay: true,
- autoInitialize: true,
- );
+ videoPlayerController = VideoPlayerController.file(file);
}
+ _videoPlayerController = videoPlayerController;
+
+ await videoPlayerController.initialize();
+
+ // Create a ChewieController on top.
+ _chewieController = ChewieController(
+ videoPlayerController: videoPlayerController,
+ useRootNavigator: !kIsWeb,
+ autoPlay: true,
+ autoInitialize: true,
+ );
} on IOException catch (e) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
@@ -90,15 +96,20 @@ class EventVideoPlayerState extends State {
} catch (e, s) {
ErrorReporter(context, 'Unable to play video').onErrorCallback(e, s);
} finally {
- // Workaround for Chewie needs time to get the aspectRatio
- await Future.delayed(const Duration(milliseconds: 100));
setState(() => _isDownloading = false);
}
}
+ void _disposeControllers() {
+ _chewieController?.dispose();
+ _videoPlayerController?.dispose();
+ _chewieController = null;
+ _videoPlayerController = null;
+ }
+
@override
void dispose() {
- _chewieManager?.dispose();
+ _disposeControllers();
super.dispose();
}
@@ -118,7 +129,7 @@ class EventVideoPlayerState extends State {
const width = 300.0;
- final chewieManager = _chewieManager;
+ final chewieController = _chewieController;
return Column(
mainAxisSize: MainAxisSize.min,
spacing: 8,
@@ -128,8 +139,8 @@ class EventVideoPlayerState extends State {
borderRadius: BorderRadius.circular(AppConfig.borderRadius),
child: SizedBox(
height: width,
- child: chewieManager != null
- ? Center(child: Chewie(controller: chewieManager))
+ child: chewieController != null
+ ? Center(child: Chewie(controller: chewieController))
: Stack(
children: [
if (hasThumbnail)
@@ -159,7 +170,9 @@ class EventVideoPlayerState extends State {
strokeWidth: 2,
),
)
- : const Icon(Icons.play_circle_outlined),
+ : _supportsVideoPlayer
+ ? const Icon(Icons.play_circle_outlined)
+ : const Icon(Icons.file_download_outlined),
tooltip: _isDownloading
? L10n.of(context).loadingPleaseWait
: L10n.of(context).videoWithSize(
diff --git a/lib/pages/login/login_view.dart b/lib/pages/login/login_view.dart
index 5b04bbad0..45fb77e3d 100644
--- a/lib/pages/login/login_view.dart
+++ b/lib/pages/login/login_view.dart
@@ -55,7 +55,7 @@ class LoginView extends StatelessWidget {
),
const SizedBox(height: 16),
Padding(
- padding: const EdgeInsets.symmetric(horizontal: 8.0),
+ padding: const EdgeInsets.symmetric(horizontal: 24.0),
child: TextField(
readOnly: controller.loading,
autocorrect: false,
@@ -77,7 +77,7 @@ class LoginView extends StatelessWidget {
),
const SizedBox(height: 16),
Padding(
- padding: const EdgeInsets.symmetric(horizontal: 8.0),
+ padding: const EdgeInsets.symmetric(horizontal: 24.0),
child: TextField(
readOnly: controller.loading,
autocorrect: false,
@@ -107,7 +107,7 @@ class LoginView extends StatelessWidget {
),
const SizedBox(height: 16),
Padding(
- padding: const EdgeInsets.symmetric(horizontal: 8.0),
+ padding: const EdgeInsets.symmetric(horizontal: 24.0),
child: ElevatedButton(
style: ElevatedButton.styleFrom(
backgroundColor: theme.colorScheme.primary,
@@ -121,7 +121,7 @@ class LoginView extends StatelessWidget {
),
const SizedBox(height: 16),
Padding(
- padding: const EdgeInsets.symmetric(horizontal: 8.0),
+ padding: const EdgeInsets.symmetric(horizontal: 24.0),
child: TextButton(
onPressed: controller.loading
? () {}
diff --git a/lib/pages/settings_security/settings_security.dart b/lib/pages/settings_security/settings_security.dart
index 98b69981a..944abae9b 100644
--- a/lib/pages/settings_security/settings_security.dart
+++ b/lib/pages/settings_security/settings_security.dart
@@ -111,10 +111,10 @@ class SettingsSecurityController extends State {
void changeShareKeysWith(ShareKeysWith? shareKeysWith) async {
if (shareKeysWith == null) return;
- Matrix.of(context).store.setString(
- SettingKeys.shareKeysWith,
- shareKeysWith.name,
- );
+ AppSettings.shareKeysWith.setItem(
+ Matrix.of(context).store,
+ shareKeysWith.name,
+ );
Matrix.of(context).client.shareKeysWith = shareKeysWith;
setState(() {});
}
diff --git a/lib/utils/client_manager.dart b/lib/utils/client_manager.dart
index 5170dfee7..34016065a 100644
--- a/lib/utils/client_manager.dart
+++ b/lib/utils/client_manager.dart
@@ -24,6 +24,7 @@ import 'matrix_sdk_extensions/flutter_matrix_dart_sdk_database/builder.dart';
abstract class ClientManager {
static const String clientNamespace = 'im.fluffychat.store.clients';
+
static Future> getClients({
bool initialize = true,
required SharedPreferences store,
@@ -101,7 +102,7 @@ abstract class ClientManager {
: NativeImplementationsIsolate(compute);
static Client createClient(String clientName, SharedPreferences store) {
- final shareKeysWith = store.getString(SettingKeys.shareKeysWith) ?? 'all';
+ final shareKeysWith = AppSettings.shareKeysWith.getItem(store);
return Client(
clientName,
diff --git a/lib/utils/matrix_sdk_extensions/flutter_matrix_dart_sdk_database/cipher.dart b/lib/utils/matrix_sdk_extensions/flutter_matrix_dart_sdk_database/cipher.dart
index 021cd4636..ae463532e 100644
--- a/lib/utils/matrix_sdk_extensions/flutter_matrix_dart_sdk_database/cipher.dart
+++ b/lib/utils/matrix_sdk_extensions/flutter_matrix_dart_sdk_database/cipher.dart
@@ -53,7 +53,7 @@ Future getDatabaseCipher() async {
void _sendNoEncryptionWarning(Object exception) async {
final store = await SharedPreferences.getInstance();
- final isStored = store.getBool(SettingKeys.noEncryptionWarningShown);
+ final isStored = AppSettings.noEncryptionWarningShown.getItem(store);
if (isStored == true) return;
@@ -63,5 +63,5 @@ void _sendNoEncryptionWarning(Object exception) async {
exception.toString(),
);
- await store.setBool(SettingKeys.noEncryptionWarningShown, true);
+ await AppSettings.noEncryptionWarningShown.setItem(store, true);
}
diff --git a/pubspec.lock b/pubspec.lock
index 03544879b..51d98a87b 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -90,10 +90,10 @@ packages:
dependency: "direct main"
description:
name: async
- sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
+ sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63
url: "https://pub.dev"
source: hosted
- version: "2.11.0"
+ version: "2.12.0"
audio_session:
dependency: transitive
description:
@@ -138,10 +138,10 @@ packages:
dependency: transitive
description:
name: boolean_selector
- sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
+ sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea"
url: "https://pub.dev"
source: hosted
- version: "2.1.1"
+ version: "2.1.2"
canonical_json:
dependency: transitive
description:
@@ -154,10 +154,10 @@ packages:
dependency: transitive
description:
name: characters
- sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
+ sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803
url: "https://pub.dev"
source: hosted
- version: "1.3.0"
+ version: "1.4.0"
charcode:
dependency: transitive
description:
@@ -178,10 +178,10 @@ packages:
dependency: "direct main"
description:
name: chewie
- sha256: "335df378c025588aef400c704bd71f0daea479d4cd57c471c88c056c1144e7cd"
+ sha256: "0bf6f7692cb65f7b8f59a2a17025b9cbe8f75ab4251e66161a4fc86162475fb6"
url: "https://pub.dev"
source: hosted
- version: "1.8.5"
+ version: "1.11.0"
cli_util:
dependency: transitive
description:
@@ -194,18 +194,18 @@ packages:
dependency: transitive
description:
name: clock
- sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
+ sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b
url: "https://pub.dev"
source: hosted
- version: "1.1.1"
+ version: "1.1.2"
collection:
dependency: "direct main"
description:
name: collection
- sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf
+ sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76"
url: "https://pub.dev"
source: hosted
- version: "1.19.0"
+ version: "1.19.1"
colorize:
dependency: transitive
description:
@@ -354,10 +354,10 @@ packages:
dependency: transitive
description:
name: fake_async
- sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
+ sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc"
url: "https://pub.dev"
source: hosted
- version: "1.3.1"
+ version: "1.3.2"
ffi:
dependency: transitive
description:
@@ -370,10 +370,10 @@ packages:
dependency: transitive
description:
name: file
- sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c"
+ sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4
url: "https://pub.dev"
source: hosted
- version: "7.0.0"
+ version: "7.0.1"
file_picker:
dependency: "direct main"
description:
@@ -1047,18 +1047,18 @@ packages:
dependency: transitive
description:
name: leak_tracker
- sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06"
+ sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec
url: "https://pub.dev"
source: hosted
- version: "10.0.7"
+ version: "10.0.8"
leak_tracker_flutter_testing:
dependency: transitive
description:
name: leak_tracker_flutter_testing
- sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379"
+ sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573
url: "https://pub.dev"
source: hosted
- version: "3.0.8"
+ version: "3.0.9"
leak_tracker_testing:
dependency: transitive
description:
@@ -1135,10 +1135,10 @@ packages:
dependency: transitive
description:
name: matcher
- sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
+ sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2
url: "https://pub.dev"
source: hosted
- version: "0.12.16+1"
+ version: "0.12.17"
material_color_utilities:
dependency: transitive
description:
@@ -1159,10 +1159,10 @@ packages:
dependency: transitive
description:
name: meta
- sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7
+ sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c
url: "https://pub.dev"
source: hosted
- version: "1.15.0"
+ version: "1.16.0"
mgrs_dart:
dependency: transitive
description:
@@ -1271,10 +1271,10 @@ packages:
dependency: "direct main"
description:
name: path
- sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
+ sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5"
url: "https://pub.dev"
source: hosted
- version: "1.9.0"
+ version: "1.9.1"
path_provider:
dependency: "direct main"
description:
@@ -1383,10 +1383,10 @@ packages:
dependency: transitive
description:
name: platform
- sha256: "9b71283fc13df574056616011fb138fd3b793ea47cc509c189a6c3fa5f8a1a65"
+ sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984"
url: "https://pub.dev"
source: hosted
- version: "3.1.5"
+ version: "3.1.6"
platform_detect:
dependency: transitive
description:
@@ -1463,10 +1463,10 @@ packages:
dependency: transitive
description:
name: process
- sha256: "21e54fd2faf1b5bdd5102afd25012184a6793927648ea81eea80552ac9405b32"
+ sha256: "107d8be718f120bbba9dcd1e95e3bd325b1b4a4f07db64154635ba03f2567a0d"
url: "https://pub.dev"
source: hosted
- version: "5.0.2"
+ version: "5.0.3"
proj4dart:
dependency: transitive
description:
@@ -1780,10 +1780,10 @@ packages:
dependency: transitive
description:
name: source_span
- sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
+ sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c"
url: "https://pub.dev"
source: hosted
- version: "1.10.0"
+ version: "1.10.1"
sprintf:
dependency: transitive
description:
@@ -1836,26 +1836,26 @@ packages:
dependency: transitive
description:
name: stack_trace
- sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377"
+ sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1"
url: "https://pub.dev"
source: hosted
- version: "1.12.0"
+ version: "1.12.1"
stream_channel:
dependency: transitive
description:
name: stream_channel
- sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
+ sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d"
url: "https://pub.dev"
source: hosted
- version: "2.1.2"
+ version: "2.1.4"
string_scanner:
dependency: transitive
description:
name: string_scanner
- sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3"
+ sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43"
url: "https://pub.dev"
source: hosted
- version: "1.3.0"
+ version: "1.4.1"
string_validator:
dependency: transitive
description:
@@ -1900,34 +1900,34 @@ packages:
dependency: transitive
description:
name: term_glyph
- sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
+ sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e"
url: "https://pub.dev"
source: hosted
- version: "1.2.1"
+ version: "1.2.2"
test:
dependency: transitive
description:
name: test
- sha256: "713a8789d62f3233c46b4a90b174737b2c04cb6ae4500f2aa8b1be8f03f5e67f"
+ sha256: "301b213cd241ca982e9ba50266bd3f5bd1ea33f1455554c5abb85d1be0e2d87e"
url: "https://pub.dev"
source: hosted
- version: "1.25.8"
+ version: "1.25.15"
test_api:
dependency: transitive
description:
name: test_api
- sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c"
+ sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd
url: "https://pub.dev"
source: hosted
- version: "0.7.3"
+ version: "0.7.4"
test_core:
dependency: transitive
description:
name: test_core
- sha256: "12391302411737c176b0b5d6491f466b0dd56d4763e347b6714efbaa74d7953d"
+ sha256: "84d17c3486c8dfdbe5e12a50c8ae176d15e2a771b96909a9442b40173649ccaa"
url: "https://pub.dev"
source: hosted
- version: "0.6.5"
+ version: "0.6.8"
timezone:
dependency: transitive
description:
@@ -2124,66 +2124,66 @@ packages:
dependency: "direct main"
description:
name: video_player
- sha256: "4a8c3492d734f7c39c2588a3206707a05ee80cef52e8c7f3b2078d430c84bc17"
+ sha256: "7d78f0cfaddc8c19d4cb2d3bebe1bfef11f2103b0a03e5398b303a1bf65eeb14"
url: "https://pub.dev"
source: hosted
- version: "2.9.2"
+ version: "2.9.5"
video_player_android:
dependency: transitive
description:
name: video_player_android
- sha256: ae5287ca367e206eb74d7b3dc1ce0b8912ab9a3fc0597b6a101a0a5239f229d3
+ sha256: ae7d4f1b41e3ac6d24dd9b9d5d6831b52d74a61bdd90a7a6262a33d8bb97c29a
url: "https://pub.dev"
source: hosted
- version: "2.7.9"
+ version: "2.8.2"
video_player_avfoundation:
dependency: transitive
description:
name: video_player_avfoundation
- sha256: cd5ab8a8bc0eab65ab0cea40304097edc46da574c8c1ecdee96f28cd8ef3792f
+ sha256: "84b4752745eeccb6e75865c9aab39b3d28eb27ba5726d352d45db8297fbd75bc"
url: "https://pub.dev"
source: hosted
- version: "2.6.2"
+ version: "2.7.0"
video_player_platform_interface:
dependency: transitive
description:
name: video_player_platform_interface
- sha256: "229d7642ccd9f3dc4aba169609dd6b5f3f443bb4cc15b82f7785fcada5af9bbb"
+ sha256: df534476c341ab2c6a835078066fc681b8265048addd853a1e3c78740316a844
url: "https://pub.dev"
source: hosted
- version: "6.2.3"
+ version: "6.3.0"
video_player_web:
dependency: transitive
description:
name: video_player_web
- sha256: "6dcdd298136523eaf7dfc31abaf0dfba9aa8a8dbc96670e87e9d42b6f2caf774"
+ sha256: "3ef40ea6d72434edbfdba4624b90fd3a80a0740d260667d91e7ecd2d79e13476"
url: "https://pub.dev"
source: hosted
- version: "2.3.2"
+ version: "2.3.4"
vm_service:
dependency: transitive
description:
name: vm_service
- sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b
+ sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14"
url: "https://pub.dev"
source: hosted
- version: "14.3.0"
+ version: "14.3.1"
wakelock_plus:
dependency: "direct main"
description:
name: wakelock_plus
- sha256: bf4ee6f17a2fa373ed3753ad0e602b7603f8c75af006d5b9bdade263928c0484
+ sha256: b90fbcc8d7bdf3b883ea9706d9d76b9978cb1dfa4351fcc8014d6ec31a493354
url: "https://pub.dev"
source: hosted
- version: "1.2.8"
+ version: "1.2.11"
wakelock_plus_platform_interface:
dependency: transitive
description:
name: wakelock_plus_platform_interface
- sha256: "422d1cdbb448079a8a62a5a770b69baa489f8f7ca21aef47800c726d404f9d16"
+ sha256: "70e780bc99796e1db82fe764b1e7dcb89a86f1e5b3afb1db354de50f2e41eb7a"
url: "https://pub.dev"
source: hosted
- version: "1.2.1"
+ version: "1.2.2"
watcher:
dependency: transitive
description:
@@ -2297,5 +2297,5 @@ packages:
source: hosted
version: "3.1.2"
sdks:
- dart: ">=3.5.1 <4.0.0"
- flutter: ">=3.24.0"
+ dart: ">=3.7.0-0 <4.0.0"
+ flutter: ">=3.27.0"
diff --git a/pubspec.yaml b/pubspec.yaml
index 82fa2aff7..5bfee702e 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -14,7 +14,7 @@ dependencies:
async: ^2.11.0
badges: ^3.1.2
blurhash_dart: ^1.2.1
- chewie: ^1.8.1
+ chewie: ^1.11.0
collection: ^1.18.0
cross_file: ^0.3.4+2
cupertino_icons: any
diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml
index 6a4d698fe..65dbd7e82 100644
--- a/snap/snapcraft.yaml
+++ b/snap/snapcraft.yaml
@@ -61,41 +61,18 @@ parts:
build-packages:
- g++
- flutter-git:
- source: https://github.com/flutter/flutter.git
- source-tag: 3.29.2
- plugin: nil
- override-build: |
- set -eux
- mkdir -p $CRAFT_PART_INSTALL/usr/bin
- mkdir -p $CRAFT_PART_INSTALL/usr/libexec
- cp -r $CRAFT_PART_SRC $CRAFT_PART_INSTALL/usr/libexec/flutter
- ln -sf $CRAFT_PART_INSTALL/usr/libexec/flutter/bin/flutter $CRAFT_PART_INSTALL/usr/bin/flutter
- export PATH="$CRAFT_PART_INSTALL/usr/bin:$PATH"
- flutter doctor
- build-packages:
- - clang
- - cmake
- - curl
- - ninja-build
- - unzip
- override-prime: ''
-
fluffychat:
- after: [ flutter-git ]
- plugin: nil
+ plugin: flutter
source: .
override-build: |
- flutter pub get || true
- flutter build linux --release -v
- mkdir -p $CRAFT_PART_INSTALL/bin
- cp -r build/linux/*/release/bundle/* $CRAFT_PART_INSTALL/bin/
+ # Workaround for Flutter build error:
+ rm -rf build
+ craftctl default
build-packages:
- libsecret-1-dev
- libjsoncpp-dev
- libssl-dev
- curl
- - jq
stage-packages:
- libsecret-1-0
- libjsoncpp25
@@ -109,7 +86,7 @@ slots:
apps:
fluffychat:
- command: bin/fluffychat
+ command: fluffychat
extensions: [ gnome ]
plugs:
- audio-playback
diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake
index d2a3efb85..438aafbad 100644
--- a/windows/flutter/generated_plugins.cmake
+++ b/windows/flutter/generated_plugins.cmake
@@ -21,7 +21,6 @@ list(APPEND FLUTTER_PLUGIN_LIST
)
list(APPEND FLUTTER_FFI_PLUGIN_LIST
- flutter_local_notifications_windows
)
set(PLUGIN_BUNDLED_LIBRARIES)