fluffychat merge

This commit is contained in:
ggurdin 2024-06-17 10:57:57 -04:00
commit 3288fd6f2d
20 changed files with 345 additions and 102 deletions

View file

@ -103,7 +103,7 @@ jobs:
- run: cat .github/workflows/versions.env >> $GITHUB_ENV
- uses: subosito/flutter-action@v2
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
flutter-version: 3.19.6 # Workaround for not working on 3.22
cache: true
- name: Install dependencies
run: sudo apt-get update && sudo apt-get install curl clang cmake ninja-build pkg-config libgtk-3-dev libblkid-dev liblzma-dev libjsoncpp-dev cmake-data libsecret-1-dev libsecret-1-0 librhash0 libssl-dev -y

View file

@ -1,3 +1,44 @@
## v1.21.0
FluffyChat v1.21.0 introduces the new search feature which also includes a gallery and files list for each chat. Several performance improvements have been added under the hood, leading to a much nicer user experience.
- feat: Enable download images on iOS, not only share images (krille-chan)
- feat: Search feature (krille-chan)
- build: Update record package (krille-chan)
- build: Use correct pubspec.yaml format for hosted dependency (krille-chan)
- build: Use matrix sdk main branch (krille-chan)
- chore: Change default timeout to 30 min (krille-chan)
- chore: Go back to pub.dev matrix sdk (Krille)
- chore: Hotfix create missing objectbox (Krille)
- chore: Increase default network request timeout (Krille)
- chore: Make bottomnavbar labels always visible (krille-chan)
- chore: Nicer message animation (krille-chan)
- chore: Only load last event sender if necessary (Krille)
- chore: Set a maxsize for textfields (Krille)
- chore: upgrade flutter to 3.22.0 (lauren n. liberda)
- chore: upgrade flutter to 3.22.1 (lauren n. liberda)
- ci: run `flutter gen-l10n` on code_tests (lauren n. liberda)
- design: Improve design of Voice Messages and add 1.25 as speed (Krille)
- fastlane: i18n ru (Yurt Page)
- fastlane: improve full_description.txt (Yurt Page)
- fix: Broken localization with empty strings in it (krille-chan)
- fix: FakeMatrixApi check (krille-chan)
- fix: mxc reactions not rendered correctly (krille-chan)
- fix: Stickers from gboard have black background (Krille)
- fix: voip code breaking from 0.28 (td)
- refactor: Delete database file on failed app start (krille-chan)
- refactor: Display better command hints (Krille)
- refactor: Improve performance of chat list (krille-chan)
- refactor: Precache theme and directchatmatrixid to improve performance in chat list item (krille-chan)
- refactor: Update to Matrix Dart SDK 0.29.9 (Krille)
- Translated using Weblate (Croatian) (Milo Ivir)
- Translated using Weblate (Czech) (Jozef Mlich)
- Translated using Weblate (Georgian) (Nicholas Winterhalter)
- Translated using Weblate (German) (Gian Klug)
- Translated using Weblate (Korean) (kdh8219)
- Translated using Weblate (Latvian) (Edgars Andersons)
- Translated using Weblate (Norwegian Bokmål) (sunniva)
- Translated using Weblate (Turkish) (Oğuz Ersen)
## v1.20.0
Design improvements and new advanced UI to manage rooms.

View file

@ -4030,5 +4030,7 @@
"@thereAreCountUsersBlocked": {
"type": "text",
"count": {}
}
},
"restricted": "Restricted",
"knockRestricted": "Knock restricted"
}

3
devtools_options.yaml Normal file
View file

@ -0,0 +1,3 @@
description: This file stores settings for Dart & Flutter DevTools.
documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states
extensions:

View file

@ -197,6 +197,7 @@
9705A1C41CF9048500538489 /* Embed Frameworks */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
F9C8EE392B9AB471149C306E /* [CP] Embed Pods Frameworks */,
064CBD7CE0D4CD6850C6880A /* [CP] Copy Pods Resources */,
);
buildRules = (
);
@ -288,6 +289,23 @@
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
064CBD7CE0D4CD6850C6880A /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Copy Pods Resources";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
showEnvVarsInLog = 0;
};
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;

View file

@ -85,7 +85,7 @@ class ChatPage extends StatelessWidget {
}
return ChatPageWithRoom(
key: Key('chat_page_$roomId'),
key: Key('chat_page_${roomId}_$eventId'),
room: room,
shareText: shareText,
eventId: eventId,
@ -360,16 +360,19 @@ class ChatController extends State<ChatPageWithRoom>
}
void _tryLoadTimeline() async {
readMarkerEventId = widget.eventId;
loadTimelineFuture = _getTimeline(eventContextId: readMarkerEventId);
final initialEventId = widget.eventId;
loadTimelineFuture = _getTimeline();
try {
await loadTimelineFuture;
if (initialEventId != null) scrollToEventId(initialEventId);
final fullyRead = room.fullyRead;
if (fullyRead.isEmpty) {
setReadMarker();
return;
}
if (timeline!.events.any((event) => event.eventId == fullyRead)) {
if (timeline?.events.any((event) => event.eventId == fullyRead) ??
false) {
Logs().v('Scroll up to visible event', fullyRead);
setReadMarker();
return;

View file

@ -107,7 +107,8 @@ class Message extends StatelessWidget {
final client = Matrix.of(context).client;
final ownMessage = event.senderId == client.userID;
final alignment = ownMessage ? Alignment.topRight : Alignment.topLeft;
var color = Theme.of(context).colorScheme.surfaceContainerHighest;
// ignore: deprecated_member_use
var color = Theme.of(context).colorScheme.surfaceVariant;
final displayTime = event.type == EventTypes.RoomCreate ||
nextEvent == null ||
!event.originServerTs.sameEnvironment(nextEvent!.originServerTs);

View file

@ -14,6 +14,8 @@ class TypingIndicators extends StatelessWidget {
@override
Widget build(BuildContext context) {
const avatarSize = Avatar.defaultSize / 2;
return StreamBuilder<Object>(
stream: controller.room.client.onSync.stream.where(
(syncUpdate) =>
@ -24,7 +26,7 @@ class TypingIndicators extends StatelessWidget {
builder: (context, _) {
final typingUsers = controller.room.typingUsers
..removeWhere((u) => u.stateKey == Matrix.of(context).client.userID);
const topPadding = 20.0;
const bottomPadding = 4.0;
return Container(
width: double.infinity,
@ -32,8 +34,7 @@ class TypingIndicators extends StatelessWidget {
child: AnimatedContainer(
constraints:
const BoxConstraints(maxWidth: FluffyThemes.columnWidth * 2.5),
height:
typingUsers.isEmpty ? 0 : Avatar.defaultSize + bottomPadding,
height: typingUsers.isEmpty ? 0 : avatarSize + bottomPadding,
duration: FluffyThemes.animationDuration,
curve: FluffyThemes.animationCurve,
alignment: controller.timeline!.events.isNotEmpty &&
@ -50,14 +51,13 @@ class TypingIndicators extends StatelessWidget {
child: Row(
children: [
SizedBox(
height: Avatar.defaultSize,
width: typingUsers.length < 2
? Avatar.defaultSize
: Avatar.defaultSize + 16,
height: avatarSize,
width: typingUsers.length < 2 ? avatarSize : avatarSize + 16,
child: Stack(
children: [
if (typingUsers.isNotEmpty)
Avatar(
size: avatarSize,
mxContent: typingUsers.first.avatarUrl,
name: typingUsers.first.calcDisplayname(),
),
@ -65,6 +65,7 @@ class TypingIndicators extends StatelessWidget {
Padding(
padding: const EdgeInsets.only(left: 16),
child: Avatar(
size: avatarSize,
mxContent: typingUsers.length == 2
? typingUsers.last.avatarUrl
: null,
@ -77,21 +78,16 @@ class TypingIndicators extends StatelessWidget {
),
),
const SizedBox(width: 8),
Padding(
padding: const EdgeInsets.only(top: topPadding),
child: Material(
color:
Theme.of(context).colorScheme.surfaceContainerHighest,
borderRadius: const BorderRadius.only(
topLeft: Radius.circular(2),
topRight: Radius.circular(AppConfig.borderRadius),
bottomLeft: Radius.circular(AppConfig.borderRadius),
bottomRight: Radius.circular(AppConfig.borderRadius),
),
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 8),
child: typingUsers.isEmpty ? null : const _TypingDots(),
),
Material(
color:
// ignore: deprecated_member_use
Theme.of(context).colorScheme.surfaceVariant,
borderRadius: const BorderRadius.all(
Radius.circular(AppConfig.borderRadius),
),
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 8),
child: typingUsers.isEmpty ? null : const _TypingDots(),
),
),
],

View file

@ -266,6 +266,10 @@ extension JoinRulesDisplayString on JoinRules {
return l10n.usersMustKnock;
case JoinRules.private:
return l10n.noOneCanJoin;
case JoinRules.restricted:
return l10n.restricted;
case JoinRules.knockRestricted:
return l10n.knockRestricted;
}
}
}

View file

@ -94,6 +94,11 @@ class ChatListItem extends StatelessWidget {
if (filter != null && !displayname.toLowerCase().contains(filter)) {
return const SizedBox.shrink();
}
final needLastEventSender = lastEvent == null
? false
: room.getState(EventTypes.RoomMember, lastEvent.senderId) == null;
return Padding(
padding: const EdgeInsets.symmetric(
horizontal: 8,

View file

@ -70,6 +70,16 @@ class ChatSearchController extends State<ChatSearchPage>
result.$2,
),
)
// Deduplication workaround for
// https://github.com/famedly/matrix-dart-sdk/issues/1831
.map(
(result) => (
<String, Event>{
for (final event in result.$1) event.eventId: event,
}.values.toList(),
result.$2,
),
)
.asBroadcastStream();
});
}
@ -100,6 +110,16 @@ class ChatSearchController extends State<ChatSearchPage>
result.$2,
),
)
// Deduplication workaround for
// https://github.com/famedly/matrix-dart-sdk/issues/1831
.map(
(result) => (
<String, Event>{
for (final event in result.$1) event.eventId: event,
}.values.toList(),
result.$2,
),
)
.asBroadcastStream();
});
}
@ -130,6 +150,16 @@ class ChatSearchController extends State<ChatSearchPage>
result.$2,
),
)
// Deduplication workaround for
// https://github.com/famedly/matrix-dart-sdk/issues/1831
.map(
(result) => (
<String, Event>{
for (final event in result.$1) event.eventId: event,
}.values.toList(),
result.$2,
),
)
.asBroadcastStream();
});
}

View file

@ -92,7 +92,8 @@ class HomeserverAppBar extends StatelessWidget {
: null,
fillColor: FluffyThemes.isColumnMode(context)
? Theme.of(context).colorScheme.surface
: Theme.of(context).colorScheme.surfaceContainerHighest,
// ignore: deprecated_member_use
: Theme.of(context).colorScheme.surfaceVariant,
prefixText: '${L10n.of(context)!.homeserver}: ',
hintText: L10n.of(context)!.enterYourHomeserver,
suffixIcon: const Icon(Icons.search),

View file

@ -61,8 +61,14 @@ class SettingsIgnoreListView extends StatelessWidget {
),
Expanded(
child: StreamBuilder<Object>(
stream: client.onAccountData.stream
.where((a) => a.type == 'm.ignored_user_list'),
stream: client.onSync.stream.where(
(syncUpdate) =>
syncUpdate.accountData?.any(
(accountData) =>
accountData.type == 'm.ignored_user_list',
) ??
false,
),
builder: (context, snapshot) {
return ListView.builder(
itemCount: client.ignoredUsers.length,

View file

@ -22,11 +22,13 @@ class SettingsNotificationsView extends StatelessWidget {
),
body: MaxWidthBody(
child: StreamBuilder(
stream: Matrix.of(context)
.client
.onAccountData
.stream
.where((event) => event.type == 'm.push_rules'),
stream: Matrix.of(context).client.onSync.stream.where(
(syncUpdate) =>
syncUpdate.accountData?.any(
(accountData) => accountData.type == 'm.push_rules',
) ??
false,
),
builder: (BuildContext context, _) {
return Column(
children: [

View file

@ -205,10 +205,14 @@ class SettingsStyleView extends StatelessWidget {
),
),
StreamBuilder(
stream: client.onAccountData.stream.where(
(data) =>
data.type ==
ApplicationAccountConfigExtension.accountDataKey,
stream: client.onSync.stream.where(
(syncUpdate) =>
syncUpdate.accountData?.any(
(accountData) =>
accountData.type ==
ApplicationAccountConfigExtension.accountDataKey,
) ??
false,
),
builder: (context, snapshot) {
final accountConfig = client.applicationAccountConfig;

View file

@ -119,7 +119,8 @@ class UserBottomSheetView extends StatelessWidget {
padding: const EdgeInsets.all(12.0),
child: Material(
color:
Theme.of(context).colorScheme.surfaceContainerHighest,
// ignore: deprecated_member_use
Theme.of(context).colorScheme.surfaceVariant,
borderRadius:
BorderRadius.circular(AppConfig.borderRadius),
child: ListTile(

View file

@ -860,7 +860,9 @@
"capacitySetTooLow",
"roomCapacityExplanation",
"enterNumber",
"buildTranslation"
"buildTranslation",
"restricted",
"knockRestricted"
],
"be": [
@ -2351,7 +2353,9 @@
"enterNumber",
"buildTranslation",
"noDatabaseEncryption",
"thereAreCountUsersBlocked"
"thereAreCountUsersBlocked",
"restricted",
"knockRestricted"
],
"bn": [
@ -3838,7 +3842,9 @@
"enterNumber",
"buildTranslation",
"noDatabaseEncryption",
"thereAreCountUsersBlocked"
"thereAreCountUsersBlocked",
"restricted",
"knockRestricted"
],
"bo": [
@ -5329,7 +5335,9 @@
"enterNumber",
"buildTranslation",
"noDatabaseEncryption",
"thereAreCountUsersBlocked"
"thereAreCountUsersBlocked",
"restricted",
"knockRestricted"
],
"ca": [
@ -6222,7 +6230,9 @@
"enterNumber",
"buildTranslation",
"noDatabaseEncryption",
"thereAreCountUsersBlocked"
"thereAreCountUsersBlocked",
"restricted",
"knockRestricted"
],
"cs": [
@ -7197,7 +7207,9 @@
"enterNumber",
"buildTranslation",
"noDatabaseEncryption",
"thereAreCountUsersBlocked"
"thereAreCountUsersBlocked",
"restricted",
"knockRestricted"
],
"de": [
@ -8061,7 +8073,9 @@
"capacitySetTooLow",
"roomCapacityExplanation",
"enterNumber",
"buildTranslation"
"buildTranslation",
"restricted",
"knockRestricted"
],
"el": [
@ -9503,7 +9517,9 @@
"enterNumber",
"buildTranslation",
"noDatabaseEncryption",
"thereAreCountUsersBlocked"
"thereAreCountUsersBlocked",
"restricted",
"knockRestricted"
],
"eo": [
@ -10643,7 +10659,9 @@
"enterNumber",
"buildTranslation",
"noDatabaseEncryption",
"thereAreCountUsersBlocked"
"thereAreCountUsersBlocked",
"restricted",
"knockRestricted"
],
"es": [
@ -10678,7 +10696,9 @@
"files",
"addSpaceToSpaceDescription",
"noDatabaseEncryption",
"thereAreCountUsersBlocked"
"thereAreCountUsersBlocked",
"restricted",
"knockRestricted"
],
"et": [
@ -11542,7 +11562,9 @@
"capacitySetTooLow",
"roomCapacityExplanation",
"enterNumber",
"buildTranslation"
"buildTranslation",
"restricted",
"knockRestricted"
],
"eu": [
@ -12406,7 +12428,9 @@
"capacitySetTooLow",
"roomCapacityExplanation",
"enterNumber",
"buildTranslation"
"buildTranslation",
"restricted",
"knockRestricted"
],
"fa": [
@ -13403,7 +13427,9 @@
"enterNumber",
"buildTranslation",
"noDatabaseEncryption",
"thereAreCountUsersBlocked"
"thereAreCountUsersBlocked",
"restricted",
"knockRestricted"
],
"fi": [
@ -14364,7 +14390,9 @@
"enterNumber",
"buildTranslation",
"noDatabaseEncryption",
"thereAreCountUsersBlocked"
"thereAreCountUsersBlocked",
"restricted",
"knockRestricted"
],
"fil": [
@ -15681,7 +15709,9 @@
"enterNumber",
"buildTranslation",
"noDatabaseEncryption",
"thereAreCountUsersBlocked"
"thereAreCountUsersBlocked",
"restricted",
"knockRestricted"
],
"fr": [
@ -16677,7 +16707,9 @@
"enterNumber",
"buildTranslation",
"noDatabaseEncryption",
"thereAreCountUsersBlocked"
"thereAreCountUsersBlocked",
"restricted",
"knockRestricted"
],
"ga": [
@ -17802,7 +17834,9 @@
"enterNumber",
"buildTranslation",
"noDatabaseEncryption",
"thereAreCountUsersBlocked"
"thereAreCountUsersBlocked",
"restricted",
"knockRestricted"
],
"gl": [
@ -18666,7 +18700,9 @@
"capacitySetTooLow",
"roomCapacityExplanation",
"enterNumber",
"buildTranslation"
"buildTranslation",
"restricted",
"knockRestricted"
],
"he": [
@ -19910,7 +19946,9 @@
"enterNumber",
"buildTranslation",
"noDatabaseEncryption",
"thereAreCountUsersBlocked"
"thereAreCountUsersBlocked",
"restricted",
"knockRestricted"
],
"hi": [
@ -21394,7 +21432,9 @@
"enterNumber",
"buildTranslation",
"noDatabaseEncryption",
"thereAreCountUsersBlocked"
"thereAreCountUsersBlocked",
"restricted",
"knockRestricted"
],
"hr": [
@ -22331,7 +22371,9 @@
"enterNumber",
"buildTranslation",
"noDatabaseEncryption",
"thereAreCountUsersBlocked"
"thereAreCountUsersBlocked",
"restricted",
"knockRestricted"
],
"hu": [
@ -23205,7 +23247,9 @@
"capacitySetTooLow",
"roomCapacityExplanation",
"enterNumber",
"buildTranslation"
"buildTranslation",
"restricted",
"knockRestricted"
],
"ia": [
@ -24682,7 +24726,9 @@
"enterNumber",
"buildTranslation",
"noDatabaseEncryption",
"thereAreCountUsersBlocked"
"thereAreCountUsersBlocked",
"restricted",
"knockRestricted"
],
"id": [
@ -25546,7 +25592,9 @@
"capacitySetTooLow",
"roomCapacityExplanation",
"enterNumber",
"buildTranslation"
"buildTranslation",
"restricted",
"knockRestricted"
],
"ie": [
@ -26794,7 +26842,9 @@
"enterNumber",
"buildTranslation",
"noDatabaseEncryption",
"thereAreCountUsersBlocked"
"thereAreCountUsersBlocked",
"restricted",
"knockRestricted"
],
"it": [
@ -27709,7 +27759,9 @@
"enterNumber",
"buildTranslation",
"noDatabaseEncryption",
"thereAreCountUsersBlocked"
"thereAreCountUsersBlocked",
"restricted",
"knockRestricted"
],
"ja": [
@ -28735,7 +28787,9 @@
"enterNumber",
"buildTranslation",
"noDatabaseEncryption",
"thereAreCountUsersBlocked"
"thereAreCountUsersBlocked",
"restricted",
"knockRestricted"
],
"ka": [
@ -30080,7 +30134,9 @@
"enterNumber",
"buildTranslation",
"noDatabaseEncryption",
"thereAreCountUsersBlocked"
"thereAreCountUsersBlocked",
"restricted",
"knockRestricted"
],
"ko": [
@ -30944,7 +31000,9 @@
"capacitySetTooLow",
"roomCapacityExplanation",
"enterNumber",
"buildTranslation"
"buildTranslation",
"restricted",
"knockRestricted"
],
"lt": [
@ -31970,7 +32028,9 @@
"enterNumber",
"buildTranslation",
"noDatabaseEncryption",
"thereAreCountUsersBlocked"
"thereAreCountUsersBlocked",
"restricted",
"knockRestricted"
],
"lv": [
@ -32836,7 +32896,9 @@
"capacitySetTooLow",
"roomCapacityExplanation",
"enterNumber",
"buildTranslation"
"buildTranslation",
"restricted",
"knockRestricted"
],
"nb": [
@ -34026,7 +34088,9 @@
"enterNumber",
"buildTranslation",
"noDatabaseEncryption",
"thereAreCountUsersBlocked"
"thereAreCountUsersBlocked",
"restricted",
"knockRestricted"
],
"nl": [
@ -34980,7 +35044,9 @@
"enterNumber",
"buildTranslation",
"noDatabaseEncryption",
"thereAreCountUsersBlocked"
"thereAreCountUsersBlocked",
"restricted",
"knockRestricted"
],
"pl": [
@ -35943,7 +36009,9 @@
"enterNumber",
"buildTranslation",
"noDatabaseEncryption",
"thereAreCountUsersBlocked"
"thereAreCountUsersBlocked",
"restricted",
"knockRestricted"
],
"pt": [
@ -37412,7 +37480,9 @@
"enterNumber",
"buildTranslation",
"noDatabaseEncryption",
"thereAreCountUsersBlocked"
"thereAreCountUsersBlocked",
"restricted",
"knockRestricted"
],
"pt_BR": [
@ -38276,7 +38346,9 @@
"capacitySetTooLow",
"roomCapacityExplanation",
"enterNumber",
"buildTranslation"
"buildTranslation",
"restricted",
"knockRestricted"
],
"pt_PT": [
@ -39467,7 +39539,9 @@
"enterNumber",
"buildTranslation",
"noDatabaseEncryption",
"thereAreCountUsersBlocked"
"thereAreCountUsersBlocked",
"restricted",
"knockRestricted"
],
"ro": [
@ -40465,7 +40539,9 @@
"enterNumber",
"buildTranslation",
"noDatabaseEncryption",
"thereAreCountUsersBlocked"
"thereAreCountUsersBlocked",
"restricted",
"knockRestricted"
],
"ru": [
@ -41329,7 +41405,9 @@
"capacitySetTooLow",
"roomCapacityExplanation",
"enterNumber",
"buildTranslation"
"buildTranslation",
"restricted",
"knockRestricted"
],
"sk": [
@ -42586,7 +42664,9 @@
"enterNumber",
"buildTranslation",
"noDatabaseEncryption",
"thereAreCountUsersBlocked"
"thereAreCountUsersBlocked",
"restricted",
"knockRestricted"
],
"sl": [
@ -43973,7 +44053,9 @@
"enterNumber",
"buildTranslation",
"noDatabaseEncryption",
"thereAreCountUsersBlocked"
"thereAreCountUsersBlocked",
"restricted",
"knockRestricted"
],
"sr": [
@ -45134,7 +45216,9 @@
"enterNumber",
"buildTranslation",
"noDatabaseEncryption",
"thereAreCountUsersBlocked"
"thereAreCountUsersBlocked",
"restricted",
"knockRestricted"
],
"sv": [
@ -46029,7 +46113,9 @@
"enterNumber",
"buildTranslation",
"noDatabaseEncryption",
"thereAreCountUsersBlocked"
"thereAreCountUsersBlocked",
"restricted",
"knockRestricted"
],
"ta": [
@ -47517,7 +47603,9 @@
"enterNumber",
"buildTranslation",
"noDatabaseEncryption",
"thereAreCountUsersBlocked"
"thereAreCountUsersBlocked",
"restricted",
"knockRestricted"
],
"th": [
@ -48959,7 +49047,9 @@
"enterNumber",
"buildTranslation",
"noDatabaseEncryption",
"thereAreCountUsersBlocked"
"thereAreCountUsersBlocked",
"restricted",
"knockRestricted"
],
"tr": [
@ -49823,7 +49913,9 @@
"capacitySetTooLow",
"roomCapacityExplanation",
"enterNumber",
"buildTranslation"
"buildTranslation",
"restricted",
"knockRestricted"
],
"uk": [
@ -50718,7 +50810,9 @@
"enterNumber",
"buildTranslation",
"noDatabaseEncryption",
"thereAreCountUsersBlocked"
"thereAreCountUsersBlocked",
"restricted",
"knockRestricted"
],
"vi": [
@ -52135,7 +52229,9 @@
"enterNumber",
"buildTranslation",
"noDatabaseEncryption",
"thereAreCountUsersBlocked"
"thereAreCountUsersBlocked",
"restricted",
"knockRestricted"
],
"zh": [
@ -52999,7 +53095,9 @@
"capacitySetTooLow",
"roomCapacityExplanation",
"enterNumber",
"buildTranslation"
"buildTranslation",
"restricted",
"knockRestricted"
],
"zh_Hant": [
@ -54138,6 +54236,8 @@
"enterNumber",
"buildTranslation",
"noDatabaseEncryption",
"thereAreCountUsersBlocked"
"thereAreCountUsersBlocked",
"restricted",
"knockRestricted"
]
}

View file

@ -1409,10 +1409,10 @@ packages:
dependency: "direct main"
description:
name: matrix
sha256: b96f16ec227138a61d148f2812c4d558b2930edbb6cd05d03b3a41c4fffd2f47
sha256: "668ed9b7279ac9c364c687585e606c1122f88d6e2e3410ba781a167b47cd9471"
url: "https://pub.dev"
source: hosted
version: "0.29.7"
version: "0.29.9"
meta:
dependency: transitive
description:

View file

@ -6,7 +6,7 @@ description: Learn a language while texting your friends.
# Pangea#
publish_to: none
# On version bump also increase the build number for F-Droid
version: 1.20.0+3532
version: 1.21.0+3533
environment:
sdk: ">=3.0.0 <4.0.0"
@ -70,7 +70,7 @@ dependencies:
keyboard_shortcuts: ^0.1.4
latlong2: ^0.9.1
linkify: ^5.0.0
matrix: ^0.29.7
matrix: ^0.29.9
native_imaging: ^0.1.1
package_info_plus: ^6.0.0
pasteboard: ^0.2.0
@ -200,9 +200,8 @@ dependency_overrides:
# Until https://github.com/mogol/flutter_secure_storage/issues/616 is fixed
flutter_secure_storage_linux: 1.1.3
geolocator_android:
hosted:
name: geolocator_android
url: https://hanntech-gmbh.gitlab.io/free2pass/flutter-geolocator-floss
hosted: https://hanntech-gmbh.gitlab.io/free2pass/flutter-geolocator-floss
version: ^1.0.1
# waiting for null safety
# Upstream pull request: https://github.com/AntoineMarcel/keyboard_shortcuts/pull/13
keyboard_shortcuts:

View file

@ -64,13 +64,40 @@ parts:
stage-snaps:
- zenity-integration
flutter-git:
source: https://github.com/flutter/flutter.git
source-tag: 3.19.6
source-depth: 1
plugin: nil
override-build: |
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 -s $CRAFT_PART_INSTALL/usr/libexec/flutter/bin/flutter $CRAFT_PART_INSTALL/usr/bin/flutter
ln -s $SNAPCRAFT_PART_INSTALL/usr/libexec/flutter/bin/dart $SNAPCRAFT_PART_INSTALL/usr/bin/dart
$CRAFT_PART_INSTALL/usr/bin/flutter doctor
build-packages:
- clang
- cmake
- curl
- libgtk-3-dev
- ninja-build
- unzip
- xz-utils
- zip
override-prime: ''
fluffychat:
plugin: flutter
after: [flutter-git]
plugin: nil
source: .
override-build: |
# Workaround for Flutter build error:
rm -rf build
craftctl default
flutter build linux --release -v
mkdir -p $CRAFT_PART_INSTALL/bin/
cp -r build/linux/*/release/bundle/* $CRAFT_PART_INSTALL/bin/
build-packages:
- libjsoncpp-dev
- curl
@ -87,7 +114,7 @@ slots:
apps:
fluffychat:
command: fluffychat
command: bin/fluffychat
extensions: [ gnome ]
plugs:
- audio-playback