steal some changes from fluffychat

This commit is contained in:
OfficialDakari 2025-11-06 11:36:59 +05:00
parent 165d222726
commit fc218e6d65
5 changed files with 44 additions and 22 deletions

View File

@ -254,7 +254,7 @@ class PollWidgetState extends State<PollWidget> {
final event = widget.event; final event = widget.event;
final content = final content =
event.content[PollEvents.PollStart] as Map<String, dynamic?>; event.content[PollEvents.PollStart] as Map<String, dynamic?>;
final question = content?['question']?['m.text'] as String? ?? 'Poll'; final question = content?['question']?['m.text'] as String? ?? content?['question']?['org.matrix.msc1767.text'] as String? ?? 'Poll';
final List<dynamic> answers = content?['answers'] ?? []; final List<dynamic> answers = content?['answers'] ?? [];
final maxSelections = content?['max_selections'] as int? ?? 1; final maxSelections = content?['max_selections'] as int? ?? 1;
final kind = content?['kind'] as String?; final kind = content?['kind'] as String?;

View File

@ -34,7 +34,6 @@ class RecordingViewModelState extends State<RecordingViewModel> {
Timer? _recorderSubscription; Timer? _recorderSubscription;
Duration duration = Duration.zero; Duration duration = Duration.zero;
bool error = false;
bool isSending = false; bool isSending = false;
bool get isRecording => _audioRecorder != null; bool get isRecording => _audioRecorder != null;
@ -88,7 +87,11 @@ class RecordingViewModelState extends State<RecordingViewModel> {
final result = await audioRecorder.hasPermission(); final result = await audioRecorder.hasPermission();
if (result != true) { if (result != true) {
setState(() => error = true); showOkAlertDialog(
context: context,
title: L10n.of(context).oopsSomethingWentWrong,
message: L10n.of(context).noPermission,
);
return; return;
} }
await WakelockPlus.enable(); await WakelockPlus.enable();
@ -107,9 +110,14 @@ class RecordingViewModelState extends State<RecordingViewModel> {
); );
setState(() => duration = Duration.zero); setState(() => duration = Duration.zero);
_subscribe(); _subscribe();
} catch (_) { } catch (e, s) {
setState(() => error = true); Logs().w('Unable to start voice message recording', e, s);
rethrow; showOkAlertDialog(
context: context,
title: L10n.of(context).oopsSomethingWentWrong,
message: e.toString(),
);
setState(_reset);
} }
} }
@ -139,7 +147,6 @@ class RecordingViewModelState extends State<RecordingViewModel> {
_audioRecorder?.stop(); _audioRecorder?.stop();
_audioRecorder = null; _audioRecorder = null;
isSending = false; isSending = false;
error = false;
fileName = null; fileName = null;
duration = Duration.zero; duration = Duration.zero;
amplitudeTimeline.clear(); amplitudeTimeline.clear();

View File

@ -7,6 +7,8 @@ class MatrixLocals extends MatrixLocalizations {
MatrixLocals(this.l10n); MatrixLocals(this.l10n);
@override @override
String voiceMessage(String senderName, Duration? duration) { String voiceMessage(String senderName, Duration? duration) {
return l10n.voiceMessage; return l10n.voiceMessage;
@ -358,4 +360,17 @@ class MatrixLocals extends MatrixLocalizations {
@override @override
String get cancelledSend => l10n.sendCanceled; String get cancelledSend => l10n.sendCanceled;
@override
// TODO: implement pollHasBeenEnded
String get pollHasBeenEnded => throw UnimplementedError();
@override
String startedAPoll(String senderName) {
// TODO: implement startedAPoll
throw UnimplementedError();
}
// This is currently not used, just to keep up with matrix-dart-sdk upstream.
// I will reimplement polls to match fluffychat's, I don't know when...
} }

View File

@ -253,10 +253,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: cross_file name: cross_file
sha256: "7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670" sha256: "942a4791cd385a68ccb3b32c71c427aba508a1bb949b86dff2adbe4049f16239"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.3.4+2" version: "0.3.5"
crypto: crypto:
dependency: transitive dependency: transitive
description: description:
@ -730,10 +730,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: flutter_vodozemac name: flutter_vodozemac
sha256: "54cd3790b6dfdc1afce928f8c46f7eeea9e4f8326f077400894935926f202057" sha256: "16d4b44dd338689441fe42a80d0184e5c864e9563823de9e7e6371620d2c0590"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.3.0" version: "0.4.1"
flutter_web_auth_2: flutter_web_auth_2:
dependency: "direct main" dependency: "direct main"
description: description:
@ -1203,10 +1203,10 @@ packages:
description: description:
path: "." path: "."
ref: main ref: main
resolved-ref: f678376e3a4825a6e1a00d89585d6bae0843950c resolved-ref: "8272294736361eae8f3c81d220aaffcf30f38fb1"
url: "https://git.extera.xyz/OfficialDakari/matrix-dart-sdk.git" url: "https://git.extera.xyz/OfficialDakari/matrix-dart-sdk.git"
source: git source: git
version: "3.0.1" version: "3.0.2"
meta: meta:
dependency: transitive dependency: transitive
description: description:
@ -1563,10 +1563,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: qr_code_scanner_plus name: qr_code_scanner_plus
sha256: a0f1ac8e13299b3db2646635f252fe2ec67222b848b24ed34d11052faf080bfa sha256: b764e5004251c58d9dee0c295e6006e05bd8d249e78ac3383abdb5afe0a996cd
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.12" version: "2.0.14"
qr_image: qr_image:
dependency: "direct main" dependency: "direct main"
description: description:
@ -2248,10 +2248,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: vodozemac name: vodozemac
sha256: "95cac62ffab94db99e134c8f9aac198f8131a4eed0bed76a6cfc9c72add229b9" sha256: "39144e20740807731871c9248d811ed5a037b21d0aa9ffcfa630954de74139d9"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.3.0" version: "0.4.0"
wakelock_plus: wakelock_plus:
dependency: "direct main" dependency: "direct main"
description: description:

View File

@ -16,7 +16,7 @@ dependencies:
blurhash_dart: ^1.2.1 blurhash_dart: ^1.2.1
chewie: ^1.11.0 chewie: ^1.11.0
collection: ^1.18.0 collection: ^1.18.0
cross_file: ^0.3.4+2 cross_file: ^0.3.5
cupertino_icons: any cupertino_icons: any
desktop_drop: ^0.4.4 desktop_drop: ^0.4.4
desktop_notifications: ^0.6.3 desktop_notifications: ^0.6.3
@ -47,7 +47,7 @@ dependencies:
git: git:
url: https://github.com/famedly/flutter_typeahead.git url: https://github.com/famedly/flutter_typeahead.git
ref: main ref: main
flutter_vodozemac: ^0.3.0 flutter_vodozemac: ^0.4.1
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: ^0.12.9 flutter_webrtc: ^0.12.9
geolocator: ^13.0.1 geolocator: ^13.0.1
@ -79,10 +79,10 @@ dependencies:
pretty_qr_code: ^3.2.1 pretty_qr_code: ^3.2.1
provider: ^6.0.2 provider: ^6.0.2
punycode: ^1.0.0 punycode: ^1.0.0
qr_code_scanner_plus: ^2.0.10+1 qr_code_scanner_plus: ^2.0.14
qr_image: ^1.0.0 qr_image: ^1.0.0
receive_sharing_intent: ^1.8.1 receive_sharing_intent: ^1.8.1
record: ^6.1.1 record: ^6.1.2
scroll_to_index: ^3.0.1 scroll_to_index: ^3.0.1
share_plus: ^10.0.2 share_plus: ^10.0.2
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
@ -97,7 +97,7 @@ dependencies:
url_launcher: ^6.2.5 url_launcher: ^6.2.5
video_compress: ^3.1.4 video_compress: ^3.1.4
video_player: ^2.9.2 video_player: ^2.9.2
vodozemac: ^0.3.0 vodozemac: ^0.4.0
wakelock_plus: ^1.2.2 wakelock_plus: ^1.2.2
webrtc_interface: ^1.0.13 webrtc_interface: ^1.0.13
dio: ^5.9.0 dio: ^5.9.0