@ -50,6 +50,10 @@ class ActivityGeneratorState extends State<ActivityGenerator> {
String ? filename ;
String ? filename ;
List < ActivitySettingResponseSchema > ? topicItems ;
List < ActivitySettingResponseSchema > ? modeItems ;
List < ActivitySettingResponseSchema > ? objectiveItems ;
@ override
@ override
void initState ( ) {
void initState ( ) {
super . initState ( ) ;
super . initState ( ) ;
@ -60,7 +64,9 @@ class ActivityGeneratorState extends State<ActivityGenerator> {
MatrixState . pangeaController . languageController . userL2 ? . langCode ;
MatrixState . pangeaController . languageController . userL2 ? . langCode ;
selectedCefrLevel = LanguageLevelTypeEnum . a1 ;
selectedCefrLevel = LanguageLevelTypeEnum . a1 ;
selectedNumberOfParticipants = 3 ;
selectedNumberOfParticipants = 3 ;
_setModeImageURL ( ) ;
_setMode ( ) ;
_setTopic ( ) ;
_setObjective ( ) ;
}
}
@ override
@ override
@ -88,15 +94,6 @@ class ActivityGeneratorState extends State<ActivityGenerator> {
numberOfParticipants: selectedNumberOfParticipants ! ,
numberOfParticipants: selectedNumberOfParticipants ! ,
) ;
) ;
Future < List < ActivitySettingResponseSchema > > get topicItems = >
TopicListRepo . get ( req ) ;
Future < List < ActivitySettingResponseSchema > > get modeItems = >
ActivityModeListRepo . get ( req ) ;
Future < List < ActivitySettingResponseSchema > > get objectiveItems = >
LearningObjectiveListRepo . get ( req ) ;
Room ? get room = > Matrix . of ( context ) . client . getRoomById ( widget . roomID ) ;
Room ? get room = > Matrix . of ( context ) . client . getRoomById ( widget . roomID ) ;
String ? validateNotNull ( String ? value ) {
String ? validateNotNull ( String ? value ) {
@ -106,31 +103,33 @@ class ActivityGeneratorState extends State<ActivityGenerator> {
return null ;
return null ;
}
}
Future < String > _randomTopic ( ) async {
String ? get _randomTopic = > ( topicItems ? . . shuffle ( ) ) ? . first . name ;
final topics = await topicItems ;
return ( topics . . shuffle ( ) ) . first . name ;
}
Future < String > _randomObjective ( ) async {
String ? get _randomObjective = > ( objectiveItems ? . . shuffle ( ) ) ? . first . name ;
final objectives = await objectiveItems ;
return ( objectives . . shuffle ( ) ) . first . name ;
}
Future < String > _randomMode ( ) async {
String ? get _randomMode = > ( modeItems ? . . shuffle ( ) ) ? . first . name ;
final modes = await modeItems ;
return ( modes . . shuffle ( ) ) . first . name ;
}
void randomizeSelections ( ) async {
bool get randomizeEnabled = >
final selectedTopic = await _randomTopic ( ) ;
topicItems ! = null & & objectiveItems ! = null & & modeItems ! = null ;
final selectedObjective = await _randomObjective ( ) ;
final selectedMode = await _randomMode ( ) ;
setState ( ( ) {
void randomizeSelections ( ) {
topicController . text = selectedTopic ;
final selectedTopic = _randomTopic ;
objectiveController . text = selectedObjective ;
final selectedObjective = _randomObjective ;
modeController . text = selectedMode ;
final selectedMode = _randomMode ;
} ) ;
if ( selectedTopic = = null | |
selectedObjective = = null | |
selectedMode = = null ) {
return ;
}
if ( mounted ) {
setState ( ( ) {
topicController . text = selectedTopic ;
objectiveController . text = selectedObjective ;
modeController . text = selectedMode ;
} ) ;
}
}
}
void clearSelections ( ) async {
void clearSelections ( ) async {
@ -164,15 +163,45 @@ class ActivityGeneratorState extends State<ActivityGenerator> {
setState ( ( ) = > selectedCefrLevel = value ) ;
setState ( ( ) = > selectedCefrLevel = value ) ;
}
}
Future < ActivitySettingResponseSchema ? > get _selectedMode async {
ActivitySettingResponseSchema ? get _selectedMode {
final modes = await modeItems ;
return modeItems ? . firstWhereOrNull (
return modes . firstWhereOrNull (
( element ) = > element . name . toLowerCase ( ) = = planRequest . mode . toLowerCase ( ) ,
( element ) = > element . name . toLowerCase ( ) = = planRequest . mode . toLowerCase ( ) ,
) ;
) ;
}
}
Future < void > _setTopic ( ) async {
final topic = await TopicListRepo . get ( req ) ;
if ( mounted ) {
setState ( ( ) {
topicItems = topic ;
} ) ;
}
}
Future < void > _setMode ( ) async {
final mode = await ActivityModeListRepo . get ( req ) ;
if ( mounted ) {
setState ( ( ) {
modeItems = mode ;
} ) ;
_setModeImageURL ( ) ;
}
}
Future < void > _setObjective ( ) async {
final objective = await LearningObjectiveListRepo . get ( req ) ;
if ( mounted ) {
setState ( ( ) {
objectiveItems = objective ;
} ) ;
}
}
Future < void > _setModeImageURL ( ) async {
Future < void > _setModeImageURL ( ) async {
final mode = await _selectedMode ;
final mode = _selectedMode ;
if ( mode = = null ) return ;
if ( mode = = null ) return ;
final modeName =
final modeName =