fluffychat merge

This commit is contained in:
ggurdin 2026-02-04 14:47:14 -05:00
commit cb42ef5808
No known key found for this signature in database
GPG key ID: A01CB41737CBB478
6 changed files with 179 additions and 61 deletions

View file

@ -1,3 +1,128 @@
## v2.2.0
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 new
pause button.
You also now see the progress when downloading files.
On web the performance for image compressing has been drastically improved. Also
the config.json file loading has finally been fixed. Please be aware that the format
has changed as the available configs are now generated automatically.
Did you know that you can set a lot of additional configs in the new config viewer
inside the app? This now supports much more options but please use with care!
On Android 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!
On iOS the notifications are now localized. Stay tuned for more improvements on iOS
notifications in the next releases!
Besides that this release brings a ton of bug fixes and performance improvements and
of course updated translations. Big thanks to all the volunteers who have helped on weblate!
- feat: Add donation buttons except for PlayStore&AppStore version (Christian Kußowski)
- feat: Add iOS Notification Service Extension for localizable push notifications (Christian Kußowski)
- feat: Add notification actions (krille-chan)
- feat: Add support for restricted join rule (Christian Kußowski)
- feat: Display progress for downloading content (Christian Kußowski)
- feat: Display progress on redact events and clear archive dialogs (Christian Kußowski)
- feat: Enable native imaging for web (Christian Kußowski)
- feat: Forward notifications to Android Auto (Christian Kußowski)
- feat: Nicer record voice message UI with pause function (Christian Kußowski)
- feat: Notification actions on android (krille-chan)
- design: Improved spaces UX (Christian Kußowski)
- fix: Correctly pass through obscure text (Christian Kußowski)
- fix: Create a subdirectory in the tmp directory (Inex Code)
- fix: Cupertino text dialogs (Christian Kußowski)
- fix: Null pointer crash in chat list item (Christian Kußowski)
- chore(translations): Translated using Weblate (Arabic) (jamazi)
- 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 (Croatian) (Milo Ivir)
- chore(translations): Translated using Weblate (Czech) (Flibble)
- chore(translations): Translated using Weblate (Dutch) (Jelv)
- chore(translations): Translated using Weblate (Esperanto) (Anonymous)
- chore(translations): Translated using Weblate (Estonian) (Priit Jõerüüt)
- chore(translations): Translated using Weblate (Finnish) (Aminda Suomalainen)
- chore(translations): Translated using Weblate (Galician) (josé m)
- chore(translations): Translated using Weblate (German) (Alex Katon)
- chore(translations): Translated using Weblate (German) (cheese1)
- chore(translations): Translated using Weblate (German) (Christian)
- chore(translations): Translated using Weblate (German) (Jana)
- chore(translations): Translated using Weblate (Greek) (Λευτέρης Τ)
- chore(translations): Translated using Weblate (Hebrew) (Anonymous)
- chore(translations): Translated using Weblate (Hungarian) (Balázs Meskó)
- chore(translations): Translated using Weblate (Indonesian) (Linerly)
- chore(translations): Translated using Weblate (Irish) (Aindriú Mac Giolla Eoin)
- chore(translations): Translated using Weblate (Japanese) (Allan Nordhøy)
- chore(translations): Translated using Weblate (Korean) (loyedison92)
- chore(translations): Translated using Weblate (Latvian) (Edgars Andersons)
- chore(translations): Translated using Weblate (Latvian) (𝕠𝕠𝕠𝕝 (𝕘𝕚𝕥𝕙𝕦𝕓.𝕔𝕠𝕞/𝕠𝕠𝕠𝕝))
- chore(translations): Translated using Weblate (Lithuanian) (Anonymous)
- chore(translations): Translated using Weblate (Norwegian Bokmål) (Frank Paul Silye)
- chore(translations): Translated using Weblate (Norwegian Bokmål) (sunniva)
- chore(translations): Translated using Weblate (Polish) (Paweł Gronowski)
- chore(translations): Translated using Weblate (Portuguese (Brazil)) (LucasMZ)
- chore(translations): Translated using Weblate (Portuguese (Portugal)) (Anonymous)
- chore(translations): Translated using Weblate (Romanian) (Anonymous)
- chore(translations): Translated using Weblate (Russian) (Christian)
- chore(translations): Translated using Weblate (Russian) (Дмитрий Михирев)
- chore(translations): Translated using Weblate (Russian) (Жора Змейкин)
- chore(translations): Translated using Weblate (Serbian) (Anonymous)
- chore(translations): Translated using Weblate (Slovak) (Anonymous)
- chore(translations): Translated using Weblate (Spanish) (Kimby)
- chore(translations): Translated using Weblate (Spanish) (LucasMZ)
- chore(translations): Translated using Weblate (Turkish) (Christian)
- chore(translations): Translated using Weblate (Turkish) (Ufuk Karal)
- chore(translations): Translated using Weblate (Vietnamese) (desperadohp)
- chore: add a link to the platforms' different behaviors for the 24h format (kaanelloed)
- chore: Add ActionsPadding in column mode (Christian Kußowski)
- chore: Add close icon to snackbar in column mode (Christian Kußowski)
- chore: Adjust chat details button design (Christian Kußowski)
- chore: Adjust encryption page design (Christian Kußowski)
- chore: Adjust input bar button design (Christian Kußowski)
- chore: Adjust material dialog button design (krille-chan)
- chore: Adjust padding for status msg list (Christian Kußowski)
- chore: Adjust status header design (krille-chan)
- chore: Better display rooms without known messages (Christian Kußowski)
- chore: Better routing to space id (Christian Kußowski)
- chore: Correctly remove knockRestricted from possible join rules (Christian Kußowski)
- chore: Fix load config.json (Christian Kußowski)
- chore: Go back to pub.dev matrix dep (Christian Kußowski)
- chore: Hide restricted and knock restricted for unsupported room versions (Christian Kußowski)
- chore: Hide topic if empty and cannot be changed (Christian Kußowski)
- chore: Improve chat details icon color design (Christian Kußowski)
- chore: Improve ignore list UX (Christian Kußowski)
- chore: Leave invites and DM rooms when blocking a user (Christian Kußowski)
- chore: Make privacy url not configurable (Christian Kußowski)
- chore: Make progress indicators rounder (Christian Kußowski)
- chore: Mention rebases (Christian Kußowski)
- chore: Move emote settings button to chat popup menu (Christian Kußowski)
- chore: Move encryption button to input row (Christian Kußowski)
- chore: Revert "refactor: Make ChatListItem cache lasteventbody for better performance" (Christian Kußowski)
- chore: Translate iOS notifications into german (Christian Kußowski)
- chore: Try out refactored user device keys update method (Christian Kußowski)
- chore: Update matrix dart sdk (Christian Kußowski)
- chore: use time format based on system settings (kaanelloed)
- ci: Build only for arm64 (Christian Kußowski)
- refactor: Make ChatListItem cache lasteventbody for better performance (Christian Kußowski)
- refactor: Remove unused directories (Christian Kußowski)
- refactor: Rename models for matrix spec 1.16 (Christian Kußowski)
- refactor: Replace flutter typeahead with autocomplete to fix (Christian Kußowski)
- refactor: Use AppSettings enum based configuration everywhere and fix load from json on web (Christian Kußowski)
- build: Flutter upgrade 3.35.5 (Christian Kußowski)
- build: Matrix version 3.0.0 (Christian Kußowski)
- build: Remove dependency for telephony (Christian Kußowski)
- build: Remove openssl dependency (Christian Kußowski)
- build: Use correct fcm_shared_isolate version (Christian Kußowski)
- build: Use correct version of vodozemac for web build (Christian Kußowski)
## v2.1.1
Bugfix release to trigger flatpak arm64 release again.

View file

@ -1 +1,8 @@
Fixes broken error reporter for push notifications and wrong clipped avatars. Also updates dependencies and translations.
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!

View file

@ -876,6 +876,7 @@
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_ENABLE_EXPLICIT_MODULES = NO;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";

View file

@ -1,5 +1,6 @@
import 'dart:convert';
import 'package:async/async.dart';
import 'package:flutter/foundation.dart';
import 'package:http/http.dart' as http;
@ -89,6 +90,20 @@ enum AppSettings<T> {
final store = AppSettings._store = await SharedPreferences.getInstance();
// Migrate wrong datatype for fontSizeFactor
final fontSizeFactorString =
Result(() => store.getString(AppSettings.fontSizeFactor.key))
.asValue
?.value;
if (fontSizeFactorString != null) {
Logs().i('Migrate wrong datatype for fontSizeFactor!');
await store.remove(AppSettings.fontSizeFactor.key);
final fontSizeFactor = double.tryParse(fontSizeFactorString);
if (fontSizeFactor != null) {
await store.setDouble(AppSettings.fontSizeFactor.key, fontSizeFactor);
}
}
if (store.getBool(AppSettings.sendOnEnter.key) == null) {
await store.setBool(AppSettings.sendOnEnter.key, !PlatformInfos.isMobile);
}

View file

@ -3179,6 +3179,35 @@
"@swipeRightToLeftToReply": {},
"startFirstChat": "Start din første chat",
"@startFirstChat": {},
"unlockOldMessages": "Lås opp gamle meldinger",
"@unlockOldMessages": {},
"storeInAndroidKeystore": "Lagre i Android KeyStore",
"@storeInAndroidKeystore": {},
"storeInAppleKeyChain": "Lagre i Apple nøkkelring",
"@storeInAppleKeyChain": {},
"storeSecurlyOnThisDevice": "Lagre sikkert på denne enheten",
"@storeSecurlyOnThisDevice": {},
"acceptedKeyVerification": "{sender} godtok nøkkelverifisering",
"@acceptedKeyVerification": {
"type": "String",
"placeholders": {
"sender": {
"type": "String"
}
}
},
"notificationRuleMessageDescription": "Varsler brukeren om generelle meldinger.",
"@notificationRuleMessageDescription": {},
"notificationRuleSuppressEditsDescription": "Demper varsler for redigerte meldinger.",
"@notificationRuleSuppressEditsDescription": {},
"notificationRuleEncryptedDescription": "Varsler brukeren om meldinger i krypterte rom.",
"@notificationRuleEncryptedDescription": {},
"notificationRuleRoomServerAcl": "Romserverens tilgangskontrolliste",
"@notificationRuleRoomServerAcl": {},
"notificationRuleRoomOneToOneDescription": "Varsler brukeren om meldinger i én-til-én-rom.",
"@notificationRuleRoomOneToOneDescription": {},
"notificationRuleJitsiDescription": "Varsler brukeren om hendelser i Jitsi-widgeten.",
"@notificationRuleJitsiDescription": {},
"alwaysUse24HourFormat": "falsk",
"commandHint_googly": "Send noen googly-øyne",
"commandHint_cuddle": "Send en kose",
@ -3205,12 +3234,8 @@
"hasKnocked": "🚪 {user} har banket på",
"usersMustKnock": "Brukere må banke på",
"knock": "Bank på",
"unlockOldMessages": "Lås opp gamle meldinger",
"storeInSecureStorageDescription": "Lagre gjenopprettingsnøkkelen i den sikre lagringen på denne enheten.",
"saveKeyManuallyDescription": "Lagre denne nøkkelen manuelt ved å utløse systemets delingsdialog eller utklippstavle.",
"storeInAndroidKeystore": "Lagre i Android KeyStore",
"storeInAppleKeyChain": "Lagre i Apple KeyChain",
"storeSecurlyOnThisDevice": "Lagre sikkert på denne enheten",
"foregroundServiceRunning": "Denne varslingen vises når forgrunnstjenesten kjører.",
"callingAccount": "Samtalekonto",
"appearOnTopDetails": "Tillater appen å vises øverst (ikke nødvendig hvis du allerede har satt opp FluffyChat som en samtalekonto)",
@ -3233,7 +3258,6 @@
"sessionLostBody": "Økten din er tapt. Vennligst rapporter denne feilen til utviklerne på {url}. Feilmeldingen er: {error}",
"verifyOtherUserDescription": "Hvis du verifiserer en annen bruker, kan du være sikker på at du vet hvem du faktisk skriver til. 💪\n\nNår du starter en verifisering, vil du og den andre brukeren se en popup i appen. Der vil dere se en serie av emojis eller tall som dere må sammenligne.\n\nDen beste måten å gjøre dette på er å møtes eller starte en videosamtale. 👩‍💻",
"verifyOtherDeviceDescription": "Når du verifiserer en annen enhet, kan disse enhetene utveksle nøkler, noe som øker din totale sikkerhet. 💪 Når du starter en verifisering, vil en popup vises i appen på begge enhetene. Der vil dere se en serie av emojis eller tall som dere må sammenligne.\nDet er best å ha begge enhetene tilgjengelig før du starter verifiseringen. 🤳",
"acceptedKeyVerification": "{sender} aksepterte nøkkelverifisering",
"knockRestricted": "Knock-begrenset",
"chatPermissionsDescription": "Definer hvilket maktnivå som er nødvendig for visse handlinger i denne chatten. Maktnivåene 0, 50 og 100 representerer vanligvis brukere, moderatorer og administratorer, men alle grader er mulige.",
"sendingAttachmentCountOfCount": "Sender vedlegg {index} av {length}...",
@ -3242,13 +3266,7 @@
"notificationRuleMemberEvent": "Medlemsarrangement",
"notificationRuleMemberEventDescription": "Undertrykker varsler for medlemsarrangementer.",
"notificationRuleTombstone": "Tombstone",
"notificationRuleRoomServerAcl": "Romserver ACL",
"notificationRuleRoomServerAclDescription": "Undertrykker varsler for romserver tilgangskontrollister (ACL).",
"notificationRuleSuppressEditsDescription": "Undertrykker varsler for redigerte meldinger.",
"notificationRuleRoomOneToOneDescription": "Varsler brukeren om meldinger i én-til-én-rom.",
"notificationRuleMessageDescription": "Varsler brukeren om generelle meldinger.",
"notificationRuleEncryptedDescription": "Varsler brukeren om meldinger i krypterte rom.",
"notificationRuleJitsiDescription": "Varsler brukeren om Jitsi-widget hendelser.",
"notificationRuleServerAcl": "Undertrykk server-ACL hendelser",
"notificationRuleServerAclDescription": "Undertrykker varsler for server-ACL hendelser.",
"youHaveKnocked": "Du har ringt på",
@ -4501,10 +4519,6 @@
"type": "String",
"placeholders": {}
},
"@unlockOldMessages": {
"type": "String",
"placeholders": {}
},
"@storeInSecureStorageDescription": {
"type": "String",
"placeholders": {}
@ -4513,18 +4527,6 @@
"type": "String",
"placeholders": {}
},
"@storeInAndroidKeystore": {
"type": "String",
"placeholders": {}
},
"@storeInAppleKeyChain": {
"type": "String",
"placeholders": {}
},
"@storeSecurlyOnThisDevice": {
"type": "String",
"placeholders": {}
},
"@foregroundServiceRunning": {
"type": "String",
"placeholders": {}
@ -4627,14 +4629,6 @@
"type": "String",
"placeholders": {}
},
"@acceptedKeyVerification": {
"type": "String",
"placeholders": {
"sender": {
"type": "String"
}
}
},
"@knockRestricted": {
"type": "String",
"placeholders": {}
@ -4674,34 +4668,10 @@
"type": "String",
"placeholders": {}
},
"@notificationRuleRoomServerAcl": {
"type": "String",
"placeholders": {}
},
"@notificationRuleRoomServerAclDescription": {
"type": "String",
"placeholders": {}
},
"@notificationRuleSuppressEditsDescription": {
"type": "String",
"placeholders": {}
},
"@notificationRuleRoomOneToOneDescription": {
"type": "String",
"placeholders": {}
},
"@notificationRuleMessageDescription": {
"type": "String",
"placeholders": {}
},
"@notificationRuleEncryptedDescription": {
"type": "String",
"placeholders": {}
},
"@notificationRuleJitsiDescription": {
"type": "String",
"placeholders": {}
},
"@notificationRuleServerAcl": {
"type": "String",
"placeholders": {}

View file

@ -53,7 +53,7 @@ platforms:
parts:
flutter-git:
source: https://github.com/flutter/flutter.git
source-tag: 3.35.3
source-tag: 3.35.5
source-depth: 1
plugin: nil
override-build: |