diff --git a/.DS_Store b/.DS_Store
index fe45ec83..c734945c 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/.dart_tool/extension_discovery/README.md b/.dart_tool/extension_discovery/README.md
new file mode 100644
index 00000000..9dc6757b
--- /dev/null
+++ b/.dart_tool/extension_discovery/README.md
@@ -0,0 +1,31 @@
+Extension Discovery Cache
+=========================
+
+This folder is used by `package:extension_discovery` to cache lists of
+packages that contains extensions for other packages.
+
+DO NOT USE THIS FOLDER
+----------------------
+
+ * Do not read (or rely) the contents of this folder.
+ * Do write to this folder.
+
+If you're interested in the lists of extensions stored in this folder use the
+API offered by package `extension_discovery` to get this information.
+
+If this package doesn't work for your use-case, then don't try to read the
+contents of this folder. It may change, and will not remain stable.
+
+Use package `extension_discovery`
+---------------------------------
+
+If you want to access information from this folder.
+
+Feel free to delete this folder
+-------------------------------
+
+Files in this folder act as a cache, and the cache is discarded if the files
+are older than the modification time of `.dart_tool/package_config.json`.
+
+Hence, it should never be necessary to clear this cache manually, if you find a
+need to do please file a bug.
diff --git a/.dart_tool/extension_discovery/vs_code.json b/.dart_tool/extension_discovery/vs_code.json
new file mode 100644
index 00000000..07b03ad1
--- /dev/null
+++ b/.dart_tool/extension_discovery/vs_code.json
@@ -0,0 +1 @@
+{"version":2,"entries":[{"package":"awesome_notifications","rootUri":"../","packageUri":"lib/"}]}
\ No newline at end of file
diff --git a/.dart_tool/package_config.json b/.dart_tool/package_config.json
index 7764936e..c2af5b41 100644
--- a/.dart_tool/package_config.json
+++ b/.dart_tool/package_config.json
@@ -3,21 +3,27 @@
"packages": [
{
"name": "_fe_analyzer_shared",
- "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/_fe_analyzer_shared-61.0.0",
+ "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/_fe_analyzer_shared-72.0.0",
"packageUri": "lib/",
- "languageVersion": "2.17"
+ "languageVersion": "3.3"
+ },
+ {
+ "name": "_macros",
+ "rootUri": "file:///Users/rafaelsetragni/Development/flutter/bin/cache/dart-sdk/pkg/_macros",
+ "packageUri": "lib/",
+ "languageVersion": "3.4"
},
{
"name": "analyzer",
- "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/analyzer-5.13.0",
+ "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/analyzer-6.7.0",
"packageUri": "lib/",
- "languageVersion": "2.19"
+ "languageVersion": "3.3"
},
{
"name": "args",
- "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/args-2.4.0",
+ "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/args-2.5.0",
"packageUri": "lib/",
- "languageVersion": "2.18"
+ "languageVersion": "3.0"
},
{
"name": "async",
@@ -33,9 +39,9 @@
},
{
"name": "build",
- "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/build-2.3.1",
+ "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/build-2.4.1",
"packageUri": "lib/",
- "languageVersion": "2.17"
+ "languageVersion": "2.19"
},
{
"name": "built_collection",
@@ -45,9 +51,9 @@
},
{
"name": "built_value",
- "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/built_value-8.4.4",
+ "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/built_value-8.9.2",
"packageUri": "lib/",
- "languageVersion": "2.12"
+ "languageVersion": "3.0"
},
{
"name": "characters",
@@ -63,9 +69,9 @@
},
{
"name": "code_builder",
- "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/code_builder-4.6.0",
+ "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/code_builder-4.10.0",
"packageUri": "lib/",
- "languageVersion": "2.19"
+ "languageVersion": "3.0"
},
{
"name": "collection",
@@ -81,15 +87,15 @@
},
{
"name": "crypto",
- "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/crypto-3.0.2",
+ "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/crypto-3.0.5",
"packageUri": "lib/",
- "languageVersion": "2.14"
+ "languageVersion": "3.4"
},
{
"name": "dart_style",
- "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/dart_style-2.3.0",
+ "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/dart_style-2.3.7",
"packageUri": "lib/",
- "languageVersion": "2.19"
+ "languageVersion": "3.0"
},
{
"name": "fake_async",
@@ -99,9 +105,9 @@
},
{
"name": "file",
- "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/file-6.1.4",
+ "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/file-7.0.0",
"packageUri": "lib/",
- "languageVersion": "2.12"
+ "languageVersion": "3.0"
},
{
"name": "fixnum",
@@ -113,19 +119,19 @@
"name": "flutter",
"rootUri": "file:///Users/rafaelsetragni/Development/flutter/packages/flutter",
"packageUri": "lib/",
- "languageVersion": "3.2"
+ "languageVersion": "3.3"
},
{
"name": "flutter_lints",
- "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/flutter_lints-3.0.1",
+ "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/flutter_lints-5.0.0",
"packageUri": "lib/",
- "languageVersion": "3.0"
+ "languageVersion": "3.5"
},
{
"name": "flutter_test",
"rootUri": "file:///Users/rafaelsetragni/Development/flutter/packages/flutter_test",
"packageUri": "lib/",
- "languageVersion": "3.2"
+ "languageVersion": "3.3"
},
{
"name": "flutter_web_plugins",
@@ -135,9 +141,9 @@
},
{
"name": "glob",
- "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/glob-2.1.1",
+ "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/glob-2.1.2",
"packageUri": "lib/",
- "languageVersion": "2.15"
+ "languageVersion": "2.19"
},
{
"name": "intl",
@@ -147,33 +153,39 @@
},
{
"name": "leak_tracker",
- "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/leak_tracker-10.0.0",
+ "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/leak_tracker-10.0.5",
"packageUri": "lib/",
- "languageVersion": "3.1"
+ "languageVersion": "3.2"
},
{
"name": "leak_tracker_flutter_testing",
- "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/leak_tracker_flutter_testing-2.0.1",
+ "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/leak_tracker_flutter_testing-3.0.5",
"packageUri": "lib/",
- "languageVersion": "3.1"
+ "languageVersion": "3.2"
},
{
"name": "leak_tracker_testing",
- "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/leak_tracker_testing-2.0.1",
+ "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/leak_tracker_testing-3.0.1",
"packageUri": "lib/",
- "languageVersion": "3.1"
+ "languageVersion": "3.2"
},
{
"name": "lints",
- "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/lints-3.0.0",
+ "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/lints-5.0.0",
"packageUri": "lib/",
- "languageVersion": "3.0"
+ "languageVersion": "3.5"
},
{
"name": "logging",
- "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/logging-1.1.1",
+ "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/logging-1.2.0",
"packageUri": "lib/",
- "languageVersion": "2.18"
+ "languageVersion": "2.19"
+ },
+ {
+ "name": "macros",
+ "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/macros-0.1.2-main.4",
+ "packageUri": "lib/",
+ "languageVersion": "3.4"
},
{
"name": "matcher",
@@ -183,13 +195,13 @@
},
{
"name": "material_color_utilities",
- "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/material_color_utilities-0.8.0",
+ "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/material_color_utilities-0.11.1",
"packageUri": "lib/",
"languageVersion": "2.17"
},
{
"name": "meta",
- "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/meta-1.11.0",
+ "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/meta-1.15.0",
"packageUri": "lib/",
"languageVersion": "2.12"
},
@@ -201,7 +213,7 @@
},
{
"name": "mocktail",
- "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/mocktail-1.0.3",
+ "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/mocktail-1.0.4",
"packageUri": "lib/",
"languageVersion": "2.12"
},
@@ -225,7 +237,7 @@
},
{
"name": "pub_semver",
- "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/pub_semver-2.1.3",
+ "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/pub_semver-2.1.4",
"packageUri": "lib/",
"languageVersion": "2.17"
},
@@ -237,9 +249,9 @@
},
{
"name": "source_gen",
- "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/source_gen-1.2.7",
+ "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/source_gen-1.5.0",
"packageUri": "lib/",
- "languageVersion": "2.18"
+ "languageVersion": "3.0"
},
{
"name": "source_span",
@@ -273,15 +285,15 @@
},
{
"name": "test_api",
- "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/test_api-0.6.1",
+ "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/test_api-0.7.2",
"packageUri": "lib/",
- "languageVersion": "3.0"
+ "languageVersion": "3.2"
},
{
"name": "typed_data",
- "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/typed_data-1.3.1",
+ "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/typed_data-1.3.2",
"packageUri": "lib/",
- "languageVersion": "2.12"
+ "languageVersion": "2.17"
},
{
"name": "vector_math",
@@ -291,21 +303,21 @@
},
{
"name": "vm_service",
- "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/vm_service-13.0.0",
+ "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/vm_service-14.2.5",
"packageUri": "lib/",
- "languageVersion": "3.0"
+ "languageVersion": "3.3"
},
{
"name": "watcher",
- "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/watcher-1.0.2",
+ "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/watcher-1.1.0",
"packageUri": "lib/",
- "languageVersion": "2.14"
+ "languageVersion": "3.0"
},
{
"name": "yaml",
- "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/yaml-3.1.1",
+ "rootUri": "file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/yaml-3.1.2",
"packageUri": "lib/",
- "languageVersion": "2.12"
+ "languageVersion": "2.19"
},
{
"name": "awesome_notifications",
@@ -314,7 +326,10 @@
"languageVersion": "2.19"
}
],
- "generated": "2024-03-17T12:33:44.911585Z",
+ "generated": "2024-10-15T14:09:12.513150Z",
"generator": "pub",
- "generatorVersion": "3.3.1"
+ "generatorVersion": "3.5.3",
+ "flutterRoot": "file:///Users/rafaelsetragni/Development/flutter",
+ "flutterVersion": "3.24.3",
+ "pubCache": "file:///Users/rafaelsetragni/.pub-cache"
}
diff --git a/.dart_tool/package_config_subset b/.dart_tool/package_config_subset
index 95a83782..292959a6 100644
--- a/.dart_tool/package_config_subset
+++ b/.dart_tool/package_config_subset
@@ -1,15 +1,15 @@
_fe_analyzer_shared
-2.17
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/_fe_analyzer_shared-61.0.0/
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/_fe_analyzer_shared-61.0.0/lib/
+3.3
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/_fe_analyzer_shared-72.0.0/
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/_fe_analyzer_shared-72.0.0/lib/
analyzer
-2.19
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/analyzer-5.13.0/
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/analyzer-5.13.0/lib/
+3.3
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/analyzer-6.7.0/
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/analyzer-6.7.0/lib/
args
-2.18
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/args-2.4.0/
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/args-2.4.0/lib/
+3.0
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/args-2.5.0/
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/args-2.5.0/lib/
async
2.18
file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/async-2.11.0/
@@ -19,17 +19,17 @@ boolean_selector
file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/boolean_selector-2.1.1/
file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/boolean_selector-2.1.1/lib/
build
-2.17
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/build-2.3.1/
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/build-2.3.1/lib/
+2.19
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/build-2.4.1/
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/build-2.4.1/lib/
built_collection
2.12
file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/built_collection-5.1.1/
file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/built_collection-5.1.1/lib/
built_value
-2.12
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/built_value-8.4.4/
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/built_value-8.4.4/lib/
+3.0
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/built_value-8.9.2/
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/built_value-8.9.2/lib/
characters
2.12
file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/characters-1.3.0/
@@ -39,9 +39,9 @@ clock
file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/clock-1.1.1/
file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/clock-1.1.1/lib/
code_builder
-2.19
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/code_builder-4.6.0/
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/code_builder-4.6.0/lib/
+3.0
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/code_builder-4.10.0/
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/code_builder-4.10.0/lib/
collection
2.18
file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/collection-1.18.0/
@@ -51,77 +51,81 @@ convert
file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/convert-3.1.1/
file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/convert-3.1.1/lib/
crypto
-2.14
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/crypto-3.0.2/
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/crypto-3.0.2/lib/
+3.4
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/crypto-3.0.5/
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/crypto-3.0.5/lib/
dart_style
-2.19
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/dart_style-2.3.0/
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/dart_style-2.3.0/lib/
+3.0
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/dart_style-2.3.7/
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/dart_style-2.3.7/lib/
fake_async
2.12
file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/fake_async-1.3.1/
file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/fake_async-1.3.1/lib/
file
-2.12
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/file-6.1.4/
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/file-6.1.4/lib/
+3.0
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/file-7.0.0/
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/file-7.0.0/lib/
fixnum
2.19
file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/fixnum-1.1.0/
file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/fixnum-1.1.0/lib/
flutter_lints
-3.0
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/flutter_lints-3.0.1/
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/flutter_lints-3.0.1/lib/
+3.5
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/flutter_lints-5.0.0/
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/flutter_lints-5.0.0/lib/
glob
-2.15
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/glob-2.1.1/
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/glob-2.1.1/lib/
+2.19
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/glob-2.1.2/
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/glob-2.1.2/lib/
intl
3.0
file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/intl-0.19.0/
file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/intl-0.19.0/lib/
leak_tracker
-3.1
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/leak_tracker-10.0.0/
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/leak_tracker-10.0.0/lib/
+3.2
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/leak_tracker-10.0.5/
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/leak_tracker-10.0.5/lib/
leak_tracker_flutter_testing
-3.1
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/leak_tracker_flutter_testing-2.0.1/
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/leak_tracker_flutter_testing-2.0.1/lib/
+3.2
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/leak_tracker_flutter_testing-3.0.5/
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/leak_tracker_flutter_testing-3.0.5/lib/
leak_tracker_testing
-3.1
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/leak_tracker_testing-2.0.1/
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/leak_tracker_testing-2.0.1/lib/
+3.2
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/leak_tracker_testing-3.0.1/
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/leak_tracker_testing-3.0.1/lib/
lints
-3.0
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/lints-3.0.0/
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/lints-3.0.0/lib/
+3.5
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/lints-5.0.0/
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/lints-5.0.0/lib/
logging
-2.18
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/logging-1.1.1/
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/logging-1.1.1/lib/
+2.19
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/logging-1.2.0/
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/logging-1.2.0/lib/
+macros
+3.4
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/macros-0.1.2-main.4/
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/macros-0.1.2-main.4/lib/
matcher
3.0
file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/matcher-0.12.16+1/
file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/matcher-0.12.16+1/lib/
material_color_utilities
2.17
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/material_color_utilities-0.8.0/
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/material_color_utilities-0.8.0/lib/
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/material_color_utilities-0.11.1/
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/material_color_utilities-0.11.1/lib/
meta
2.12
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/meta-1.11.0/
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/meta-1.11.0/lib/
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/meta-1.15.0/
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/meta-1.15.0/lib/
mockito
3.1
file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/mockito-5.4.4/
file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/mockito-5.4.4/lib/
mocktail
2.12
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/mocktail-1.0.3/
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/mocktail-1.0.3/lib/
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/mocktail-1.0.4/
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/mocktail-1.0.4/lib/
package_config
2.12
file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/package_config-2.1.0/
@@ -136,12 +140,12 @@ file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/plugin_platform_interface
file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/plugin_platform_interface-2.1.8/lib/
pub_semver
2.17
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/pub_semver-2.1.3/
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/pub_semver-2.1.3/lib/
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/pub_semver-2.1.4/
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/pub_semver-2.1.4/lib/
source_gen
-2.18
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/source_gen-1.2.7/
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/source_gen-1.2.7/lib/
+3.0
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/source_gen-1.5.0/
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/source_gen-1.5.0/lib/
source_span
2.18
file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/source_span-1.10.0/
@@ -163,39 +167,43 @@ term_glyph
file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/term_glyph-1.2.1/
file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/term_glyph-1.2.1/lib/
test_api
-3.0
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/test_api-0.6.1/
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/test_api-0.6.1/lib/
+3.2
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/test_api-0.7.2/
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/test_api-0.7.2/lib/
typed_data
-2.12
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/typed_data-1.3.1/
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/typed_data-1.3.1/lib/
+2.17
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/typed_data-1.3.2/
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/typed_data-1.3.2/lib/
vector_math
2.14
file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/vector_math-2.1.4/
file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/vector_math-2.1.4/lib/
vm_service
-3.0
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/vm_service-13.0.0/
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/vm_service-13.0.0/lib/
+3.3
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/vm_service-14.2.5/
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/vm_service-14.2.5/lib/
watcher
-2.14
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/watcher-1.0.2/
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/watcher-1.0.2/lib/
+3.0
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/watcher-1.1.0/
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/watcher-1.1.0/lib/
yaml
-2.12
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/yaml-3.1.1/
-file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/yaml-3.1.1/lib/
+2.19
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/yaml-3.1.2/
+file:///Users/rafaelsetragni/.pub-cache/hosted/pub.dev/yaml-3.1.2/lib/
+_macros
+3.4
+file:///Users/rafaelsetragni/Development/flutter/bin/cache/dart-sdk/pkg/_macros/
+file:///Users/rafaelsetragni/Development/flutter/bin/cache/dart-sdk/pkg/_macros/lib/
sky_engine
3.2
file:///Users/rafaelsetragni/Development/flutter/bin/cache/pkg/sky_engine/
file:///Users/rafaelsetragni/Development/flutter/bin/cache/pkg/sky_engine/lib/
flutter
-3.2
+3.3
file:///Users/rafaelsetragni/Development/flutter/packages/flutter/
file:///Users/rafaelsetragni/Development/flutter/packages/flutter/lib/
flutter_test
-3.2
+3.3
file:///Users/rafaelsetragni/Development/flutter/packages/flutter_test/
file:///Users/rafaelsetragni/Development/flutter/packages/flutter_test/lib/
flutter_web_plugins
diff --git a/.dart_tool/version b/.dart_tool/version
index e1c807ff..ffba2c8d 100644
--- a/.dart_tool/version
+++ b/.dart_tool/version
@@ -1 +1 @@
-3.19.3
\ No newline at end of file
+3.24.3
\ No newline at end of file
diff --git a/.idea/caches/deviceStreaming.xml b/.idea/caches/deviceStreaming.xml
new file mode 100644
index 00000000..821dc38d
--- /dev/null
+++ b/.idea/caches/deviceStreaming.xml
@@ -0,0 +1,329 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 374f537c..a24cfdff 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,5 +1,5 @@
-
+
diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml
new file mode 100644
index 00000000..931b96c3
--- /dev/null
+++ b/.idea/runConfigurations.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 65ee44bc..fe371580 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -1,21 +1,13 @@
-
-
-
-
-
-
-
-
-
+
+
-
-
+
@@ -25,275 +17,87 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ {
+ "lastFilter": {
+ "state": "OPEN",
+ "assignee": "rafaelsetragni"
+ }
+}
+ {
+ "selectedUrlAndAccountId": {
+ "url": "https://github.com/rafaelsetragni/awesome_notifications.git",
+ "accountId": "510c4025-01b4-4b98-a402-16f41c3e0980"
+ }
+}
{
+ "customColor": "",
"associatedIndex": 1
}
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
+
+
-
-
-
-
-
- 1664150949332
+
+ 1728921929474
- 1664150949332
+ 1728921929474
-
-
-
-
-
-
-
-
-
- file://$PROJECT_DIR$/example/android/awn_core/src/main/java/me/carda/awesome_notifications/core/models/NotificationContentModel.java
- 140
-
-
-
- file://$PROJECT_DIR$/example/android/awn_core/src/main/java/me/carda/awesome_notifications/core/builders/NotificationBuilder.java
- 580
-
-
-
- file://$PROJECT_DIR$/example/android/awn_core/src/main/java/me/carda/awesome_notifications/core/models/NotificationContentModel.java
- 205
-
-
-
- file://$PROJECT_DIR$/android/src/main/java/me/carda/awesome_notifications/AwesomeNotificationsPlugin.java
- 1379
-
-
-
- file://$PROJECT_DIR$/lib/src/models/notification_android_crontab.dart
- 163
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5bf8c16a..b08b046d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,14 +1,38 @@
-## [0.9.3+1] - 2024-15-03
+## [0.10.0] - 2024-10-14
+### Added
+- **Support to AGP 8:** Added new proguard rules to allow SQLite database, used to capture notification events and schedules, to work with AGP 8.
+- **Example app updated to support Flutter 3.19:** The flutter example was updated to fully support Flutter 3.24 with new Gradle Java Standards.
+- **Firebase dependencies updated:** All Firebase dependencies was updated to support Firebase core 3.0.0.
+- **Intervals changed to Duration type:** The inteval value was changed from int (sec) to Duration, allowing a better understanding of time reading the code.
+- **Documentation Updated:** Documentation updated to also include AndroidManifest instructions to recreate schedules when the device is restarted.
+### Fixed
+- **MediaPlayer Album Art Resolution Fix:** Addressed an issue where album art was displaying at reduced resolution on Android 14 devices. Album artwork now renders clearly and crisply, improving the visual quality of the media player.
+### Removals
+- **Gson Library Removal:** Removed the Gson library due to compatibility issues with Android's latest releases and the R8 minification process. Transitioned to a more robust serialization framework that better supports obfuscation and modern Android versions.
+### Breaking changes
+- **Minimal supported Android version increased to 23:** The minimal android supported is now 23 (Android 6), since some encryption and security features rely on this minimal version.
+- **Minimum iOS Deployment Target Increased to 12:** The minimum iOS deployment target has been increased to iOS 12 to leverage newer API capabilities and enhance app security and performance.
+- **Necessity to Manually Add Permissions in AndroidManifest.xml:** Projects will now need to manually declare the following permissions in their AndroidManifest.xml in case needed:
+ - `android.permission.VIBRATE`
+ - `android.permission.SCHEDULE_EXACT_ALARM`
+ - `android.permission.USE_FULL_SCREEN_INTENT`
+ - `android.permission.WAKE_LOCK`
+ - `android.permission.FOREGROUND_SERVICE`
+ - `android.permission.RECEIVE_BOOT_COMPLETED`
+### Deprecated
+- **weekOfMonth** parameter is deprecated and scheduled for removal in a future release due to unimplemented dependencies expected in versions beyond 1.0.0. It may be reconsidered for inclusion in later versions.
+
+## [0.9.3+1] - 2024-03-15
### Transition Support from Github to Discord Community
- **GitHub Issues Closure**: Effective immediately, GitHub issues will no longer be open for new support requests. Existing issues will remain accessible as an archive and resource.
- **Discord Community Support**: All support for Awesome Notifications has transitioned to our Discord community. This move aims to provide a more dynamic, interactive, and efficient support experience.
- **Reasons for Change**:
- - *Community Rules Respect*: Numerous issues posted on GitHub have not adhered to our community guidelines, impacting heavily on support efficiency and effectiveness.
- - *Efficiency and Effectiveness*: Managing support through GitHub has become exceedingly time-consuming, particularly when posts omit critical information or disregard guidelines.
- - *Quality of Support*: Our Discord community allows for real-time engagement, resource sharing, and a closer-knit user and developer interaction, which wasn't true for GitHub.
+ - *Community Rules Respect*: Numerous issues posted on GitHub have not adhered to our community guidelines, impacting heavily on support efficiency and effectiveness.
+ - *Efficiency and Effectiveness*: Managing support through GitHub has become exceedingly time-consuming, particularly when posts omit critical information or disregard guidelines.
+ - *Quality of Support*: Our Discord community allows for real-time engagement, resource sharing, and a closer-knit user and developer interaction, which wasn't true for GitHub.
- **Next Steps for Users**: We encourage all users to join our Discord community [https://discord.awesome-notifications.carda.me/](https://discord.awesome-notifications.carda.me/) for ongoing support, updates, and to connect with fellow users and the development team.
-## [0.9.3] - 2024-15-03
+## [0.9.3] - 2024-03-15
### Added
- **Double Check in Lost Events Manager:** Implemented a double-check for `createdDate` and `displayedDate` fields to enhance the stability of the Awesome Notifications framework.
- **Image Support for iOS Notifications:** Expanded image support to all notification layouts on the iOS platform, enabling a richer user experience.
@@ -26,12 +50,12 @@
- **iOS Core Version Bumped to 0.9.3:** Updated the iOS core version to 0.9.3 to align with the latest enhancements and fixes.
- **Android Core Dependencies Updated to 0.9.3:** The Android core dependencies have been updated to reflect the latest improvements, security patches, and new features.
-## [0.9.2] - 2024-17-01
+## [0.9.2] - 2024-01-17
### Added
- **Cancel schedule for iOS:** The feature `cancelSchedule` was added to iOS platform.
- **Example app updated:** The example app was updated to reflect the last changes.
-## [0.9.1] - 2024-11-01
+## [0.9.1] - 2024-01-11
### Breaking Changes
- **Progress Property Now Double:** The `progress` property in `NotificationContent` has been changed from `int` to `double`. This modification enhances the precision of progress values in notifications.
@@ -43,7 +67,7 @@
- **Default Values for MediaPlayer Properties:** Introduced default values for new media player properties like `duration`, `playState`, and `playSpeed`. This change aims to eliminate null exceptions and improve reliability.
-## [0.9.0] - 01/02/2024
+## [0.9.0] - 2024-01-02
### Breaking Changes
- **Pod modifications:** Now it's necessary to also add Awesome Notifications pod modification inside `PodFile` at iOS folder.
- **Receive port and send port:** The methods `sendPort.send()` and `receivePort!.listen()` now only accept serialized data, not objects. Convert your data to a map format and reconstruct it later from this format.
@@ -431,4 +455,4 @@
* Adjusting the plugin content to pub.dev patterns
## [0.0.1]
-* Initial release.
\ No newline at end of file
+* Initial release.
diff --git a/README.md b/README.md
index 963aa62f..e33a46b1 100644
--- a/README.md
+++ b/README.md
@@ -123,6 +123,18 @@ We are constantly working to improve Awesome Notifications and provide support f
## 🚚 Migration Guides from Older Versions
### Breaking Changes
+### From Version 0.9.X to 0.10.X:
+
+- **Increased Minimum iOS Deployment Target:** The minimum iOS deployment target has been increased to iOS 12. This change aligns with the use of newer iOS APIs and enhances both security and performance.
+- **Increased Minimum Android SDK to 23:** Raised the minimum supported Android version to SDK 23 (Android 6.0 Marshmallow) to utilize advanced security and encryption features, enhancing the app's overall security posture.
+- **Necessity to Manually Add Permissions in AndroidManifest (Android):** Projects will now need to manually declare the following permissions in their AndroidManifest.xml:
+ - `android.permission.VIBRATE`: To enable vibration when a new notification arrives.
+ - `android.permission.SCHEDULE_EXACT_ALARM`: To execute precise notification alarms.
+ - `android.permission.USE_FULL_SCREEN_INTENT`: To call the application in full screen instead of only displaying the notification.
+ - `android.permission.WAKE_LOCK`: To wake up the screen on a new notification if the device is sleeping.
+ - `android.permission.FOREGROUND_SERVICE`: To use foreground services to automatically close notifications when the app is terminated.
+ - `android.permission.RECEIVE_BOOT_COMPLETED`: To reschedule notifications if the app was rebooted.
+
### From Version 0.8.X to 0.9.X:
- **Awesome Notifications Podfile Modification:**
@@ -232,6 +244,7 @@ We are constantly working to improve Awesome Notifications and provide support f
- [🛑 ATTENTION: Third-Party Plugin Restrictions](#-attention-third-party-plugin-restrictions)
- [🚚 Migration Guides from Older Versions](#-migration-guides-from-older-versions)
- [Breaking Changes](#breaking-changes)
+ - [From Version 0.9.X to 0.10.X:](#from-version-09x-to-010x)
- [From Version 0.8.X to 0.9.X:](#from-version-08x-to-09x)
- [from version 0.6.X to 0.7.X:](#from-version-06x-to-07x)
- [📙 Table of Contents](#-table-of-contents)
@@ -322,8 +335,19 @@ To use the `awesome_notifications`, follow these steps:
```yaml
dependencies:
-awesome_notifications_core: ^0.9.0 # <~ always ensure to use the latest version
-awesome_notifications: any # <~ this version is managed by awesome_notifications_core package
+ # Awesome plugins for local notifications
+ awesome_notifications_core: ^0.10.0 # use the latest core version available
+ awesome_notifications: ^0.10.0 # This version is managed by core plugin
+
+ # Awesome plugins for remote push notifications
+ awesome_notifications_fcm: ^0.10.0 # This version is managed by core plugin
+ # Attention:
+ # The firebase_messaging plugin is not necessary. awesome_notifications_fcm is a replacement for it
+ # firebase_messaging: ^X.X.X
+
+ # Firebase plugins, in case you intent to use Push Notifications with awesome packages
+ firebase_core: ^X.X.X # use the latest available
+ firebase_crashlytics: ^X.X.X # use the latest available
```
After adding the dependency, run the following command to get the package:
@@ -338,13 +362,13 @@ Now you need to modify some files in native libraries to meet to use awesome_not
### 🤖 Configuring Android for Awesome Notifications:
-1 - Is required the minimum android SDK to 21 (Android 5.0 Lollipop), Grade 7.3.0 or greater and Java compiled SDK Version to 34 (Android 14). You can change the `minSdkVersion` to 21 and the `compileSdkVersion` and `targetSdkVersion` to 34, inside the file `build.gradle`, located inside "android/app/" folder.
+1 - Is required the minimum android SDK to 23 (Android 6.0 Lollipop), Grade 8.1.1 or greater and Java compiled SDK Version to 34 (Android 14). You can change the `minSdkVersion` to 23 and the `compileSdkVersion` and `targetSdkVersion` to 34, inside the file `build.gradle`, located inside "android/app/" folder.
```Gradle
buildscript {
...
dependencies {
- classpath 'com.android.tools.build:gradle:7.3.0'
+ classpath 'com.android.tools.build:gradle:8.1.1'
}
}
@@ -352,7 +376,7 @@ android {
compileSdkVersion 34
defaultConfig {
- minSdkVersion 21
+ minSdkVersion 23
targetSdkVersion 34
...
}
@@ -1213,6 +1237,26 @@ await AwesomeNotifications().createNotification(
schedule: NotificationCalendar.fromDate(date: scheduleTime));
```
+Also, to allow the schedules to be recreated when the device is restarted, you need to add these permissions and these listeners on your AndroidManifest file:
+```xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
@@ -1561,7 +1605,6 @@ Here's an example of how to add these properties to your `AndroidManifest.xml` f
; }
+
+# Retain generic signatures of TypeToken and its subclasses with R8 version 3.0 and higher.
+-keep,allowobfuscation,allowshrinking class com.google.gson.reflect.TypeToken
+-keep,allowobfuscation,allowshrinking class * extends com.google.gson.reflect.TypeToken
+
+# Prevent R8 from nullifying Data object members annotated with SerializedName
+-keepclassmembers,allowobfuscation class * {
+ @com.google.gson.annotations.SerializedName ;
+}
\ No newline at end of file
diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml
index be626852..7c5dd3cd 100644
--- a/android/src/main/AndroidManifest.xml
+++ b/android/src/main/AndroidManifest.xml
@@ -1,10 +1,7 @@
-
-
+
-
-
diff --git a/android/src/main/java/me/carda/awesome_notifications/AwesomeNotificationsPlugin.java b/android/src/main/java/me/carda/awesome_notifications/AwesomeNotificationsPlugin.java
index 3d4e9d99..1d5061cc 100644
--- a/android/src/main/java/me/carda/awesome_notifications/AwesomeNotificationsPlugin.java
+++ b/android/src/main/java/me/carda/awesome_notifications/AwesomeNotificationsPlugin.java
@@ -19,7 +19,6 @@
import io.flutter.plugin.common.MethodChannel.MethodCallHandler;
import io.flutter.plugin.common.MethodChannel.Result;
import io.flutter.plugin.common.PluginRegistry;
-import io.flutter.plugin.common.PluginRegistry.Registrar;
import me.carda.awesome_notifications.core.AwesomeNotifications;
import me.carda.awesome_notifications.core.Definitions;
import me.carda.awesome_notifications.core.completion_handlers.BitmapCompletionHandler;
@@ -107,21 +106,6 @@ public void onNewAwesomeEvent(String eventType, Map content) {
private final StringUtils stringUtils = StringUtils.getInstance();
- // https://flutter.dev/docs/development/packages-and-plugins/plugin-api-migration
- // FOR OLDER FLUTTER VERSIONS (1.11 releases and bellow)
- public static void registerWith(Registrar registrar) {
-
- AwesomeNotificationsPlugin awesomeNotificationsPlugin
- = new AwesomeNotificationsPlugin();
-
- awesomeNotificationsPlugin.AttachAwesomeNotificationsPlugin(
- registrar.context(),
- new MethodChannel(
- registrar.messenger(),
- Definitions.CHANNEL_FLUTTER_PLUGIN
- ));
- }
-
// FOR NEWER FLUTTER VERSIONS (1.12 releases and above)
@Override
public void onAttachedToEngine(@NonNull FlutterPluginBinding flutterPluginBinding) {
diff --git a/android/src/main/java/me/carda/awesome_notifications/FlutterBitmapUtils.java b/android/src/main/java/me/carda/awesome_notifications/FlutterBitmapUtils.java
index 88c0051c..97a075dc 100644
--- a/android/src/main/java/me/carda/awesome_notifications/FlutterBitmapUtils.java
+++ b/android/src/main/java/me/carda/awesome_notifications/FlutterBitmapUtils.java
@@ -9,7 +9,7 @@
import java.io.InputStream;
-import io.flutter.view.FlutterMain;
+import io.flutter.FlutterInjector;
import me.carda.awesome_notifications.core.utils.BitmapUtils;
public class FlutterBitmapUtils extends BitmapUtils {
@@ -43,7 +43,9 @@ public Bitmap getBitmapFromAsset(Context context, String bitmapPath) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
inputStream = context.getAssets().open("flutter_assets/" + bitmapPath);
} else {
- String assetLookupKey = FlutterMain.getLookupKeyForAsset(bitmapPath);
+ String assetLookupKey = FlutterInjector.instance()
+ .flutterLoader()
+ .getLookupKeyForAsset(bitmapPath);
AssetManager assetManager = context.getAssets();
AssetFileDescriptor assetFileDescriptor = assetManager.openFd(assetLookupKey);
inputStream = assetFileDescriptor.createInputStream();
diff --git a/awesome_notifications.iml b/awesome_notifications.iml
index 18de19ef..7a3c61e0 100644
--- a/awesome_notifications.iml
+++ b/awesome_notifications.iml
@@ -4533,6 +4533,384 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/coverage/lcov.info b/coverage/lcov.info
index 97779144..f9501209 100644
--- a/coverage/lcov.info
+++ b/coverage/lcov.info
@@ -273,112 +273,112 @@ LF:12
LH:12
end_of_record
SF:lib/awesome_notifications.dart
-DA:67,4
-DA:68,2
+DA:68,4
DA:69,2
DA:70,2
DA:71,2
-DA:74,1
-DA:76,13
-DA:78,1
-DA:80,2
-DA:83,1
-DA:85,2
-DA:88,1
-DA:90,2
-DA:93,1
-DA:95,1
+DA:72,2
+DA:75,1
+DA:77,13
+DA:79,1
+DA:81,2
+DA:84,1
+DA:86,2
+DA:89,1
+DA:91,2
+DA:94,1
DA:96,1
-DA:99,1
-DA:101,1
+DA:97,1
+DA:100,1
DA:102,1
-DA:105,1
-DA:107,2
-DA:110,1
-DA:112,1
+DA:103,1
+DA:106,1
+DA:108,2
+DA:111,1
DA:113,1
-DA:116,1
-DA:118,1
+DA:114,1
+DA:117,1
DA:119,1
-DA:122,1
-DA:132,1
+DA:120,1
+DA:123,1
DA:133,1
-DA:136,1
-DA:143,2
-DA:150,1
-DA:152,1
+DA:134,1
+DA:137,1
+DA:144,2
+DA:151,1
DA:153,1
-DA:156,1
-DA:158,2
-DA:161,1
-DA:163,2
-DA:166,1
-DA:168,2
-DA:171,1
-DA:173,1
+DA:154,1
+DA:157,1
+DA:159,2
+DA:162,1
+DA:164,2
+DA:167,1
+DA:169,2
+DA:172,1
DA:174,1
-DA:177,1
-DA:179,1
+DA:175,1
+DA:178,1
DA:180,1
-DA:183,1
-DA:185,2
-DA:188,1
-DA:190,2
-DA:193,1
-DA:195,2
-DA:198,1
-DA:201,2
-DA:206,1
-DA:208,2
-DA:211,1
-DA:213,2
-DA:216,1
-DA:219,1
+DA:181,1
+DA:184,1
+DA:186,2
+DA:189,1
+DA:191,2
+DA:194,1
+DA:196,2
+DA:199,1
+DA:202,2
+DA:207,1
+DA:209,2
+DA:212,1
+DA:214,2
+DA:217,1
DA:220,1
-DA:223,1
-DA:225,2
-DA:228,1
-DA:230,2
-DA:233,1
-DA:241,2
-DA:246,1
-DA:248,2
-DA:251,1
-DA:253,2
-DA:256,1
-DA:258,2
-DA:261,1
-DA:271,1
+DA:221,1
+DA:224,1
+DA:226,2
+DA:229,1
+DA:231,2
+DA:234,1
+DA:242,2
+DA:247,1
+DA:249,2
+DA:252,1
+DA:254,2
+DA:257,1
+DA:259,2
+DA:262,1
DA:272,1
-DA:278,1
-DA:280,2
-DA:283,1
-DA:286,1
+DA:273,1
+DA:279,1
+DA:281,2
+DA:284,1
DA:287,1
-DA:290,1
-DA:292,2
-DA:295,1
-DA:301,2
-DA:309,1
-DA:319,2
-DA:325,1
-DA:327,2
-DA:330,1
-DA:332,2
-DA:335,1
-DA:337,1
+DA:288,1
+DA:291,1
+DA:293,2
+DA:296,1
+DA:302,2
+DA:310,1
+DA:320,2
+DA:326,1
+DA:328,2
+DA:331,1
+DA:333,2
+DA:336,1
DA:338,1
-DA:341,1
-DA:343,2
-DA:346,1
-DA:348,1
+DA:339,1
+DA:342,1
+DA:344,2
+DA:347,1
DA:349,1
-DA:352,1
-DA:354,1
+DA:350,1
+DA:353,1
DA:355,1
-DA:358,1
-DA:360,1
+DA:356,1
+DA:359,1
DA:361,1
+DA:362,1
LF:106
LH:106
end_of_record
@@ -829,6 +829,19 @@ DA:26,1
LF:2
LH:2
end_of_record
+SF:lib/src/enumerators/notification_play_state.dart
+DA:63,3
+DA:64,4
+DA:66,2
+DA:68,2
+DA:69,2
+DA:70,9
+DA:72,2
+DA:73,10
+DA:75,4
+LF:9
+LH:9
+end_of_record
SF:lib/src/exceptions/awesome_exception.dart
DA:3,401
DA:5,1
@@ -1043,22 +1056,21 @@ LF:96
LH:96
end_of_record
SF:lib/src/models/notification_calendar.dart
-DA:56,3
-DA:72,3
-DA:75,3
-DA:76,1
-DA:81,1
-DA:86,1
-DA:87,1
+DA:58,3
+DA:74,3
+DA:77,3
+DA:78,1
+DA:83,1
DA:88,1
-DA:90,2
-DA:91,2
+DA:89,1
+DA:90,1
DA:92,2
DA:93,2
DA:94,2
DA:95,2
-DA:99,2
-DA:101,4
+DA:96,2
+DA:97,2
+DA:101,2
DA:103,4
DA:105,4
DA:107,4
@@ -1068,13 +1080,12 @@ DA:113,4
DA:115,4
DA:117,4
DA:119,4
-DA:122,2
-DA:125,2
-DA:134,2
+DA:121,4
+DA:124,2
+DA:127,2
DA:136,2
-DA:137,4
DA:138,2
-DA:139,2
+DA:139,4
DA:140,2
DA:141,2
DA:142,2
@@ -1083,23 +1094,23 @@ DA:144,2
DA:145,2
DA:146,2
DA:147,2
-DA:154,1
-DA:156,3
-DA:163,2
+DA:148,2
+DA:149,2
+DA:156,1
+DA:158,3
DA:165,2
-DA:166,2
DA:167,2
DA:168,2
DA:169,2
DA:170,2
DA:171,2
-DA:172,1
-DA:173,1
+DA:172,2
+DA:173,2
DA:174,1
-DA:179,2
-DA:180,1
-DA:183,4
-DA:184,4
+DA:175,1
+DA:176,1
+DA:181,2
+DA:182,1
DA:185,4
DA:186,4
DA:187,4
@@ -1108,6 +1119,8 @@ DA:189,4
DA:190,4
DA:191,4
DA:192,4
+DA:193,4
+DA:194,4
LF:65
LH:65
end_of_record
@@ -1120,12 +1133,12 @@ DA:29,6
DA:33,3
DA:42,4
DA:44,4
-DA:45,12
+DA:45,16
DA:49,2
DA:51,6
DA:57,3
DA:59,6
-DA:64,5
+DA:64,6
LF:14
LH:14
end_of_record
@@ -1169,8 +1182,8 @@ DA:68,4
DA:69,4
DA:70,4
DA:77,12
-DA:80,6
-DA:81,6
+DA:80,7
+DA:81,7
DA:85,4
DA:88,6
DA:89,2
@@ -1178,8 +1191,8 @@ DA:90,4
DA:91,2
DA:92,4
DA:93,5
-DA:99,6
-DA:100,1
+DA:99,7
+DA:100,2
DA:103,6
DA:104,2
DA:105,2
@@ -1187,7 +1200,7 @@ DA:107,2
DA:109,2
DA:111,2
DA:119,13
-DA:120,10
+DA:120,9
DA:121,10
DA:124,13
DA:125,6
@@ -1203,9 +1216,9 @@ DA:138,2
DA:141,8
DA:142,2
DA:147,13
-DA:150,4
-DA:151,4
-DA:152,4
+DA:150,7
+DA:151,10
+DA:152,10
DA:154,13
DA:156,9
DA:157,7
@@ -1382,19 +1395,6 @@ DA:27,4
LF:15
LH:15
end_of_record
-SF:lib/src/enumerators/notification_play_state.dart
-DA:63,3
-DA:64,4
-DA:66,2
-DA:68,2
-DA:69,2
-DA:70,9
-DA:72,2
-DA:73,10
-DA:75,4
-LF:9
-LH:9
-end_of_record
SF:lib/src/models/base_notification_content.dart
DA:57,6
DA:60,4
diff --git a/example/.metadata b/example/.metadata
new file mode 100644
index 00000000..c689480b
--- /dev/null
+++ b/example/.metadata
@@ -0,0 +1,30 @@
+# This file tracks properties of this Flutter project.
+# Used by Flutter tool to assess capabilities and perform upgrades etc.
+#
+# This file should be version controlled and should not be manually edited.
+
+version:
+ revision: "2663184aa79047d0a33a14a3b607954f8fdd8730"
+ channel: "stable"
+
+project_type: app
+
+# Tracks metadata for the flutter migrate command
+migration:
+ platforms:
+ - platform: root
+ create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
+ base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
+ - platform: android
+ create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
+ base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
+
+ # User provided section
+
+ # List of Local paths (relative to this file) that should be
+ # ignored by the migrate tool.
+ #
+ # Files that are not part of the templates will be ignored by default.
+ unmanaged_files:
+ - 'lib/main.dart'
+ - 'ios/Runner.xcodeproj/project.pbxproj'
diff --git a/example/android/.gitignore b/example/android/.gitignore
index 6f568019..55afd919 100644
--- a/example/android/.gitignore
+++ b/example/android/.gitignore
@@ -7,7 +7,7 @@ gradle-wrapper.jar
GeneratedPluginRegistrant.java
# Remember to never publicly share your keystore.
-# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
+# See https://flutter.dev/to/reference-keystore
key.properties
**/*.keystore
**/*.jks
diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle
index 4075bada..c7f0a839 100644
--- a/example/android/app/build.gradle
+++ b/example/android/app/build.gradle
@@ -1,60 +1,59 @@
-def localProperties = new Properties()
-def localPropertiesFile = rootProject.file('local.properties')
-if (localPropertiesFile.exists()) {
- localPropertiesFile.withReader('UTF-8') { reader ->
- localProperties.load(reader)
- }
-}
-
-def flutterRoot = localProperties.getProperty('flutter.sdk')
-if (flutterRoot == null) {
- throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
-}
-
-def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
-if (flutterVersionCode == null) {
- flutterVersionCode = '1'
+plugins {
+ id "com.android.application"
+ id "kotlin-android"
+ // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
+ id "dev.flutter.flutter-gradle-plugin"
}
-def flutterVersionName = localProperties.getProperty('flutter.versionName')
-if (flutterVersionName == null) {
- flutterVersionName = '1.0'
-}
-
-apply plugin: 'com.android.application'
-apply plugin: 'kotlin-android'
-apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
-
android {
namespace 'me.carda.awesome_notifications_example'
- compileSdkVersion 34 //flutter.compileSdkVersion
- ndkVersion flutter.ndkVersion
+ compileSdk = 34 //flutter.compileSdkVersion
+ ndkVersion = flutter.ndkVersion
compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
+ sourceCompatibility = JavaVersion.VERSION_1_8
+ targetCompatibility = JavaVersion.VERSION_1_8
+ }
+
+ kotlinOptions {
+ jvmTarget = JavaVersion.VERSION_1_8
}
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "me.carda.awesome_notifications_example"
// You can update the following values to match your application needs.
- // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration.
- minSdkVersion 21 //flutter.minSdkVersion
- targetSdkVersion 34 //flutter.targetSdkVersion
- versionCode flutterVersionCode.toInteger()
- versionName flutterVersionName
+ // For more information, see: https://flutter.dev/to/review-gradle-config.
+ minSdk = 23 //flutter.minSdkVersion
+ targetSdk = 34 //flutter.targetSdkVersion
+ versionCode = flutter.versionCode
+ versionName = flutter.versionName
}
buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
- signingConfig signingConfigs.debug
+ signingConfig = signingConfigs.debug
+
+ debuggable false
+ minifyEnabled true
+ proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
+
+ }
+ profile {
+ // TODO: Add your own signing config for the release build.
+ // Signing with the debug keys for now, so `flutter run --release` works.
+ signingConfig = signingConfigs.debug
+
+ debuggable false
+ minifyEnabled true
+ proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
+
}
}
}
flutter {
- source '../..'
+ source = "../.."
}
diff --git a/example/android/app/proguard-rules.pro b/example/android/app/proguard-rules.pro
new file mode 100644
index 00000000..e9fcc71c
--- /dev/null
+++ b/example/android/app/proguard-rules.pro
@@ -0,0 +1,29 @@
+# https://github.com/flutter/flutter/issues/78625#issuecomment-804164524
+#-keep class io.flutter.app.** { *; }
+-keep class io.flutter.plugin.** { *; }
+-keep class io.flutter.util.** { *; }
+-keep class io.flutter.view.** { *; }
+#-keep class io.flutter.** { *; }
+-keep class io.flutter.plugins.** { *; }
+
+# Keep necessary SQLite and SQLCipher classes
+-keep class org.sqlite.** { *; }
+-keep class org.sqlite.database.** { *; }
+-keep,includedescriptorclasses class net.sqlcipher.** { *; }
+-keep,includedescriptorclasses interface net.sqlcipher.** { *; }
+
+# Keep all public and protected classes in awesome packages
+-keep class me.carda.** { *; }
+
+-keep class com.google.gson.reflect.TypeToken
+-keep class * extends com.google.gson.reflect.TypeToken
+-keep public class * implements java.lang.reflect.Type
+
+# Retain generic signatures of TypeToken and its subclasses with R8 version 3.0 and higher.
+-keep,allowobfuscation,allowshrinking class com.google.gson.reflect.TypeToken
+-keep,allowobfuscation,allowshrinking class * extends com.google.gson.reflect.TypeToken
+
+# Keep all public and protected classes in awesome packages
+-dontwarn com.google.**
+-dontwarn javax.annotation.Nullable
+-dontwarn javax.annotation.concurrent.GuardedBy
\ No newline at end of file
diff --git a/example/android/app/src/debug/AndroidManifest.xml b/example/android/app/src/debug/AndroidManifest.xml
index 07964867..399f6981 100644
--- a/example/android/app/src/debug/AndroidManifest.xml
+++ b/example/android/app/src/debug/AndroidManifest.xml
@@ -1,5 +1,4 @@
-
+
-
-
-
@@ -53,4 +51,15 @@
android:name="flutterEmbedding"
android:value="2" />
+
+
+
+
+
+
+
diff --git a/example/android/app/src/main/java/me/carda/awesome_notifications_example/MainActivity.java b/example/android/app/src/main/java/me/carda/awesome_notifications_example/MainActivity.java
deleted file mode 100644
index ba285051..00000000
--- a/example/android/app/src/main/java/me/carda/awesome_notifications_example/MainActivity.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package me.carda.awesome_notifications_example;
-
-import io.flutter.embedding.android.FlutterActivity;
-
-public class MainActivity extends FlutterActivity {
-}
diff --git a/example/android/app/src/main/kotlin/me/carda/awesome_notifications_example/MainActivity.kt b/example/android/app/src/main/kotlin/me/carda/awesome_notifications_example/MainActivity.kt
new file mode 100644
index 00000000..ebe57f79
--- /dev/null
+++ b/example/android/app/src/main/kotlin/me/carda/awesome_notifications_example/MainActivity.kt
@@ -0,0 +1,5 @@
+package me.carda.awesome_notifications_example
+
+import io.flutter.embedding.android.FlutterActivity
+
+class MainActivity: FlutterActivity()
diff --git a/example/android/app/src/profile/AndroidManifest.xml b/example/android/app/src/profile/AndroidManifest.xml
index 07964867..399f6981 100644
--- a/example/android/app/src/profile/AndroidManifest.xml
+++ b/example/android/app/src/profile/AndroidManifest.xml
@@ -1,5 +1,4 @@
-
+