Merge pull request #735 from pangeachat/locked-toolbar-bug
Locked toolbar bug
This commit is contained in:
commit
0c0d04bde9
3 changed files with 30 additions and 39 deletions
|
|
@ -118,6 +118,11 @@ class PracticeGenerationController {
|
|||
requestModel: req,
|
||||
);
|
||||
|
||||
if (res.finished) {
|
||||
debugPrint('Activity generation finished');
|
||||
return null;
|
||||
}
|
||||
|
||||
// if the server points to an existing event, return that event
|
||||
if (res.existingActivityEventId != null) {
|
||||
final Event? existingEvent =
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ import 'package:flutter/material.dart';
|
|||
|
||||
const double minCardHeight = 70;
|
||||
|
||||
class MessageToolbar extends StatefulWidget {
|
||||
class MessageToolbar extends StatelessWidget {
|
||||
final PangeaMessageEvent pangeaMessageEvent;
|
||||
final MessageOverlayController overLayController;
|
||||
|
||||
|
|
@ -29,55 +29,45 @@ class MessageToolbar extends StatefulWidget {
|
|||
required this.overLayController,
|
||||
});
|
||||
|
||||
@override
|
||||
MessageToolbarState createState() => MessageToolbarState();
|
||||
}
|
||||
|
||||
class MessageToolbarState extends State<MessageToolbar> {
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
}
|
||||
|
||||
Widget get toolbarContent {
|
||||
final bool subscribed =
|
||||
MatrixState.pangeaController.subscriptionController.isSubscribed;
|
||||
|
||||
if (!subscribed) {
|
||||
return MessageUnsubscribedCard(
|
||||
controller: widget.overLayController,
|
||||
controller: overLayController,
|
||||
);
|
||||
}
|
||||
|
||||
switch (widget.overLayController.toolbarMode) {
|
||||
switch (overLayController.toolbarMode) {
|
||||
case MessageMode.translation:
|
||||
return MessageTranslationCard(
|
||||
messageEvent: widget.pangeaMessageEvent,
|
||||
selection: widget.overLayController.selectedSpan,
|
||||
messageEvent: pangeaMessageEvent,
|
||||
selection: overLayController.selectedSpan,
|
||||
);
|
||||
case MessageMode.textToSpeech:
|
||||
return MessageAudioCard(
|
||||
messageEvent: widget.pangeaMessageEvent,
|
||||
overlayController: widget.overLayController,
|
||||
messageEvent: pangeaMessageEvent,
|
||||
overlayController: overLayController,
|
||||
);
|
||||
case MessageMode.speechToText:
|
||||
return MessageSpeechToTextCard(
|
||||
messageEvent: widget.pangeaMessageEvent,
|
||||
messageEvent: pangeaMessageEvent,
|
||||
);
|
||||
case MessageMode.definition:
|
||||
if (!widget.overLayController.isSelection) {
|
||||
if (!overLayController.isSelection) {
|
||||
return const SelectToDefine();
|
||||
} else {
|
||||
try {
|
||||
final selectedText = widget.overLayController.targetText;
|
||||
final selectedText = overLayController.targetText;
|
||||
|
||||
return WordDataCard(
|
||||
word: selectedText,
|
||||
wordLang: widget.pangeaMessageEvent.messageDisplayLangCode,
|
||||
fullText: widget.pangeaMessageEvent.messageDisplayText,
|
||||
fullTextLang: widget.pangeaMessageEvent.messageDisplayLangCode,
|
||||
wordLang: pangeaMessageEvent.messageDisplayLangCode,
|
||||
fullText: pangeaMessageEvent.messageDisplayText,
|
||||
fullTextLang: pangeaMessageEvent.messageDisplayLangCode,
|
||||
hasInfo: true,
|
||||
room: widget.overLayController.widget.chatController.room,
|
||||
room: overLayController.widget.chatController.room,
|
||||
);
|
||||
} catch (e, s) {
|
||||
debugger(when: kDebugMode);
|
||||
|
|
@ -85,8 +75,8 @@ class MessageToolbarState extends State<MessageToolbar> {
|
|||
e: "Error in WordDataCard",
|
||||
s: s,
|
||||
data: {
|
||||
"word": widget.overLayController.targetText,
|
||||
"fullText": widget.pangeaMessageEvent.messageDisplayText,
|
||||
"word": overLayController.targetText,
|
||||
"fullText": pangeaMessageEvent.messageDisplayText,
|
||||
},
|
||||
);
|
||||
return const SizedBox();
|
||||
|
|
@ -94,30 +84,25 @@ class MessageToolbarState extends State<MessageToolbar> {
|
|||
}
|
||||
case MessageMode.practiceActivity:
|
||||
return PracticeActivityCard(
|
||||
pangeaMessageEvent: widget.pangeaMessageEvent,
|
||||
overlayController: widget.overLayController,
|
||||
pangeaMessageEvent: pangeaMessageEvent,
|
||||
overlayController: overLayController,
|
||||
);
|
||||
default:
|
||||
debugger(when: kDebugMode);
|
||||
ErrorHandler.logError(
|
||||
e: "Invalid toolbar mode",
|
||||
s: StackTrace.current,
|
||||
data: {"newMode": widget.overLayController.toolbarMode},
|
||||
data: {"newMode": overLayController.toolbarMode},
|
||||
);
|
||||
return const SizedBox();
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Material(
|
||||
key: MatrixState.pAnyState
|
||||
.layerLinkAndKey('${widget.pangeaMessageEvent.eventId}-toolbar')
|
||||
.layerLinkAndKey('${pangeaMessageEvent.eventId}-toolbar')
|
||||
.key,
|
||||
type: MaterialType.transparency,
|
||||
child: Column(
|
||||
|
|
|
|||
|
|
@ -248,12 +248,13 @@ class MessagePracticeActivityCardState extends State<PracticeActivityCard> {
|
|||
'record': currentCompletionRecord,
|
||||
},
|
||||
);
|
||||
|
||||
// clear the current activity and record
|
||||
currentActivity = null;
|
||||
currentCompletionRecord = null;
|
||||
|
||||
widget.overlayController.exitPracticeFlow();
|
||||
});
|
||||
|
||||
// clear the current activity and record
|
||||
currentActivity = null;
|
||||
currentCompletionRecord = null;
|
||||
}
|
||||
|
||||
RepresentationEvent? get representation =>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue