import 'dart:async';
import 'dart:convert';
import 'package:flutter/services.dart';

class RandomPickWord {
  RandomPickWord();

  List _words;

  init(int count) async {
    _words = new List(count);
    await wordFromLocalFile(count);
  }

  Future<void> wordFromLocalFile(int count) async {
    // Get global words list
    List wordList = [];
    try {
      String jsonString = await rootBundle.loadString('assets/files/words-fr.json');
      final jsonResponse = await json.decode(jsonString);
      wordList = jsonResponse['words'];
    } catch (e) {
      print("$e");
    }

    // Check we have enough words
    if (wordList.length < count) {
      print('Not enough words in list.');
    }

    // Remove empty words
    wordList.removeWhere((value) => value == '');

    // Randomize words list
    wordList.shuffle();

    // Pick first words from shuffled list
    _words = wordList.take(count).toList();
  }

  List get words => _words;
}