merge conflicts

This commit is contained in:
ggurdin 2024-06-21 16:16:06 -04:00
commit 9385ce693a
22 changed files with 540 additions and 276 deletions

View file

@ -28,6 +28,7 @@ jobs:
run: ./scripts/prepare-web.sh
- name: Build Release Web
run: ./scripts/build-web.sh
- name: Upload files
uses: actions/upload-artifact@v3
with:
@ -64,19 +65,19 @@ jobs:
environment: staging
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_BASE_TOKEN: ${{ secrets.SENTRY_BASE_TOKEN }}
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
CI_COMMIT_SHA: ${{ github.sha }}
SENTRY_RELEASE: ${{ github.sha }}
SENTRY_PROJECT: ${{ vars.SENTRY_PROJECT }}
SENTRY_ORG: ${{ vars.SENTRY_ORG }}
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- run: cat .github/workflows/versions.env >> $GITHUB_ENV
- uses: subosito/flutter-action@v2
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
- name: Download web
uses: actions/download-artifact@v3
with:
name: web
path: build/web
- name: Install sentry CLI
run: |
curl -sL https://sentry.io/get-cli/ | bash
- name: Update sentry
run: ./scripts/upload-sentry.sh
run: flutter packages pub run sentry_dart_plugin

View file

@ -3996,8 +3996,14 @@
"conversationBotDiscussionZone_discussionKeywordsHintText": "Comma separated list of keywords to guide the discussion",
"conversationBotDiscussionZone_discussionTriggerScheduleEnabledLabel": "Send discussion prompt on a schedule",
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel": "Hours between discussion prompts",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel": "Send discussion prompt when user reacts ⏩ to bot message",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel": "Responds on ⏩ reaction",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel": "Reaction to send discussion prompt",
"addConversationBotDialogTitleInvite": "Confirm inviting conversation bot",
"addConversationBotButtonInvite": "Invite",
"addConversationBotDialogInviteConfirmation": "Invite",
"addConversationBotButtonTitleRemove": "Confirm removing conversation bot",
"addConversationBotButtonRemove": "Remove",
"addConversationBotDialogRemoveConfirmation": "Remove",
"studentAnalyticsNotAvailable": "Student data not currently available",
"roomDataMissing": "Some data may be missing from rooms in which you are not a member.",
"updatePhoneOS": "You may need to update your device's OS version.",

View file

@ -4592,7 +4592,7 @@
"conversationBotDiscussionZone_discussionKeywordsHintText": "Lista de palabras clave separadas por comas para orientar el debate",
"conversationBotDiscussionZone_discussionTriggerScheduleEnabledLabel": "Enviar mensajes de debate según un calendario",
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel": "Horas entre temas de debate",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel": "Enviar aviso de discusión cuando el usuario reacciona ⏩ al mensaje del bot.",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel": "Responde a la reacción de ⏩",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel": "Reacción al envío del aviso de debate",
"studentAnalyticsNotAvailable": "Datos de los estudiantes no disponibles actualmente",
"roomDataMissing": "Es posible que falten algunos datos de las salas de las que no es miembro.",

View file

@ -5,6 +5,7 @@ import 'package:fluffychat/pages/chat/seen_by_row.dart';
import 'package:fluffychat/pages/chat/typing_indicators.dart';
import 'package:fluffychat/pages/user_bottom_sheet/user_bottom_sheet.dart';
import 'package:fluffychat/pangea/extensions/pangea_room_extension/pangea_room_extension.dart';
import 'package:fluffychat/pangea/utils/instructions.dart';
import 'package:fluffychat/pangea/widgets/chat/locked_chat_message.dart';
import 'package:fluffychat/utils/account_config.dart';
import 'package:fluffychat/utils/adaptive_bottom_sheet.dart';
@ -40,6 +41,19 @@ class ChatEventList extends StatelessWidget {
final hasWallpaper =
controller.room.client.applicationAccountConfig.wallpaperUrl != null;
// #Pangea
// after the chat event list mounts, if the user hasn't yet seen this instruction
// card, attach it on top of the first shown message
WidgetsBinding.instance.addPostFrameCallback((_) {
controller.pangeaController.instructions.show(
context,
InstructionsEnum.clickMessage,
events[0].eventId,
true,
);
});
// Pangea#
return SelectionArea(
child: ListView.custom(
padding: EdgeInsets.only(

View file

@ -239,7 +239,9 @@ class _SpaceViewState extends State<SpaceView> {
room?.getLocalizedDisplayname(
MatrixLocals(L10n.of(context)!),
),
message: spaceChild?.topic ?? room?.topic,
// #Pangea
// message: spaceChild?.topic ?? room?.topic,
// Pangea#
actions: [
// #Pangea
// if (room == null)

View file

@ -133,7 +133,8 @@ extension AnalyticsClientExtension on Client {
// Checks for invites to any student analytics rooms
// Handles case of analytics rooms that can't be added to some space(s)
Future<void> _joinInvitedAnalyticsRooms() async {
for (final Room room in rooms) {
final List<Room> allRooms = List.from(rooms);
for (final Room room in allRooms) {
if (room.membership == Membership.invite && room.isAnalyticsRoom) {
try {
await room.join();

View file

@ -60,11 +60,15 @@ extension EventsRoomExtension on Room {
future: () async {
final List<Room> children = await getChildRooms();
for (final Room child in children) {
if (!child.isAnalyticsRoom) {
if (!child.isAnalyticsRoom && !child.isArchived) {
if (child.membership != Membership.join) {
child.join;
}
await child.archive();
if (child.isSpace) {
await child.archiveSubspace();
} else {
await child.archive();
}
}
}
await _archive();
@ -77,6 +81,23 @@ extension EventsRoomExtension on Room {
return success.error == null;
}
Future<void> _archiveSubspace() async {
final List<Room> children = await getChildRooms();
for (final Room child in children) {
if (!child.isAnalyticsRoom && !child.isArchived) {
if (child.membership != Membership.join) {
child.join;
}
if (child.isSpace) {
await child.archiveSubspace();
} else {
await child.archive();
}
}
}
await _archive();
}
Future<bool> _leaveSpace(BuildContext context, Client client) async {
final confirmed = await showOkCancelAlertDialog(
useRootNavigator: false,
@ -94,12 +115,18 @@ extension EventsRoomExtension on Room {
try {
final List<Room> children = await getChildRooms();
for (final Room child in children) {
if (!child.isSpace &&
child.membership == Membership.join &&
child.isUnread) {
await child.markUnread(false);
if (!child.isAnalyticsRoom && !child.isArchived) {
if (!child.isSpace &&
child.membership == Membership.join &&
child.isUnread) {
await child.markUnread(false);
}
if (child.isSpace) {
await child.leaveSubspace();
} else {
await child.leave();
}
}
await child.leave();
}
await leave();
} catch (err, stack) {
@ -116,6 +143,25 @@ extension EventsRoomExtension on Room {
return success.error == null;
}
Future<void> _leaveSubspace() async {
final List<Room> children = await getChildRooms();
for (final Room child in children) {
if (!child.isAnalyticsRoom && !child.isArchived) {
if (!child.isSpace &&
child.membership == Membership.join &&
child.isUnread) {
await child.markUnread(false);
}
if (child.isSpace) {
await child.leaveSubspace();
} else {
await child.leave();
}
}
}
await leave();
}
Future<Event?> _sendPangeaEvent({
required Map<String, dynamic> content,
required String parentEventId,

View file

@ -141,9 +141,13 @@ extension PangeaRoom on Room {
}) async =>
await _archiveSpace(context, client, onlyAdmin: onlyAdmin);
Future<void> archiveSubspace() async => await _archiveSubspace();
Future<bool> leaveSpace(BuildContext context, Client client) async =>
await _leaveSpace(context, client);
Future<void> leaveSubspace() async => await _leaveSubspace();
Future<Event?> sendPangeaEvent({
required Map<String, dynamic> content,
required String parentEventId,

View file

@ -32,7 +32,7 @@ class BotOptionsModel {
this.discussionKeywords,
this.discussionTriggerScheduleEnabled,
this.discussionTriggerScheduleHourInterval,
this.discussionTriggerReactionEnabled,
this.discussionTriggerReactionEnabled = true,
this.discussionTriggerReactionKey,
});

View file

@ -247,22 +247,27 @@ class ChoreoRecord {
choreoSteps.isNotEmpty ? choreoSteps.last.text : "";
}
/// new step are saved
/// A new ChoreoRecordStep is saved in the following cases:
/// 1) before every system-provided text is accepted, if final text is different
/// from last step
/// 2) on the acceptance of system-provided text
/// 3) on message send, if final text is different from last step
/// 4) on the acceptance of an it step
/// 5) on the start of it
///
/// user edit
/// "hey ther"
/// Example 1:
/// the user types "hey ther"
/// IGC suggests "there"
/// user accepts "there" correction
/// "hey there"
/// step made for user edits and step made for system suggestion
/// user goes through IT, chooses "hola"
/// "hola"
/// step saved
/// adds "amigo"
/// step saved
/// text is now "hey there"
/// A step is made for the original input 'hey there' and a step is made for system suggestion
///
/// Example 2:
/// user write "hi friend"
/// a step is made for the original input 'hi friend'
/// the user selects IT and a step is made
/// the user chooses "hola" and a step is saved
/// adds "amigo" and a step saved
class ChoreoRecordStep {
/// text after changes have been made
String text;

View file

@ -1,3 +1,4 @@
import 'package:fluffychat/config/app_config.dart';
import 'package:fluffychat/pangea/pages/p_user_age/p_user_age.dart';
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/l10n.dart';
@ -18,11 +19,15 @@ class PUserAgeView extends StatelessWidget {
children: [
Container(
margin: const EdgeInsets.only(top: 10),
padding: const EdgeInsets.all(12),
padding: const EdgeInsets.all(15),
child: Text(
L10n.of(context)!.yourBirthdayPlease,
textAlign: TextAlign.justify,
style: const TextStyle(color: Colors.white),
style: const TextStyle(
color: Colors.black,
fontSize: 14,
fontWeight: FontWeight.bold,
),
),
),
const SizedBox(
@ -41,23 +46,25 @@ class PUserAgeView extends StatelessWidget {
ListTile(
title: Text(
L10n.of(context)!.certifyAge(13),
style: const TextStyle(color: Colors.white, fontSize: 14),
style: const TextStyle(color: Colors.black, fontSize: 14),
),
leading: Radio<int>(
value: 13,
groupValue: controller.selectedAge,
onChanged: controller.setSelectedAge,
activeColor: AppConfig.primaryColor,
),
),
ListTile(
title: Text(
L10n.of(context)!.certifyAge(18),
style: const TextStyle(color: Colors.white, fontSize: 14),
style: const TextStyle(color: Colors.black, fontSize: 14),
),
leading: Radio<int>(
value: 18,
groupValue: controller.selectedAge,
onChanged: controller.setSelectedAge,
activeColor: AppConfig.primaryColor,
),
),
],

View file

@ -30,6 +30,9 @@ class ConversationBotDiscussionKeywordsInput extends StatelessWidget {
.conversationBotDiscussionZone_discussionKeywordsLabel,
),
content: TextField(
minLines: 1,
maxLines: 10,
maxLength: 1000,
controller: textFieldController,
onChanged: (value) {
discussionKeywords = value;

View file

@ -30,6 +30,9 @@ class ConversationBotDiscussionTopicInput extends StatelessWidget {
.conversationBotDiscussionZone_discussionTopicLabel,
),
content: TextField(
minLines: 1,
maxLines: 10,
maxLength: 1000,
controller: textFieldController,
onChanged: (value) {
discussionTopic = value;

View file

@ -17,14 +17,6 @@ class ConversationBotDiscussionZone extends StatelessWidget {
@override
Widget build(BuildContext context) {
final String discussionTopic = initialBotOptions.discussionTopic ?? "";
final String discussionKeywords =
initialBotOptions.discussionKeywords ?? "";
// int discussionTriggerScheduleHourInterval =
// initialBotOptions.discussionTriggerScheduleHourInterval ?? 24;
// String discussionTriggerReactionKey =
// initialBotOptions.discussionTriggerReactionKey ?? "";
// List<String> reactionKeyOptions = [""];
return Column(
children: [
const SizedBox(height: 12),
@ -84,56 +76,12 @@ class ConversationBotDiscussionZone extends StatelessWidget {
),
),
const SizedBox(height: 12),
// CheckboxListTile(
// title: Text(
// L10n.of(context)!
// .conversationBotDiscussionZone_discussionTriggerScheduleEnabledLabel,
// ),
// value: initialBotOptions.discussionTriggerScheduleEnabled ?? false,
// onChanged: (value) {
// initialBotOptions.discussionTriggerScheduleEnabled = value ?? false;
// onChanged?.call(initialBotOptions);
// },
// ),
// if (initialBotOptions.discussionTriggerScheduleEnabled == true)
// Padding(
// padding: const EdgeInsets.all(8),
// child: TextField(
// keyboardType: TextInputType.number,
// controller: TextEditingController(
// text: discussionTriggerScheduleHourInterval.toString(),
// ),
// onChanged: (value) {
// discussionTriggerScheduleHourInterval =
// int.tryParse(value) ?? 0;
// },
// decoration: InputDecoration(
// labelText: L10n.of(context)!
// .conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel,
// floatingLabelBehavior: FloatingLabelBehavior.auto,
// suffixIcon: IconButton(
// icon: const Icon(Icons.check),
// onPressed: () {
// if (discussionTriggerScheduleHourInterval !=
// initialBotOptions
// .discussionTriggerScheduleHourInterval) {
// initialBotOptions.discussionTriggerScheduleHourInterval =
// discussionTriggerScheduleHourInterval;
// onChanged?.call(
// initialBotOptions,
// );
// }
// },
// ),
// ),
// ),
// ),
// const SizedBox(height: 12),
CheckboxListTile(
title: Text(
L10n.of(context)!
.conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel,
),
enabled: false,
value: initialBotOptions.discussionTriggerReactionEnabled ?? false,
onChanged: (value) {
initialBotOptions.discussionTriggerReactionEnabled = value ?? false;
@ -141,83 +89,8 @@ class ConversationBotDiscussionZone extends StatelessWidget {
""; // hard code this for now
onChanged.call(initialBotOptions);
},
// make this input disabled always
),
// if (initialBotOptions.discussionTriggerReactionEnabled == true)
// Padding(
// padding: const EdgeInsets.all(8),
// child: Column(
// children: [
// Text(
// L10n.of(context)!
// .conversationBotDiscussionZone_discussionTriggerReactionKeyLabel,
// style: TextStyle(
// color: Theme.of(context).colorScheme.secondary,
// fontWeight: FontWeight.bold,
// ),
// textAlign: TextAlign.left,
// ),
// Container(
// decoration: BoxDecoration(
// border: Border.all(
// color: Theme.of(context).colorScheme.secondary,
// width: 0.5,
// ),
// borderRadius: const BorderRadius.all(Radius.circular(10)),
// ),
// child: DropdownButton(
// // Initial Value
// hint: Padding(
// padding: const EdgeInsets.only(left: 15),
// child: Text(
// reactionKeyOptions[0],
// style: const TextStyle().copyWith(
// color: Theme.of(context).textTheme.bodyLarge!.color,
// fontSize: 14,
// ),
// overflow: TextOverflow.clip,
// textAlign: TextAlign.center,
// ),
// ),
// isExpanded: true,
// underline: Container(),
// // Down Arrow Icon
// icon: const Icon(Icons.keyboard_arrow_down),
// // Array list of items
// items: [
// for (final entry in reactionKeyOptions)
// DropdownMenuItem(
// value: entry,
// child: Padding(
// padding: const EdgeInsets.only(left: 15),
// child: Text(
// entry,
// style: const TextStyle().copyWith(
// color: Theme.of(context)
// .textTheme
// .bodyLarge!
// .color,
// fontSize: 14,
// ),
// overflow: TextOverflow.clip,
// textAlign: TextAlign.center,
// ),
// ),
// ),
// ],
// onChanged: (String? value) {
// if (value !=
// initialBotOptions.discussionTriggerReactionKey) {
// initialBotOptions.discussionTriggerReactionKey = value;
// onChanged?.call(
// initialBotOptions,
// );
// }
// },
// ),
// ),
// ],
// ),
// ),
const SizedBox(height: 12),
],
);

View file

@ -1,6 +1,5 @@
import 'dart:developer';
import 'package:fluffychat/config/app_config.dart';
import 'package:fluffychat/pangea/models/bot_options_model.dart';
import 'package:fluffychat/pangea/utils/bot_name.dart';
import 'package:fluffychat/pangea/widgets/common/bot_face_svg.dart';
@ -121,7 +120,7 @@ class ConversationBotSettingsState extends State<ConversationBotSettings> {
children: [
Padding(
padding: const EdgeInsets.only(left: 16),
child: SwitchListTile.adaptive(
child: ListTile(
title: Text(
L10n.of(context)!.addConversationBot,
style: TextStyle(
@ -130,7 +129,7 @@ class ConversationBotSettingsState extends State<ConversationBotSettings> {
),
),
subtitle: Text(L10n.of(context)!.addConversationBotDesc),
secondary: CircleAvatar(
leading: CircleAvatar(
backgroundColor:
Theme.of(context).scaffoldBackgroundColor,
foregroundColor:
@ -140,85 +139,68 @@ class ConversationBotSettingsState extends State<ConversationBotSettings> {
expression: BotExpression.right,
),
),
activeColor: AppConfig.activeToggleColor,
value: addBot,
onChanged: (bool add) {
setState(() => addBot = add);
add
? widget.room?.invite(BotName.byEnvironment)
: widget.room?.kick(BotName.byEnvironment);
},
trailing: ElevatedButton(
onPressed: () async {
final bool? confirm = await showDialog<bool>(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: addBot
? Text(
L10n.of(context)!
.addConversationBotButtonTitleRemove,
)
: Text(
L10n.of(context)!
.addConversationBotDialogTitleInvite,
),
actions: <Widget>[
TextButton(
onPressed: () {
Navigator.of(context).pop(false);
},
child: Text(L10n.of(context)!.cancel),
),
TextButton(
onPressed: () {
Navigator.of(context).pop(!addBot);
},
child: addBot
? Text(
L10n.of(context)!
.addConversationBotDialogRemoveConfirmation,
)
: Text(
L10n.of(context)!
.addConversationBotDialogInviteConfirmation,
),
),
],
);
},
);
if (confirm == true) {
setState(() => addBot = true);
widget.room?.invite(BotName.byEnvironment);
} else {
setState(() => addBot = false);
widget.room?.kick(BotName.byEnvironment);
}
},
child: addBot
? Text(
L10n.of(context)!
.addConversationBotButtonRemove,
)
: Text(
L10n.of(context)!
.addConversationBotButtonInvite,
),
),
),
),
if (addBot) ...[
// Padding(
// padding: const EdgeInsets.only(left: 16),
// child: ListTile(
// onTap: () async {
// final topic = await showTextInputDialog(
// context: context,
// textFields: [
// DialogTextField(
// initialText: botOptions.topic.isEmpty
// ? ""
// : botOptions.topic,
// hintText:
// L10n.of(context)!.enterAConversationTopic,
// ),
// ],
// title: L10n.of(context)!.conversationTopic,
// );
// if (topic == null) return;
// updateBotOption(() {
// botOptions.topic = topic.single;
// });
// },
// leading: CircleAvatar(
// backgroundColor:
// Theme.of(context).scaffoldBackgroundColor,
// foregroundColor:
// Theme.of(context).textTheme.bodyLarge!.color,
// child: const Icon(Icons.topic_outlined),
// ),
// subtitle: Text(
// botOptions.topic.isEmpty
// ? L10n.of(context)!.enterAConversationTopic
// : botOptions.topic,
// ),
// title: Text(
// L10n.of(context)!.conversationTopic,
// style: TextStyle(
// color: Theme.of(context).colorScheme.secondary,
// fontWeight: FontWeight.bold,
// ),
// ),
// ),
// ),
// Padding(
// padding: const EdgeInsets.only(left: 16),
// child: SwitchListTile.adaptive(
// title: Text(
// L10n.of(context)!.enableModeration,
// style: TextStyle(
// color: Theme.of(context).colorScheme.secondary,
// fontWeight: FontWeight.bold,
// ),
// ),
// subtitle: Text(L10n.of(context)!.enableModerationDesc),
// secondary: CircleAvatar(
// backgroundColor:
// Theme.of(context).scaffoldBackgroundColor,
// foregroundColor:
// Theme.of(context).textTheme.bodyLarge!.color,
// child: const Icon(Icons.shield_outlined),
// ),
// activeColor: AppConfig.activeToggleColor,
// value: botOptions.safetyModeration,
// onChanged: (bool newValue) => updateBotOption(() {
// botOptions.safetyModeration = newValue;
// }),
// ),
// ),
Padding(
padding: const EdgeInsets.fromLTRB(32, 16, 0, 0),
child: Text(

View file

@ -121,13 +121,6 @@ class PangeaRichTextState extends State<PangeaRichText> {
InstructionsEnum.blurMeansTranslate,
widget.pangeaMessageEvent.eventId,
);
} else {
pangeaController.instructions.show(
context,
InstructionsEnum.clickMessage,
widget.pangeaMessageEvent.eventId,
true,
);
}
//TODO - take out of build function of every message

View file

@ -25,7 +25,7 @@ class PaywallCard extends StatelessWidget {
botExpression: BotExpression.addled,
),
Padding(
padding: const EdgeInsets.all(20),
padding: const EdgeInsets.all(17),
child: Column(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
@ -54,7 +54,7 @@ class PaywallCard extends StatelessWidget {
MatrixState.pAnyState.closeOverlay();
},
style: ButtonStyle(
backgroundColor: MaterialStateProperty.all<Color>(
backgroundColor: WidgetStateProperty.all<Color>(
(AppConfig.primaryColor).withOpacity(0.1),
),
),
@ -70,7 +70,7 @@ class PaywallCard extends StatelessWidget {
width: double.infinity,
child: TextButton(
style: ButtonStyle(
backgroundColor: MaterialStateProperty.all<Color>(
backgroundColor: WidgetStateProperty.all<Color>(
AppConfig.primaryColor.withOpacity(0.1),
),
),

View file

@ -819,6 +819,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -2305,6 +2311,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -3792,6 +3804,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -5283,6 +5301,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -6177,6 +6201,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -7152,6 +7182,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -8014,6 +8050,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -9451,6 +9493,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -10592,6 +10640,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -10636,6 +10690,12 @@
"es": [
"searchIn",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"suggestToSpace",
"suggestToSpaceDesc"
],
@ -11460,6 +11520,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -12318,6 +12384,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -13313,6 +13385,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -14274,6 +14352,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -15591,6 +15675,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -16587,6 +16677,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -17712,6 +17808,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -18574,6 +18676,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -19814,6 +19922,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -21297,6 +21411,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -22235,6 +22355,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -23111,6 +23237,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -24585,6 +24717,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -25452,6 +25590,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -26698,6 +26842,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -27613,6 +27763,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -28639,6 +28795,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -29984,6 +30146,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -30846,6 +31014,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -31870,6 +32044,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -32738,6 +32918,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -33925,6 +34111,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -34880,6 +35072,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -35843,6 +36041,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -37311,6 +37515,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -38178,6 +38388,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -39367,6 +39583,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -40365,6 +40587,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -41231,6 +41459,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -42485,6 +42719,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -43873,6 +44113,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -45033,6 +45279,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -45929,6 +46181,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -47416,6 +47674,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -48858,6 +49122,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -49721,6 +49991,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -50612,6 +50888,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -51955,6 +52237,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -52817,6 +53105,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",
@ -53951,6 +54245,12 @@
"conversationBotDiscussionZone_discussionTriggerScheduleHourIntervalLabel",
"conversationBotDiscussionZone_discussionTriggerReactionEnabledLabel",
"conversationBotDiscussionZone_discussionTriggerReactionKeyLabel",
"addConversationBotDialogTitleInvite",
"addConversationBotButtonInvite",
"addConversationBotDialogInviteConfirmation",
"addConversationBotButtonTitleRemove",
"addConversationBotButtonRemove",
"addConversationBotDialogRemoveConfirmation",
"studentAnalyticsNotAvailable",
"roomDataMissing",
"updatePhoneOS",

View file

@ -975,6 +975,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.2"
globbing:
dependency: transitive
description:
name: globbing
sha256: "4f89cfaf6fa74c9c1740a96259da06bd45411ede56744e28017cc534a12b6e2d"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
go_router:
dependency: "direct main"
description:
@ -1167,6 +1175,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.3.8+1"
injector:
dependency: transitive
description:
name: injector
sha256: ed389bed5b48a699d5b9561c985023d0d5cc88dd5ff2237aadcce5a5ab433e4e
url: "https://pub.dev"
source: hosted
version: "3.0.0"
integration_test:
dependency: "direct dev"
description: flutter
@ -1749,6 +1765,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.0"
properties:
dependency: transitive
description:
name: properties
sha256: "333f427dd4ed07bdbe8c75b9ff864a1e70b5d7a8426a2e8bdd457b65ae5ac598"
url: "https://pub.dev"
source: hosted
version: "2.1.1"
provider:
dependency: "direct main"
description:
@ -1949,6 +1973,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "8.2.0"
sentry_dart_plugin:
dependency: "direct dev"
description:
name: sentry_dart_plugin
sha256: e81fa3e0ffabd04fdcfbfecd6468d4a342f02ab33edca09708c61bcd2be42b7d
url: "https://pub.dev"
source: hosted
version: "1.7.1"
sentry_flutter:
dependency: "direct main"
description:
@ -2234,6 +2266,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.1.0+1"
system_info2:
dependency: transitive
description:
name: system_info2
sha256: "65206bbef475217008b5827374767550a5420ce70a04d2d7e94d1d2253f3efc9"
url: "https://pub.dev"
source: hosted
version: "4.0.0"
tar:
dependency: transitive
description:

View file

@ -132,6 +132,7 @@ dev_dependencies:
sdk: flutter
license_checker: ^1.6.0
msix: ^3.6.2
sentry_dart_plugin: ^1.0.0
translations_cleaner: ^0.0.5
flutter_native_splash:

View file

@ -1,23 +0,0 @@
#!/bin/sh -ve
# Build a release version of the app for a platform and upload symbols
export OUTPUT_FOLDER_WEB=./build/web/
export SENTRY_RELEASE=$CI_COMMIT_SHA
export SENTRY_PROJECT="${SENTRY_PROJECT:-client}"
export SENTRY_ORG="${SENTRY_ORG:-pangea-chat}"
echo "[run] Uploading sourcemaps for $SENTRY_RELEASE"
echo "[run] $SENTRY_PROJECT @ $SENTRY_ORG / $OUTPUT_FOLDER_WEB"
sentry-cli releases new $SENTRY_RELEASE --org $SENTRY_ORG
sentry-cli releases set-commits $CI_COMMIT_SHA --auto
sentry-cli releases files $SENTRY_RELEASE upload-sourcemaps . \
--ext dart \
--rewrite
(cd $OUTPUT_FOLDER_WEB
sentry-cli releases files $SENTRY_RELEASE upload-sourcemaps . \
--ext map \
--ext js \
--rewrite)
sentry-cli releases finalize $SENTRY_RELEASE

6
sentry.properties Normal file
View file

@ -0,0 +1,6 @@
upload_debug_symbols=true
upload_source_maps=true
upload_sources=true
wait_for_processing=false
log_level=info
commits=auto