diff --git a/app/android/app/src/main/kotlin/com/example/app/MainActivity.kt b/app/android/app/src/main/kotlin/com/example/app/MainActivity.kt
new file mode 100644
index 00000000..461fcfba
--- /dev/null
+++ b/app/android/app/src/main/kotlin/com/example/app/MainActivity.kt
@@ -0,0 +1,6 @@
+package com.example.app
+
+import io.flutter.embedding.android.FlutterActivity
+
+class MainActivity: FlutterActivity() {
+}
diff --git a/app/android/app/src/main/res/drawable-v21/launch_background.xml b/app/android/app/src/main/res/drawable-v21/launch_background.xml
new file mode 100644
index 00000000..f74085f3
--- /dev/null
+++ b/app/android/app/src/main/res/drawable-v21/launch_background.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
diff --git a/app/android/app/src/main/res/values-night/styles.xml b/app/android/app/src/main/res/values-night/styles.xml
new file mode 100644
index 00000000..449a9f93
--- /dev/null
+++ b/app/android/app/src/main/res/values-night/styles.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
diff --git a/app/ios/Runner/AppDelegate.swift b/app/ios/Runner/AppDelegate.swift
new file mode 100644
index 00000000..70693e4a
--- /dev/null
+++ b/app/ios/Runner/AppDelegate.swift
@@ -0,0 +1,13 @@
+import UIKit
+import Flutter
+
+@UIApplicationMain
+@objc class AppDelegate: FlutterAppDelegate {
+ override func application(
+ _ application: UIApplication,
+ didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
+ ) -> Bool {
+ GeneratedPluginRegistrant.register(with: self)
+ return super.application(application, didFinishLaunchingWithOptions: launchOptions)
+ }
+}
diff --git a/app/ios/Runner/Runner-Bridging-Header.h b/app/ios/Runner/Runner-Bridging-Header.h
new file mode 100644
index 00000000..308a2a56
--- /dev/null
+++ b/app/ios/Runner/Runner-Bridging-Header.h
@@ -0,0 +1 @@
+#import "GeneratedPluginRegistrant.h"
diff --git a/app/lib/pages/home_page.dart b/app/lib/pages/home_page.dart
index 72ad2591..f251e7b8 100644
--- a/app/lib/pages/home_page.dart
+++ b/app/lib/pages/home_page.dart
@@ -1,9 +1,7 @@
import 'dart:async';
import 'dart:convert';
import 'dart:io';
-import 'package:tuple/tuple.dart';
-import 'package:app/pages/read_only_page.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_quill/models/documents/document.dart';
@@ -11,6 +9,9 @@ import 'package:flutter_quill/widgets/controller.dart';
import 'package:flutter_quill/widgets/default_styles.dart';
import 'package:flutter_quill/widgets/editor.dart';
import 'package:flutter_quill/widgets/toolbar.dart';
+import 'package:tuple/tuple.dart';
+
+import 'read_only_page.dart';
class HomePage extends StatefulWidget {
@override
diff --git a/app/lib/pages/read_only_page.dart b/app/lib/pages/read_only_page.dart
index 30857bc1..c72313ad 100644
--- a/app/lib/pages/read_only_page.dart
+++ b/app/lib/pages/read_only_page.dart
@@ -1,8 +1,9 @@
-import 'package:app/widgets/demo_scaffold.dart';
import 'package:flutter/material.dart';
import 'package:flutter_quill/widgets/controller.dart';
import 'package:flutter_quill/widgets/editor.dart';
+import '../widgets/demo_scaffold.dart';
+
class ReadOnlyPage extends StatefulWidget {
@override
_ReadOnlyPageState createState() => _ReadOnlyPageState();
diff --git a/app/pubspec.lock b/app/pubspec.lock
index 93f1f182..6a2ba4df 100644
--- a/app/pubspec.lock
+++ b/app/pubspec.lock
@@ -7,42 +7,42 @@ packages:
name: async
url: "https://pub.dartlang.org"
source: hosted
- version: "2.5.0-nullsafety.1"
+ version: "2.5.0-nullsafety.3"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
url: "https://pub.dartlang.org"
source: hosted
- version: "2.1.0-nullsafety.1"
+ version: "2.1.0-nullsafety.3"
characters:
dependency: transitive
description:
name: characters
url: "https://pub.dartlang.org"
source: hosted
- version: "1.1.0-nullsafety.3"
+ version: "1.1.0-nullsafety.5"
charcode:
dependency: transitive
description:
name: charcode
url: "https://pub.dartlang.org"
source: hosted
- version: "1.2.0-nullsafety.1"
+ version: "1.2.0-nullsafety.3"
clock:
dependency: transitive
description:
name: clock
url: "https://pub.dartlang.org"
source: hosted
- version: "1.1.0-nullsafety.1"
+ version: "1.1.0-nullsafety.3"
collection:
dependency: transitive
description:
name: collection
url: "https://pub.dartlang.org"
source: hosted
- version: "1.15.0-nullsafety.3"
+ version: "1.15.0-nullsafety.5"
cupertino_icons:
dependency: "direct main"
description:
@@ -56,7 +56,7 @@ packages:
name: fake_async
url: "https://pub.dartlang.org"
source: hosted
- version: "1.2.0-nullsafety.1"
+ version: "1.2.0-nullsafety.3"
flutter:
dependency: "direct main"
description: flutter
@@ -82,7 +82,7 @@ packages:
path: ".."
relative: true
source: path
- version: "0.2.5"
+ version: "0.2.6"
flutter_test:
dependency: "direct dev"
description: flutter
@@ -121,27 +121,34 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.1"
+ js:
+ dependency: transitive
+ description:
+ name: js
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "0.6.3-nullsafety.3"
matcher:
dependency: transitive
description:
name: matcher
url: "https://pub.dartlang.org"
source: hosted
- version: "0.12.10-nullsafety.1"
+ version: "0.12.10-nullsafety.3"
meta:
dependency: transitive
description:
name: meta
url: "https://pub.dartlang.org"
source: hosted
- version: "1.3.0-nullsafety.3"
+ version: "1.3.0-nullsafety.6"
path:
dependency: transitive
description:
name: path
url: "https://pub.dartlang.org"
source: hosted
- version: "1.8.0-nullsafety.1"
+ version: "1.8.0-nullsafety.3"
pedantic:
dependency: transitive
description:
@@ -195,42 +202,42 @@ packages:
name: source_span
url: "https://pub.dartlang.org"
source: hosted
- version: "1.8.0-nullsafety.2"
+ version: "1.8.0-nullsafety.4"
stack_trace:
dependency: transitive
description:
name: stack_trace
url: "https://pub.dartlang.org"
source: hosted
- version: "1.10.0-nullsafety.1"
+ version: "1.10.0-nullsafety.6"
stream_channel:
dependency: transitive
description:
name: stream_channel
url: "https://pub.dartlang.org"
source: hosted
- version: "2.1.0-nullsafety.1"
+ version: "2.1.0-nullsafety.3"
string_scanner:
dependency: transitive
description:
name: string_scanner
url: "https://pub.dartlang.org"
source: hosted
- version: "1.1.0-nullsafety.1"
+ version: "1.1.0-nullsafety.3"
term_glyph:
dependency: transitive
description:
name: term_glyph
url: "https://pub.dartlang.org"
source: hosted
- version: "1.2.0-nullsafety.1"
+ version: "1.2.0-nullsafety.3"
test_api:
dependency: transitive
description:
name: test_api
url: "https://pub.dartlang.org"
source: hosted
- version: "0.2.19-nullsafety.2"
+ version: "0.2.19-nullsafety.6"
tuple:
dependency: transitive
description:
@@ -244,7 +251,7 @@ packages:
name: typed_data
url: "https://pub.dartlang.org"
source: hosted
- version: "1.3.0-nullsafety.3"
+ version: "1.3.0-nullsafety.5"
url_launcher:
dependency: transitive
description:
@@ -293,7 +300,7 @@ packages:
name: vector_math
url: "https://pub.dartlang.org"
source: hosted
- version: "2.1.0-nullsafety.3"
+ version: "2.1.0-nullsafety.5"
sdks:
- dart: ">=2.10.0-110 <2.11.0"
- flutter: ">=1.22.0 <2.0.0"
+ dart: ">=2.12.0-0.0 <3.0.0"
+ flutter: ">=1.22.0"
diff --git a/app/web/favicon.png b/app/web/favicon.png
new file mode 100644
index 00000000..8aaa46ac
Binary files /dev/null and b/app/web/favicon.png differ
diff --git a/app/web/icons/Icon-192.png b/app/web/icons/Icon-192.png
new file mode 100644
index 00000000..b749bfef
Binary files /dev/null and b/app/web/icons/Icon-192.png differ
diff --git a/app/web/icons/Icon-512.png b/app/web/icons/Icon-512.png
new file mode 100644
index 00000000..88cfd48d
Binary files /dev/null and b/app/web/icons/Icon-512.png differ
diff --git a/app/web/index.html b/app/web/index.html
new file mode 100644
index 00000000..887a139d
--- /dev/null
+++ b/app/web/index.html
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ app
+
+
+
+
+
+
+
+
diff --git a/app/web/manifest.json b/app/web/manifest.json
new file mode 100644
index 00000000..c3c31e3b
--- /dev/null
+++ b/app/web/manifest.json
@@ -0,0 +1,23 @@
+{
+ "name": "app",
+ "short_name": "app",
+ "start_url": ".",
+ "display": "standalone",
+ "background_color": "#0175C2",
+ "theme_color": "#0175C2",
+ "description": "A new Flutter project.",
+ "orientation": "portrait-primary",
+ "prefer_related_applications": false,
+ "icons": [
+ {
+ "src": "icons/Icon-192.png",
+ "sizes": "192x192",
+ "type": "image/png"
+ },
+ {
+ "src": "icons/Icon-512.png",
+ "sizes": "512x512",
+ "type": "image/png"
+ }
+ ]
+}
diff --git a/lib/widgets/text_line.dart b/lib/widgets/text_line.dart
index a90a6883..53bb07f8 100644
--- a/lib/widgets/text_line.dart
+++ b/lib/widgets/text_line.dart
@@ -60,7 +60,7 @@ class TextLine extends StatelessWidget {
textAlign,
textDirection,
1.0,
- Localizations.localeOf(context, nullOk: true),
+ Localizations.localeOf(context),
strutStyle,
TextWidthBasis.parent,
null);
diff --git a/lib/widgets/text_selection.dart b/lib/widgets/text_selection.dart
index 64534c0c..9ad7c5ef 100644
--- a/lib/widgets/text_selection.dart
+++ b/lib/widgets/text_selection.dart
@@ -206,6 +206,7 @@ class EditorTextSelectionOverlay {
endpoints,
selectionDelegate,
clipboardStatus,
+ Offset(0, 0),
),
),
);
diff --git a/lib/widgets/toolbar.dart b/lib/widgets/toolbar.dart
index db412bab..1f54bd79 100644
--- a/lib/widgets/toolbar.dart
+++ b/lib/widgets/toolbar.dart
@@ -399,8 +399,10 @@ class _SelectHeaderStyleButtonState extends State {
@override
void initState() {
super.initState();
- _value =
- _selectionStyle.attributes[Attribute.header.key] ?? Attribute.header;
+ setState(() {
+ _value =
+ _selectionStyle.attributes[Attribute.header.key] ?? Attribute.header;
+ });
widget.controller.addListener(_didChangeEditingValue);
}
@@ -444,7 +446,13 @@ Widget _selectHeadingStyleButtonBuilder(
height: iconSize * 1.77,
fillColor: Theme.of(context).canvasColor,
child: Text(
- _valueToText[value],
+ _valueToText[value.key == "header"
+ ? Attribute.header
+ : (value.key == "h1")
+ ? Attribute.h1
+ : (value.key == "h2")
+ ? Attribute.h2
+ : Attribute.h3],
style: TextStyle(fontSize: 13, fontWeight: FontWeight.w600),
),
initialValue: value,
@@ -1082,11 +1090,17 @@ class _QuillToolbarState extends State {
padding: EdgeInsets.symmetric(horizontal: 8),
constraints: BoxConstraints.tightFor(height: widget.preferredSize.height),
color: Theme.of(context).canvasColor,
- child: SingleChildScrollView(
+ child: CustomScrollView(
scrollDirection: Axis.horizontal,
- child: Row(
- children: widget.children,
- ),
+ slivers: [
+ SliverFillRemaining(
+ hasScrollBody: false,
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceEvenly,
+ children: widget.children,
+ ),
+ ),
+ ],
),
);
}
diff --git a/pubspec.lock b/pubspec.lock
index 09ae8cdc..02cc03c0 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -7,49 +7,49 @@ packages:
name: async
url: "https://pub.dartlang.org"
source: hosted
- version: "2.5.0-nullsafety.1"
+ version: "2.5.0-nullsafety.3"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
url: "https://pub.dartlang.org"
source: hosted
- version: "2.1.0-nullsafety.1"
+ version: "2.1.0-nullsafety.3"
characters:
dependency: transitive
description:
name: characters
url: "https://pub.dartlang.org"
source: hosted
- version: "1.1.0-nullsafety.3"
+ version: "1.1.0-nullsafety.5"
charcode:
dependency: transitive
description:
name: charcode
url: "https://pub.dartlang.org"
source: hosted
- version: "1.2.0-nullsafety.1"
+ version: "1.2.0-nullsafety.3"
clock:
dependency: transitive
description:
name: clock
url: "https://pub.dartlang.org"
source: hosted
- version: "1.1.0-nullsafety.1"
+ version: "1.1.0-nullsafety.3"
collection:
dependency: "direct main"
description:
name: collection
url: "https://pub.dartlang.org"
source: hosted
- version: "1.15.0-nullsafety.3"
+ version: "1.15.0-nullsafety.5"
fake_async:
dependency: transitive
description:
name: fake_async
url: "https://pub.dartlang.org"
source: hosted
- version: "1.2.0-nullsafety.1"
+ version: "1.2.0-nullsafety.3"
flutter:
dependency: "direct main"
description: flutter
@@ -107,27 +107,34 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.1"
+ js:
+ dependency: transitive
+ description:
+ name: js
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "0.6.3-nullsafety.3"
matcher:
dependency: transitive
description:
name: matcher
url: "https://pub.dartlang.org"
source: hosted
- version: "0.12.10-nullsafety.1"
+ version: "0.12.10-nullsafety.3"
meta:
dependency: transitive
description:
name: meta
url: "https://pub.dartlang.org"
source: hosted
- version: "1.3.0-nullsafety.3"
+ version: "1.3.0-nullsafety.6"
path:
dependency: transitive
description:
name: path
url: "https://pub.dartlang.org"
source: hosted
- version: "1.8.0-nullsafety.1"
+ version: "1.8.0-nullsafety.3"
pedantic:
dependency: transitive
description:
@@ -181,42 +188,42 @@ packages:
name: source_span
url: "https://pub.dartlang.org"
source: hosted
- version: "1.8.0-nullsafety.2"
+ version: "1.8.0-nullsafety.4"
stack_trace:
dependency: transitive
description:
name: stack_trace
url: "https://pub.dartlang.org"
source: hosted
- version: "1.10.0-nullsafety.1"
+ version: "1.10.0-nullsafety.6"
stream_channel:
dependency: transitive
description:
name: stream_channel
url: "https://pub.dartlang.org"
source: hosted
- version: "2.1.0-nullsafety.1"
+ version: "2.1.0-nullsafety.3"
string_scanner:
dependency: transitive
description:
name: string_scanner
url: "https://pub.dartlang.org"
source: hosted
- version: "1.1.0-nullsafety.1"
+ version: "1.1.0-nullsafety.3"
term_glyph:
dependency: transitive
description:
name: term_glyph
url: "https://pub.dartlang.org"
source: hosted
- version: "1.2.0-nullsafety.1"
+ version: "1.2.0-nullsafety.3"
test_api:
dependency: transitive
description:
name: test_api
url: "https://pub.dartlang.org"
source: hosted
- version: "0.2.19-nullsafety.2"
+ version: "0.2.19-nullsafety.6"
tuple:
dependency: "direct main"
description:
@@ -230,7 +237,7 @@ packages:
name: typed_data
url: "https://pub.dartlang.org"
source: hosted
- version: "1.3.0-nullsafety.3"
+ version: "1.3.0-nullsafety.5"
url_launcher:
dependency: "direct main"
description:
@@ -279,7 +286,7 @@ packages:
name: vector_math
url: "https://pub.dartlang.org"
source: hosted
- version: "2.1.0-nullsafety.3"
+ version: "2.1.0-nullsafety.5"
sdks:
- dart: ">=2.10.0-110 <2.11.0"
- flutter: ">=1.22.0 <2.0.0"
+ dart: ">=2.12.0-0.0 <3.0.0"
+ flutter: ">=1.22.0"