TranslationStream constructor

TranslationStream({
  1. required List<String> text_list,
  2. required dynamic update_text_list_function({
    1. required int index,
    2. required int list_index,
    3. required String new_text,
    }),
  3. required int list_index,
  4. required bool active_translation,
})

Implementation

TranslationStream({
  required List<String> text_list,
  required Function({
    required int index,
    required String new_text,
    required int list_index,
  })
      update_text_list_function,
  required int list_index,
  required bool active_translation,
}) {
  for (int i = 0; i < text_list.length; i++) {
    original_texts.add(text_list[i]);

    stream_controllers.add(
      StreamController<String>(),
    );
    streams.add(
      stream_controllers[i].stream,
    );

    streams.last.listen((new_text) {
      update_text_list_function(
        index: i,
        new_text: new_text,
        list_index: list_index,
      );
    });

    stream_controllers.last.add(
      original_texts[i],
    );
  }
  if (active_translation) {
    Timer(Duration(milliseconds: 300), () {
      translate();
    });
  }
}