Select Git revision
-
Benoît Harrault authoredBenoît Harrault authored
home.dart 6.04 KiB
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'dart:math';
import 'dart:async';
import '../provider/data.dart';
import '../utils/random_pick_category.dart';
import '../utils/random_pick_letter.dart';
class Home extends StatelessWidget {
static const String id = 'home';
String _randomLetter = '';
String _randomCategory = '';
Timer _timer;
int _countdownStart = 10;
Future<void> startMiniGame(Data myProvider) async {
if (myProvider.countdown == 0) {
pickCategory(myProvider);
pickLetter(myProvider);
startTimer(myProvider);
}
}
Future<void> startTimer(Data myProvider) async {
const oneSec = const Duration(seconds: 1);
if (_timer != null) {
dispose();
}
_countdownStart = 10;
myProvider.updateCountdown = _countdownStart;
_timer = new Timer.periodic(
oneSec,
(Timer timer) {
if (_countdownStart == 0) {
timer.cancel();
} else {
_countdownStart--;
myProvider.updateCountdown = _countdownStart;
}
},
);
}
@override
void dispose() {
_timer.cancel();
}
Future<void> pickCategory(Data myProvider) async {
myProvider.searchingCategory = true;
RandomPickCategory randomPickCategory;
int attempts = 0;
do {
randomPickCategory = RandomPickCategory();
await randomPickCategory.init();
if (randomPickCategory.category != null) {
myProvider.updateCategory = randomPickCategory.category;
myProvider.searchingCategory = false;
break;
}
attempts++;
} while (attempts < 3);
}
Future<void> pickLetter(Data myProvider) async {
myProvider.searchingLetter = true;
RandomPickLetter randomPickLetter;