Select Git revision
activity_cubit.dart
activity_cubit.dart 5.37 KiB
import 'package:flutter/material.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:momomotus/models/activity/activity.dart';
import 'package:momomotus/models/settings/settings_activity.dart';
import 'package:momomotus/models/settings/settings_global.dart';
part 'activity_state.dart';
class ActivityCubit extends HydratedCubit<ActivityState> {
ActivityCubit()
: super(ActivityState(
currentActivity: Activity.createEmpty(),
));
void updateState(Activity activity) {
emit(ActivityState(
currentActivity: activity,
));
}
void refresh() {
final Activity activity = Activity(
// Settings
activitySettings: state.currentActivity.activitySettings,
globalSettings: state.currentActivity.globalSettings,
// State
isRunning: state.currentActivity.isRunning,
isStarted: state.currentActivity.isStarted,
animationInProgress: state.currentActivity.animationInProgress,
// Base data
word: state.currentActivity.word,
dictionary: state.currentActivity.dictionary,
// Game data
currentGuess: state.currentActivity.currentGuess,
foundLetters: state.currentActivity.foundLetters,
guesses: state.currentActivity.guesses,
foundWord: state.currentActivity.foundWord,
);
// game.dump();
updateState(activity);
}
void startNewActivity({
required ActivitySettings activitySettings,
required GlobalSettings globalSettings,
}) {
final Activity newActivity = Activity.createNew(
activitySettings: activitySettings,
globalSettings: globalSettings,
);
newActivity.dump();
updateState(newActivity);
refresh();
}
void quitActivity() {
state.currentActivity.isRunning = false;
refresh();
}
void resumeSavedActivity() {
state.currentActivity.isRunning = true;
refresh();
}
void deleteSavedActivity() {