Merge branch 'main' into message-toolbar-improvements
This commit is contained in:
commit
410fb80b35
5 changed files with 55 additions and 41 deletions
|
|
@ -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…
Add table
Reference in a new issue