@@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
44import 'package:flutter_quill/flutter_quill.dart' as quill;
55import 'package:image_picker/image_picker.dart' ;
66import 'package:share_plus/share_plus.dart' ;
7+ import 'package:flutter_tts/flutter_tts.dart' ;
78import 'list_item.dart' ;
89
910class EditorScreen extends StatefulWidget {
@@ -18,6 +19,7 @@ class EditorScreen extends StatefulWidget {
1819class _EditorScreenState extends State <EditorScreen > {
1920 late TextEditingController _titleController;
2021 late quill.QuillController _contentController;
22+ late FlutterTts _flutterTts;
2123
2224 int ? _backgroundColorValue;
2325 String ? _backgroundImagePath;
@@ -30,6 +32,7 @@ class _EditorScreenState extends State<EditorScreen> {
3032 document: widget.item.document,
3133 selection: const TextSelection .collapsed (offset: 0 ),
3234 );
35+ _flutterTts = FlutterTts ();
3336
3437 _backgroundColorValue = widget.item.backgroundColor;
3538 _backgroundImagePath = widget.item.backgroundImagePath;
@@ -39,6 +42,7 @@ class _EditorScreenState extends State<EditorScreen> {
3942 void dispose () {
4043 _titleController.dispose ();
4144 _contentController.dispose ();
45+ _flutterTts.stop ();
4246 super .dispose ();
4347 }
4448
@@ -73,6 +77,17 @@ class _EditorScreenState extends State<EditorScreen> {
7377 Navigator .pop (context, "DELETE" );
7478 }
7579
80+ Future <void > _speak () async {
81+ final title = _titleController.text;
82+ final content = _contentController.document.toPlainText ();
83+ if (title.isNotEmpty) {
84+ await _flutterTts.speak (title);
85+ }
86+ if (content.isNotEmpty) {
87+ await _flutterTts.speak (content);
88+ }
89+ }
90+
7691 void _showEditorMenu () {
7792 showModalBottomSheet (
7893 context: context,
@@ -286,6 +301,9 @@ class _EditorScreenState extends State<EditorScreen> {
286301 IconButton (
287302 icon: Icon (Icons .text_fields, color: textColor),
288303 onPressed: _showTextTools),
304+ IconButton (
305+ icon: Icon (Icons .volume_up, color: textColor),
306+ onPressed: _speak),
289307 ],
290308 ),
291309 ),
0 commit comments