Merge branch 'main' into dependabot/pub/flutter_webrtc-1.1.0

This commit is contained in:
Krille-chan 2025-09-04 08:44:07 +02:00 committed by GitHub
commit 83100cb843
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 3628 additions and 3665 deletions

View file

@ -35,7 +35,7 @@ jobs:
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v5
- run: cat .github/workflows/versions.env >> $GITHUB_ENV - run: cat .github/workflows/versions.env >> $GITHUB_ENV
- uses: actions/setup-java@v4 - uses: actions/setup-java@v5
with: with:
java-version: ${{ env.JAVA_VERSION }} java-version: ${{ env.JAVA_VERSION }}
distribution: "zulu" distribution: "zulu"

View file

@ -41,7 +41,7 @@ jobs:
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v5
- run: cat .github/workflows/versions.env >> $GITHUB_ENV - run: cat .github/workflows/versions.env >> $GITHUB_ENV
- uses: actions/setup-java@v4 - uses: actions/setup-java@v5
with: with:
java-version: ${{ env.JAVA_VERSION }} java-version: ${{ env.JAVA_VERSION }}
distribution: 'zulu' distribution: 'zulu'

View file

@ -74,7 +74,7 @@ jobs:
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v5
- run: cat .github/workflows/versions.env >> $GITHUB_ENV - run: cat .github/workflows/versions.env >> $GITHUB_ENV
- uses: actions/setup-java@v4 - uses: actions/setup-java@v5
with: with:
java-version: ${{ env.JAVA_VERSION }} java-version: ${{ env.JAVA_VERSION }}
distribution: 'zulu' distribution: 'zulu'
@ -139,7 +139,7 @@ jobs:
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v5
- run: cat .github/workflows/versions.env >> $GITHUB_ENV - run: cat .github/workflows/versions.env >> $GITHUB_ENV
- uses: actions/setup-java@v4 - uses: actions/setup-java@v5
with: with:
java-version: ${{ env.JAVA_VERSION }} java-version: ${{ env.JAVA_VERSION }}
distribution: 'zulu' distribution: 'zulu'

View file

@ -1,2 +1,2 @@
FLUTTER_VERSION=3.32.8 FLUTTER_VERSION=3.35.2
JAVA_VERSION=17 JAVA_VERSION=17

View file

@ -2478,5 +2478,54 @@
} }
}, },
"jumpToLastReadMessage": "Hopp til sist leste melding", "jumpToLastReadMessage": "Hopp til sist leste melding",
"@jumpToLastReadMessage": {} "@jumpToLastReadMessage": {},
"serverLimitReached": "Grensen for server er nådd! Venter i {seconds} sekunder...",
"@serverLimitReached": {
"type": "integer",
"placeholders": {
"seconds": {
"type": "int"
}
}
},
"blur": "Uskarphet:",
"@blur": {},
"opacity": "Ugjennomsiktighet:",
"@opacity": {},
"noContactInformationProvided": "Serveren oppgir ingen gyldig kontaktinformasjon",
"@noContactInformationProvided": {},
"supportPage": "Supportside",
"@supportPage": {},
"compress": "Komprimer",
"@compress": {},
"italicText": "Kursiv tekst",
"@italicText": {},
"strikeThrough": "Gjennomstreking",
"@strikeThrough": {},
"youUnbannedUser": "Du opphevet utestengelsen av {user}",
"@youUnbannedUser": {
"placeholders": {
"user": {
"type": "String"
}
}
},
"disableEncryptionWarning": "Av sikkerhetshensyn kan du ikke deaktivere kryptering i en chat der det har vært aktivert tidligere.",
"@disableEncryptionWarning": {},
"deviceKeys": "Enhetsnøkler:",
"@deviceKeys": {},
"readUpToHere": "Lest frem til her",
"@readUpToHere": {},
"jump": "Hopp",
"@jump": {},
"reportErrorDescription": "😭 Å nei. Noe gikk galt. Hvis du ønsker det, kan du rapportere denne feilen til utviklerne.",
"@reportErrorDescription": {},
"invalidInput": "Ugyldig inndata!",
"@invalidInput": {},
"pleaseEnterANumber": "Vennligst skriv inn et tall større enn 0",
"@pleaseEnterANumber": {},
"archiveRoomDescription": "Chatten vil bli flyttet til arkivet. Andre brukere vil kunne se at du har forlatt chatten.",
"@archiveRoomDescription": {},
"removeDevicesDescription": "Du vil bli logget ut av denne enheten og vil ikke lenger kunne motta meldinger.",
"@removeDevicesDescription": {}
} }

File diff suppressed because it is too large Load diff

View file

@ -2,10 +2,10 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:emojis/emoji.dart'; import 'package:emojis/emoji.dart';
import 'package:flutter_typeahead/flutter_typeahead.dart';
import 'package:matrix/matrix.dart'; import 'package:matrix/matrix.dart';
import 'package:slugify/slugify.dart'; import 'package:slugify/slugify.dart';
import 'package:fluffychat/config/app_config.dart';
import 'package:fluffychat/config/setting_keys.dart'; import 'package:fluffychat/config/setting_keys.dart';
import 'package:fluffychat/l10n/l10n.dart'; import 'package:fluffychat/l10n/l10n.dart';
import 'package:fluffychat/utils/markdown_context_builder.dart'; import 'package:fluffychat/utils/markdown_context_builder.dart';
@ -46,14 +46,12 @@ class InputBar extends StatelessWidget {
super.key, super.key,
}); });
List<Map<String, String?>> getSuggestions(String text) { List<Map<String, String?>> getSuggestions(TextEditingValue text) {
if (controller!.selection.baseOffset != if (text.selection.baseOffset != text.selection.extentOffset ||
controller!.selection.extentOffset || text.selection.baseOffset < 0) {
controller!.selection.baseOffset < 0) {
return []; // no entries if there is selected text return []; // no entries if there is selected text
} }
final searchText = final searchText = text.text.substring(0, text.selection.baseOffset);
controller!.text.substring(0, controller!.selection.baseOffset);
final ret = <Map<String, String?>>[]; final ret = <Map<String, String?>>[];
const maxResults = 30; const maxResults = 30;
@ -218,33 +216,28 @@ class InputBar extends StatelessWidget {
Widget buildSuggestion( Widget buildSuggestion(
BuildContext context, BuildContext context,
Map<String, String?> suggestion, Map<String, String?> suggestion,
void Function(Map<String, String?>) onSelected,
Client? client, Client? client,
) { ) {
final theme = Theme.of(context); final theme = Theme.of(context);
const size = 30.0; const size = 30.0;
const padding = EdgeInsets.all(4.0);
if (suggestion['type'] == 'command') { if (suggestion['type'] == 'command') {
final command = suggestion['name']!; final command = suggestion['name']!;
final hint = commandHint(L10n.of(context), command); final hint = commandHint(L10n.of(context), command);
return Tooltip( return Tooltip(
message: hint, message: hint,
waitDuration: const Duration(days: 1), // don't show on hover waitDuration: const Duration(days: 1), // don't show on hover
child: Container( child: ListTile(
padding: padding, onTap: () => onSelected(suggestion),
child: Column( title: Text(
crossAxisAlignment: CrossAxisAlignment.start, commandExample(command),
children: [ style: const TextStyle(fontFamily: 'RobotoMono'),
Text( ),
commandExample(command), subtitle: Text(
style: const TextStyle(fontFamily: 'RobotoMono'), hint,
), maxLines: 1,
Text( overflow: TextOverflow.ellipsis,
hint, style: theme.textTheme.bodySmall,
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: theme.textTheme.bodySmall,
),
],
), ),
), ),
); );
@ -254,29 +247,28 @@ class InputBar extends StatelessWidget {
return Tooltip( return Tooltip(
message: label, message: label,
waitDuration: const Duration(days: 1), // don't show on hover waitDuration: const Duration(days: 1), // don't show on hover
child: Container( child: ListTile(
padding: padding, onTap: () => onSelected(suggestion),
child: Text(label, style: const TextStyle(fontFamily: 'RobotoMono')), title: Text(label, style: const TextStyle(fontFamily: 'RobotoMono')),
), ),
); );
} }
if (suggestion['type'] == 'emote') { if (suggestion['type'] == 'emote') {
return Container( return ListTile(
padding: padding, onTap: () => onSelected(suggestion),
child: Row( leading: MxcImage(
// ensure proper ordering ...
key: ValueKey(suggestion['name']),
uri: suggestion['mxc'] is String
? Uri.parse(suggestion['mxc'] ?? '')
: null,
width: size,
height: size,
isThumbnail: false,
),
title: Row(
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[ children: <Widget>[
MxcImage(
// ensure proper ordering ...
key: ValueKey(suggestion['name']),
uri: suggestion['mxc'] is String
? Uri.parse(suggestion['mxc'] ?? '')
: null,
width: size,
height: size,
isThumbnail: false,
),
const SizedBox(width: 6),
Text(suggestion['name']!), Text(suggestion['name']!),
Expanded( Expanded(
child: Align( child: Align(
@ -302,28 +294,22 @@ class InputBar extends StatelessWidget {
} }
if (suggestion['type'] == 'user' || suggestion['type'] == 'room') { if (suggestion['type'] == 'user' || suggestion['type'] == 'room') {
final url = Uri.parse(suggestion['avatar_url'] ?? ''); final url = Uri.parse(suggestion['avatar_url'] ?? '');
return Container( return ListTile(
padding: padding, onTap: () => onSelected(suggestion),
child: Row( leading: Avatar(
crossAxisAlignment: CrossAxisAlignment.center, mxContent: url,
children: <Widget>[ name: suggestion.tryGet<String>('displayname') ??
Avatar( suggestion.tryGet<String>('mxid'),
mxContent: url, size: size,
name: suggestion.tryGet<String>('displayname') ?? client: client,
suggestion.tryGet<String>('mxid'),
size: size,
client: client,
),
const SizedBox(width: 6),
Text(suggestion['displayname'] ?? suggestion['mxid']!),
],
), ),
title: Text(suggestion['displayname'] ?? suggestion['mxid']!),
); );
} }
return const SizedBox.shrink(); return const SizedBox.shrink();
} }
void insertSuggestion(_, Map<String, String?> suggestion) { String insertSuggestion(Map<String, String?> suggestion) {
final replaceText = final replaceText =
controller!.text.substring(0, controller!.selection.baseOffset); controller!.text.substring(0, controller!.selection.baseOffset);
var startText = ''; var startText = '';
@ -384,27 +370,18 @@ class InputBar extends StatelessWidget {
(Match m) => '${m[1]}$insertText', (Match m) => '${m[1]}$insertText',
); );
} }
if (insertText.isNotEmpty && startText.isNotEmpty) {
controller!.text = startText + afterText; return startText + afterText;
controller!.selection = TextSelection(
baseOffset: startText.length,
extentOffset: startText.length,
);
}
} }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return TypeAheadField<Map<String, String?>>( final theme = Theme.of(context);
direction: VerticalDirection.up, return Autocomplete<Map<String, String?>>(
hideOnEmpty: true,
hideOnLoading: true,
controller: controller,
focusNode: focusNode, focusNode: focusNode,
hideOnSelect: false, textEditingController: controller,
debounceDuration: const Duration(milliseconds: 50), optionsBuilder: getSuggestions,
// show suggestions after 50ms idle time (default is 300) fieldViewBuilder: (context, controller, focusNode, _) => TextField(
builder: (context, controller, focusNode) => TextField(
controller: controller, controller: controller,
focusNode: focusNode, focusNode: focusNode,
readOnly: readOnly, readOnly: readOnly,
@ -448,17 +425,27 @@ class InputBar extends StatelessWidget {
}, },
textCapitalization: TextCapitalization.sentences, textCapitalization: TextCapitalization.sentences,
), ),
optionsViewBuilder: (c, onSelected, s) {
suggestionsCallback: getSuggestions, final suggestions = s.toList();
itemBuilder: (c, s) => buildSuggestion(c, s, Matrix.of(context).client), return Material(
onSelected: (Map<String, String?> suggestion) => elevation: theme.appBarTheme.scrolledUnderElevation ?? 4,
insertSuggestion(context, suggestion), shadowColor: theme.appBarTheme.shadowColor,
errorBuilder: (BuildContext context, Object? error) => borderRadius: BorderRadius.circular(AppConfig.borderRadius),
const SizedBox.shrink(), clipBehavior: Clip.hardEdge,
loadingBuilder: (BuildContext context) => const SizedBox.shrink(), child: ListView.builder(
// fix loading briefly flickering a dark box shrinkWrap: true,
emptyBuilder: (BuildContext context) => itemCount: suggestions.length,
const SizedBox.shrink(), // fix loading briefly showing no suggestions itemBuilder: (context, i) => buildSuggestion(
c,
suggestions[i],
onSelected,
Matrix.of(context).client,
),
),
);
},
displayStringForOption: insertSuggestion,
optionsViewOpenDirection: OptionsViewOpenDirection.up,
); );
} }
} }

View file

@ -45,19 +45,27 @@ class ChatAccessSettingsPageView extends StatelessWidget {
), ),
), ),
), ),
for (final historyVisibility in HistoryVisibility.values) RadioGroup<HistoryVisibility>(
RadioListTile<HistoryVisibility>.adaptive( groupValue: room.historyVisibility,
title: Text( onChanged: controller.historyVisibilityLoading ||
historyVisibility !room.canChangeHistoryVisibility
.getLocalizedString(MatrixLocals(L10n.of(context))), ? (_) {}
), : controller.setHistoryVisibility,
value: historyVisibility, child: Column(
groupValue: room.historyVisibility, mainAxisSize: MainAxisSize.min,
onChanged: controller.historyVisibilityLoading || children: [
!room.canChangeHistoryVisibility for (final historyVisibility in HistoryVisibility.values)
? null RadioListTile<HistoryVisibility>.adaptive(
: controller.setHistoryVisibility, title: Text(
historyVisibility.getLocalizedString(
MatrixLocals(L10n.of(context)),
),
),
value: historyVisibility,
),
],
), ),
),
Divider(color: theme.dividerColor), Divider(color: theme.dividerColor),
ListTile( ListTile(
title: Text( title: Text(
@ -68,19 +76,25 @@ class ChatAccessSettingsPageView extends StatelessWidget {
), ),
), ),
), ),
for (final joinRule in controller.availableJoinRules) RadioGroup(
if (joinRule != JoinRules.private) groupValue: room.joinRules,
RadioListTile<JoinRules>.adaptive( onChanged: controller.setJoinRule,
title: Text( child: Column(
joinRule.localizedString(L10n.of(context)), mainAxisSize: MainAxisSize.min,
), children: [
value: joinRule, for (final joinRule in controller.availableJoinRules)
groupValue: room.joinRules, if (joinRule != JoinRules.private)
onChanged: controller.joinRulesLoading || RadioListTile<JoinRules>.adaptive(
!room.canChangeJoinRules enabled: !controller.joinRulesLoading &&
? null room.canChangeJoinRules,
: controller.setJoinRule, title: Text(
), joinRule.localizedString(L10n.of(context)),
),
value: joinRule,
),
],
),
),
Divider(color: theme.dividerColor), Divider(color: theme.dividerColor),
if ({JoinRules.public, JoinRules.knock} if ({JoinRules.public, JoinRules.knock}
.contains(room.joinRules)) ...[ .contains(room.joinRules)) ...[
@ -93,20 +107,26 @@ class ChatAccessSettingsPageView extends StatelessWidget {
), ),
), ),
), ),
for (final guestAccess in GuestAccess.values) RadioGroup(
RadioListTile<GuestAccess>.adaptive( groupValue: room.guestAccess,
title: Text( onChanged: controller.setGuestAccess,
guestAccess.getLocalizedString( child: Column(
MatrixLocals(L10n.of(context)), mainAxisSize: MainAxisSize.min,
), children: [
), for (final guestAccess in GuestAccess.values)
value: guestAccess, RadioListTile<GuestAccess>.adaptive(
groupValue: room.guestAccess, enabled: !controller.guestAccessLoading &&
onChanged: controller.guestAccessLoading || room.canChangeGuestAccess,
!room.canChangeGuestAccess title: Text(
? null guestAccess.getLocalizedString(
: controller.setGuestAccess, MatrixLocals(L10n.of(context)),
),
),
value: guestAccess,
),
],
), ),
),
Divider(color: theme.dividerColor), Divider(color: theme.dividerColor),
ListTile( ListTile(
title: Text( title: Text(

View file

@ -110,7 +110,7 @@ class ChatEncryptionSettingsView extends StatelessWidget {
itemBuilder: (BuildContext context, int i) => itemBuilder: (BuildContext context, int i) =>
SwitchListTile( SwitchListTile(
value: !deviceKeys[i].blocked, value: !deviceKeys[i].blocked,
activeColor: deviceKeys[i].verified activeThumbColor: deviceKeys[i].verified
? Colors.green ? Colors.green
: Colors.orange, : Colors.orange,
onChanged: (_) => onChanged: (_) =>

View file

@ -405,10 +405,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: file_picker name: file_picker
sha256: ef7d2a085c1b1d69d17b6842d0734aad90156de08df6bd3c12496d0bd6ddf8e2 sha256: e7e16c9d15c36330b94ca0e2ad8cb61f93cd5282d0158c09805aed13b5452f22
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "10.3.1" version: "10.3.2"
file_selector: file_selector:
dependency: "direct main" dependency: "direct main"
description: description:
@ -507,54 +507,6 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.1.1" version: "0.1.1"
flutter_keyboard_visibility:
dependency: transitive
description:
name: flutter_keyboard_visibility
sha256: "98664be7be0e3ffca00de50f7f6a287ab62c763fc8c762e0a21584584a3ff4f8"
url: "https://pub.dev"
source: hosted
version: "6.0.0"
flutter_keyboard_visibility_linux:
dependency: transitive
description:
name: flutter_keyboard_visibility_linux
sha256: "6fba7cd9bb033b6ddd8c2beb4c99ad02d728f1e6e6d9b9446667398b2ac39f08"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
flutter_keyboard_visibility_macos:
dependency: transitive
description:
name: flutter_keyboard_visibility_macos
sha256: c5c49b16fff453dfdafdc16f26bdd8fb8d55812a1d50b0ce25fc8d9f2e53d086
url: "https://pub.dev"
source: hosted
version: "1.0.0"
flutter_keyboard_visibility_platform_interface:
dependency: transitive
description:
name: flutter_keyboard_visibility_platform_interface
sha256: e43a89845873f7be10cb3884345ceb9aebf00a659f479d1c8f4293fcb37022a4
url: "https://pub.dev"
source: hosted
version: "2.0.0"
flutter_keyboard_visibility_web:
dependency: transitive
description:
name: flutter_keyboard_visibility_web
sha256: d3771a2e752880c79203f8d80658401d0c998e4183edca05a149f5098ce6e3d1
url: "https://pub.dev"
source: hosted
version: "2.0.0"
flutter_keyboard_visibility_windows:
dependency: transitive
description:
name: flutter_keyboard_visibility_windows
sha256: fc4b0f0b6be9b93ae527f3d527fb56ee2d918cd88bbca438c478af7bcfd0ef73
url: "https://pub.dev"
source: hosted
version: "1.0.0"
flutter_linkify: flutter_linkify:
dependency: "direct main" dependency: "direct main"
description: description:
@ -575,10 +527,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: flutter_local_notifications name: flutter_local_notifications
sha256: "20ca0a9c82ce0c855ac62a2e580ab867f3fbea82680a90647f7953832d0850ae" sha256: a9966c850de5e445331b854fa42df96a8020066d67f125a5964cbc6556643f68
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "19.4.0" version: "19.4.1"
flutter_local_notifications_linux: flutter_local_notifications_linux:
dependency: transitive dependency: transitive
description: description:
@ -718,15 +670,6 @@ packages:
description: flutter description: flutter
source: sdk source: sdk
version: "0.0.0" version: "0.0.0"
flutter_typeahead:
dependency: "direct main"
description:
path: "."
ref: main
resolved-ref: "3e209e67aa6e780cba61ced06cf49d2babbbcaa4"
url: "https://github.com/famedly/flutter_typeahead.git"
source: git
version: "5.2.0"
flutter_vodozemac: flutter_vodozemac:
dependency: "direct main" dependency: "direct main"
description: description:
@ -862,10 +805,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: go_router name: go_router
sha256: "8b1f37dfaf6e958c6b872322db06f946509433bec3de753c3491a42ae9ec2b48" sha256: eb059dfe59f08546e9787f895bd01652076f996bcbf485a8609ef990419ad227
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "16.1.0" version: "16.2.1"
gsettings: gsettings:
dependency: transitive dependency: transitive
description: description:
@ -950,66 +893,66 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: image_picker name: image_picker
sha256: "021834d9c0c3de46bf0fe40341fa07168407f694d9b2bb18d532dc1261867f7a" sha256: "736eb56a911cf24d1859315ad09ddec0b66104bc41a7f8c5b96b4e2620cf5041"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.2" version: "1.2.0"
image_picker_android: image_picker_android:
dependency: transitive dependency: transitive
description: description:
name: image_picker_android name: image_picker_android
sha256: "317a5d961cec5b34e777b9252393f2afbd23084aa6e60fcf601dcf6341b9ebeb" sha256: e83b2b05141469c5e19d77e1dfa11096b6b1567d09065b2265d7c6904560050c
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.8.12+23" version: "0.8.13"
image_picker_for_web: image_picker_for_web:
dependency: transitive dependency: transitive
description: description:
name: image_picker_for_web name: image_picker_for_web
sha256: "717eb042ab08c40767684327be06a5d8dbb341fe791d514e4b92c7bbe1b7bb83" sha256: "40c2a6a0da15556dc0f8e38a3246064a971a9f512386c3339b89f76db87269b6"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.6" version: "3.1.0"
image_picker_ios: image_picker_ios:
dependency: transitive dependency: transitive
description: description:
name: image_picker_ios name: image_picker_ios
sha256: "05da758e67bc7839e886b3959848aa6b44ff123ab4b28f67891008afe8ef9100" sha256: eb06fe30bab4c4497bad449b66448f50edcc695f1c59408e78aa3a8059eb8f0e
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.8.12+2" version: "0.8.13"
image_picker_linux: image_picker_linux:
dependency: transitive dependency: transitive
description: description:
name: image_picker_linux name: image_picker_linux
sha256: "34a65f6740df08bbbeb0a1abd8e6d32107941fd4868f67a507b25601651022c9" sha256: "1f81c5f2046b9ab724f85523e4af65be1d47b038160a8c8deed909762c308ed4"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.2.1+2" version: "0.2.2"
image_picker_macos: image_picker_macos:
dependency: transitive dependency: transitive
description: description:
name: image_picker_macos name: image_picker_macos
sha256: "1b90ebbd9dcf98fb6c1d01427e49a55bd96b5d67b8c67cf955d60a5de74207c1" sha256: d58cd9d67793d52beefd6585b12050af0a7663c0c2a6ece0fb110a35d6955e04
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.2.1+2" version: "0.2.2"
image_picker_platform_interface: image_picker_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: image_picker_platform_interface name: image_picker_platform_interface
sha256: "886d57f0be73c4b140004e78b9f28a8914a09e50c2d816bdd0520051a71236a0" sha256: "9f143b0dba3e459553209e20cc425c9801af48e6dfa4f01a0fcf927be3f41665"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.10.1" version: "2.11.0"
image_picker_windows: image_picker_windows:
dependency: transitive dependency: transitive
description: description:
name: image_picker_windows name: image_picker_windows
sha256: "6ad07afc4eb1bc25f3a01084d28520496c4a3bb0cb13685435838167c9dcedeb" sha256: d248c86554a72b5495a31c56f060cf73a41c7ff541689327b1a7dbccc33adfae
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.2.1+1" version: "0.2.2"
import_sorter: import_sorter:
dependency: "direct dev" dependency: "direct dev"
description: description:
@ -1091,26 +1034,26 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: leak_tracker name: leak_tracker
sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0" sha256: "8dcda04c3fc16c14f48a7bb586d4be1f0d1572731b6d81d51772ef47c02081e0"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "10.0.9" version: "11.0.1"
leak_tracker_flutter_testing: leak_tracker_flutter_testing:
dependency: transitive dependency: transitive
description: description:
name: leak_tracker_flutter_testing name: leak_tracker_flutter_testing
sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.9" version: "3.0.10"
leak_tracker_testing: leak_tracker_testing:
dependency: transitive dependency: transitive
description: description:
name: leak_tracker_testing name: leak_tracker_testing
sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.1" version: "3.0.2"
license_checker: license_checker:
dependency: "direct dev" dependency: "direct dev"
description: description:
@ -1415,38 +1358,6 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.8" version: "2.1.8"
pointer_interceptor:
dependency: transitive
description:
name: pointer_interceptor
sha256: "57210410680379aea8b1b7ed6ae0c3ad349bfd56fe845b8ea934a53344b9d523"
url: "https://pub.dev"
source: hosted
version: "0.10.1+2"
pointer_interceptor_ios:
dependency: transitive
description:
name: pointer_interceptor_ios
sha256: a6906772b3205b42c44614fcea28f818b1e5fdad73a4ca742a7bd49818d9c917
url: "https://pub.dev"
source: hosted
version: "0.10.1"
pointer_interceptor_platform_interface:
dependency: transitive
description:
name: pointer_interceptor_platform_interface
sha256: "0597b0560e14354baeb23f8375cd612e8bd4841bf8306ecb71fcd0bb78552506"
url: "https://pub.dev"
source: hosted
version: "0.10.0+1"
pointer_interceptor_web:
dependency: transitive
description:
name: pointer_interceptor_web
sha256: "7a7087782110f8c1827170660b09f8aa893e0e9a61431dbbe2ac3fc482e8c044"
url: "https://pub.dev"
source: hosted
version: "0.10.2+1"
pool: pool:
dependency: transitive dependency: transitive
description: description:
@ -1563,66 +1474,66 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: record name: record
sha256: daeb3f9b3fea9797094433fe6e49a879d8e4ca4207740bc6dc7e4a58764f0817 sha256: "9dbc6ff3e784612f90a9b001373c45ff76b7a08abd2bd9fdf72c242320c8911c"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "6.0.0" version: "6.1.1"
record_android: record_android:
dependency: transitive dependency: transitive
description: description:
name: record_android name: record_android
sha256: "97d7122455f30de89a01c6c244c839085be6b12abca251fc0e78f67fed73628b" sha256: "8361a791c9a3fa5c065f0b8b5adb10f12531f8538c86b19474cf7b56ea80d426"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.3" version: "1.4.1"
record_ios: record_ios:
dependency: transitive dependency: transitive
description: description:
name: record_ios name: record_ios
sha256: "73706ebbece6150654c9d6f57897cf9b622c581148304132ba85dba15df0fdfb" sha256: "13e241ed9cbc220534a40ae6b66222e21288db364d96dd66fb762ebd3cb77c71"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.0" version: "1.1.2"
record_linux: record_linux:
dependency: transitive dependency: transitive
description: description:
name: record_linux name: record_linux
sha256: fcb5964a84292813de70d52253663c1caca00a15f849fb5d0fdf9b929b28a7b9 sha256: "235b1f1fb84e810f8149cc0c2c731d7d697f8d1c333b32cb820c449bf7bb72d8"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.0" version: "1.2.1"
record_macos: record_macos:
dependency: transitive dependency: transitive
description: description:
name: record_macos name: record_macos
sha256: "02240833fde16c33fcf2c589f3e08d4394b704761b4a3bb609d872ff3043fbbd" sha256: "2849068bb59072f300ad63ed146e543d66afaef8263edba4de4834fc7c8d4d35"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.0" version: "1.1.1"
record_platform_interface: record_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: record_platform_interface name: record_platform_interface
sha256: "8a575828733d4c3cb5983c914696f40db8667eab3538d4c41c50cbb79e722ef4" sha256: b0065fdf1ec28f5a634d676724d388a77e43ce7646fb049949f58c69f3fcb4ed
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.2.0" version: "1.4.0"
record_web: record_web:
dependency: transitive dependency: transitive
description: description:
name: record_web name: record_web
sha256: "654c08113961051dcb5427e63f56315ba47c0752781ba990dac9313d0ec23c70" sha256: "4f0adf20c9ccafcc02d71111fd91fba1ca7b17a7453902593e5a9b25b74a5c56"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.6" version: "1.2.0"
record_windows: record_windows:
dependency: transitive dependency: transitive
description: description:
name: record_windows name: record_windows
sha256: "85a22fc97f6d73ecd67c8ba5f2f472b74ef1d906f795b7970f771a0914167e99" sha256: "223258060a1d25c62bae18282c16783f28581ec19401d17e56b5205b9f039d78"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.6" version: "1.0.7"
retry: retry:
dependency: transitive dependency: transitive
description: description:
@ -1920,26 +1831,26 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: test name: test
sha256: "301b213cd241ca982e9ba50266bd3f5bd1ea33f1455554c5abb85d1be0e2d87e" sha256: "65e29d831719be0591f7b3b1a32a3cda258ec98c58c7b25f7b84241bc31215bb"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.25.15" version: "1.26.2"
test_api: test_api:
dependency: transitive dependency: transitive
description: description:
name: test_api name: test_api
sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.7.4" version: "0.7.6"
test_core: test_core:
dependency: transitive dependency: transitive
description: description:
name: test_core name: test_core
sha256: "84d17c3486c8dfdbe5e12a50c8ae176d15e2a771b96909a9442b40173649ccaa" sha256: "80bf5a02b60af04b09e14f6fe68b921aad119493e26e490deaca5993fef1b05a"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.6.8" version: "0.6.11"
timezone: timezone:
dependency: transitive dependency: transitive
description: description:
@ -2128,10 +2039,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: vector_math name: vector_math
sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.4" version: "2.2.0"
video_compress: video_compress:
dependency: "direct main" dependency: "direct main"
description: description:

View file

@ -24,14 +24,14 @@ dependencies:
dynamic_color: ^1.8.1 dynamic_color: ^1.8.1
emoji_picker_flutter: ^4.3.0 emoji_picker_flutter: ^4.3.0
emojis: ^0.9.9 emojis: ^0.9.9
file_picker: ^10.3.1 file_picker: ^10.3.2
file_selector: ^1.0.3 file_selector: ^1.0.3
flutter: flutter:
sdk: flutter sdk: flutter
flutter_foreground_task: ^9.1.0 flutter_foreground_task: ^9.1.0
flutter_highlighter: ^0.1.1 flutter_highlighter: ^0.1.1
flutter_linkify: ^6.0.0 flutter_linkify: ^6.0.0
flutter_local_notifications: ^19.4.0 flutter_local_notifications: ^19.4.1
flutter_localizations: flutter_localizations:
sdk: flutter sdk: flutter
flutter_map: ^8.2.1 flutter_map: ^8.2.1
@ -39,20 +39,16 @@ dependencies:
flutter_openssl_crypto: ^0.5.0 flutter_openssl_crypto: ^0.5.0
flutter_secure_storage: ^9.2.4 flutter_secure_storage: ^9.2.4
flutter_shortcuts_new: ^2.0.0 flutter_shortcuts_new: ^2.0.0
flutter_typeahead: ## Custom fork from flutter_typeahead since the package is not maintain well.
git:
url: https://github.com/famedly/flutter_typeahead.git
ref: main
flutter_vodozemac: ^0.2.2 flutter_vodozemac: ^0.2.2
flutter_web_auth_2: ^3.1.1 # Version 4 blocked by https://github.com/MixinNetwork/flutter-plugins/issues/379 flutter_web_auth_2: ^3.1.1 # Version 4 blocked by https://github.com/MixinNetwork/flutter-plugins/issues/379
flutter_webrtc: ^1.1.0 flutter_webrtc: ^1.1.0
geolocator: ^14.0.2 geolocator: ^14.0.2
go_router: ^16.1.0 go_router: ^16.2.1
handy_window: ^0.4.0 handy_window: ^0.4.0
html: ^0.15.4 html: ^0.15.4
http: ^1.5.0 http: ^1.5.0
image: ^4.1.7 image: ^4.1.7
image_picker: ^1.1.0 image_picker: ^1.2.0
intl: any intl: any
just_audio: ^0.10.4 just_audio: ^0.10.4
latlong2: ^0.9.1 latlong2: ^0.9.1
@ -71,7 +67,7 @@ dependencies:
qr_code_scanner_plus: ^2.0.10+1 qr_code_scanner_plus: ^2.0.10+1
qr_image: ^1.0.0 qr_image: ^1.0.0
receive_sharing_intent: ^1.8.1 receive_sharing_intent: ^1.8.1
record: ^6.0.0 record: ^6.1.1
scroll_to_index: ^3.0.1 scroll_to_index: ^3.0.1
share_plus: ^11.1.0 share_plus: ^11.1.0
shared_preferences: ^2.2.0 # Pinned because https://github.com/flutter/flutter/issues/118401 shared_preferences: ^2.2.0 # Pinned because https://github.com/flutter/flutter/issues/118401

View file

@ -1,6 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
flutter pub add fcm_shared_isolate:0.1.0 flutter pub add fcm_shared_isolate
flutter pub get flutter pub get
if [[ "$OSTYPE" == "darwin"* ]]; then if [[ "$OSTYPE" == "darwin"* ]]; then

View file

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