Merge branch 'main' into message-toolbar-improvements

pull/1384/head
ggurdin 1 year ago committed by GitHub
commit 410fb80b35
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -4041,14 +4041,38 @@
"tooltipInstructionsMobileBody": "Press and hold items to view tooltips.",
"tooltipInstructionsBrowserBody": "Hover over items to view tooltips.",
"addSpaceToSpaceDescription": "Select a space to add as a parent",
"roomCapacity": "Room Capacity",
"roomCapacity": "{roomType} Capacity",
"@roomCapacity": {
"type": "text",
"placeholders": {
"roomType": {}
}
},
"roomFull": "This room is already at capacity.",
"topicNotSet": "The topic has not been set.",
"capacityNotSet": "This room has no capacity limit.",
"roomCapacityHasBeenChanged": "Room capacity changed",
"roomCapacityHasBeenChanged": "{roomType} capacity changed",
"@roomCapacityHasBeenChanged": {
"type": "text",
"placeholders": {
"roomType": {}
}
},
"roomExceedsCapacity": "Room exceeds capacity. Consider removing students from the room, or raising the capacity.",
"capacitySetTooLow": "Room capacity cannot be set below the current number of non-admins.",
"roomCapacityExplanation": "Room capacity limits the number of non-admins allowed in a room.",
"capacitySetTooLow": "{roomType} capacity cannot be set below the current number of non-admins.",
"@capacitySetTooLow": {
"type": "text",
"placeholders": {
"roomType": {}
}
},
"roomCapacityExplanation": "{roomType} capacity limits the number of non-admins allowed in a room.",
"@roomCapacityExplanation": {
"type": "text",
"placeholders": {
"roomType": {}
}
},
"enterNumber": "Please enter a whole number value.",
"buildTranslation": "Build your translation from the choices above",
"noDatabaseEncryption": "Database encryption is not supported on this platform",
@ -4129,5 +4153,6 @@
"error520Title": "Please try again.",
"error520Desc": "Sorry, we could not understand your message...",
"translationChoicesBody": "Click and hold an option for a hint.",
"sendCanceled": "Sending canceled"
"sendCanceled": "Sending canceled",
"space": "Space"
}

@ -115,6 +115,7 @@ class NewSpaceView extends StatelessWidget {
RoomCapacityButton(
key: controller.addCapacityKey,
spaceMode: true,
),
// commenting out language settings in spaces for now
// LanguageSettings(

@ -477,28 +477,10 @@ class PangeaMessageEvent {
return representationByLanguage(langCode)?.text ?? body;
}
bool get isNew =>
DateTime.now().difference(originServerTs.toLocal()).inSeconds < 8;
Future<RepresentationEvent?> _repLocal(String langCode) async {
int tries = 0;
RepresentationEvent? rep = representationByLanguage(langCode);
while ((isNew || eventId.contains("web")) && tries < 20) {
if (rep != null) return rep;
await Future.delayed(const Duration(milliseconds: 500));
rep = representationByLanguage(langCode);
tries += 1;
}
return rep;
}
Future<PangeaRepresentation?> representationByLanguageGlobal({
required String langCode,
}) async {
// try {
final RepresentationEvent? repLocal = await _repLocal(langCode);
final RepresentationEvent? repLocal = representationByLanguage(langCode);
if (repLocal != null ||
langCode == LanguageKeys.unknownLanguage ||
@ -519,11 +501,7 @@ class PangeaMessageEvent {
target: langCode,
room: _latestEdit.room,
);
if (pangeaRep == null ||
await _latestEdit.room.getEventById(_latestEdit.eventId) == null) {
return null;
}
if (pangeaRep == null) return null;
MatrixState.pangeaController.messageData
.sendRepresentationMatrixEvent(

@ -9,10 +9,13 @@ import 'package:matrix/matrix.dart';
class RoomCapacityButton extends StatefulWidget {
final Room? room;
final ChatDetailsController? controller;
final bool spaceMode;
const RoomCapacityButton({
super.key,
this.room,
this.controller,
this.spaceMode = false,
});
@override
@ -66,6 +69,15 @@ class RoomCapacityButtonState extends State<RoomCapacityButton> {
}
}
String get roomType {
final String chat = L10n.of(context)!.chat;
final String space = L10n.of(context)!.space;
if (widget.room != null) {
return widget.room!.isSpace ? space : chat;
}
return widget.spaceMode ? space : chat;
}
@override
Widget build(BuildContext context) {
final iconColor = Theme.of(context).textTheme.bodyLarge!.color;
@ -86,7 +98,7 @@ class RoomCapacityButtonState extends State<RoomCapacityButton> {
: '$capacity',
),
title: Text(
L10n.of(context)!.roomCapacity,
L10n.of(context)!.roomCapacity(roomType),
style: TextStyle(
color: Theme.of(context).colorScheme.secondary,
fontWeight: FontWeight.bold,
@ -104,8 +116,8 @@ class RoomCapacityButtonState extends State<RoomCapacityButton> {
Future<void> setRoomCapacity() async {
final input = await showTextInputDialog(
context: context,
title: L10n.of(context)!.roomCapacity,
message: L10n.of(context)!.roomCapacityExplanation,
title: L10n.of(context)!.roomCapacity(roomType),
message: L10n.of(context)!.roomCapacityExplanation(roomType),
okLabel: L10n.of(context)!.ok,
cancelLabel: L10n.of(context)!.cancel,
textFields: [
@ -121,7 +133,7 @@ class RoomCapacityButtonState extends State<RoomCapacityButton> {
return L10n.of(context)!.enterNumber;
}
if (nonAdmins != null && int.parse(value) < int.parse(nonAdmins!)) {
return L10n.of(context)!.capacitySetTooLow;
return L10n.of(context)!.capacitySetTooLow(roomType);
}
return null;
},
@ -147,7 +159,7 @@ class RoomCapacityButtonState extends State<RoomCapacityButton> {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text(
L10n.of(context)!.roomCapacityHasBeenChanged,
L10n.of(context)!.roomCapacityHasBeenChanged(roomType),
),
),
);

@ -33,7 +33,7 @@ class MessageTranslationCardState extends State<MessageTranslationCard> {
String? oldSelectedText;
bool _fetchingRepresentation = false;
Future<void> fetchRepresentation(BuildContext context) async {
Future<void> fetchRepresentation() async {
if (l1Code == null) return;
repEvent = widget.messageEvent
@ -102,15 +102,13 @@ class MessageTranslationCardState extends State<MessageTranslationCard> {
@override
void initState() {
super.initState();
if (mounted) {
setState(() {});
}
loadTranslation(() async {
final List<Future> futures = [];
futures.add(fetchRepresentation());
if (widget.selection.selectedText != null) {
await translateSelection();
futures.add(translateSelection());
}
await fetchRepresentation(context);
await Future.wait(futures);
});
}

Loading…
Cancel
Save