Skip to content
Snippets Groups Projects
Commit 7b875e44 authored by Benoît Harrault's avatar Benoît Harrault
Browse files

Add pick random word feature

parent 4d21dac2
No related branches found
No related tags found
1 merge request!7Resolve "Pick random word"
Pipeline #938 passed
org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true
app.versionName=0.0.5
app.versionCode=5
app.versionName=0.0.6
app.versionCode=6
......@@ -2,4 +2,26 @@ import 'package:flutter/foundation.dart';
class Data extends ChangeNotifier {
// randomization
bool _searchingWord = false;
String _word = '';
bool get searchingWord => _searchingWord;
set searchingWord(bool value) {
_searchingWord = value;
notifyListeners();
}
String get word => _word;
set updateWord(String value) {
_word = value;
notifyListeners();
}
void resetGame() {
_word = '';
notifyListeners();
}
}
import 'dart:math';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../provider/data.dart';
import '../utils/random_pick_word.dart';
class GamePickWordPage extends StatelessWidget {
String _randomWord = '';
Future<void> pickWord(BuildContext context, Data myProvider) async {
myProvider.searchingWord = true;
RandomPickWord randomPickWord;
int attempts = 0;
do {
randomPickWord = RandomPickWord();
await randomPickWord.init();
if (randomPickWord.word != null) {
myProvider.updateWord = randomPickWord.word;
myProvider.searchingWord = false;
break;
}
attempts++;
} while (attempts < 3);
}
Container _buildImageContainer(String word, Color color) {
return Container(
......@@ -96,6 +116,8 @@ class GamePickWordPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
Data _myProvider = Provider.of<Data>(context);
return Scaffold(
appBar: AppBar(
elevation: 0,
......@@ -108,7 +130,20 @@ class GamePickWordPage extends StatelessWidget {
mainAxisSize: MainAxisSize.max,
children: <Widget>[
_buildImageItemsBlock('🤖'),
_buildTextItemsBlock('robot'),
SizedBox(height: 20),
FlatButton(
onPressed: () => pickWord(context, _myProvider),
color: Colors.orange,
padding: EdgeInsets.all(10.0),
child: Row(
children: <Widget>[
Icon(Icons.shuffle),
Text("Nouveau mot")
],
),
),
SizedBox(height: 20),
_buildTextItemsBlock(_myProvider.word),
],
),
),
......
......@@ -141,7 +141,7 @@ packages:
name: test_api
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.19"
version: "0.3.0"
typed_data:
dependency: transitive
description:
......@@ -157,5 +157,5 @@ packages:
source: hosted
version: "2.1.0"
sdks:
dart: ">=2.12.0-0.0 <3.0.0"
dart: ">=2.12.0 <3.0.0"
flutter: ">=1.16.0"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment