diff --git a/packages/flutter_local_notifications/flutter_local_notifications_aurora/.gitignore b/packages/flutter_local_notifications/flutter_local_notifications_aurora/.gitignore
new file mode 100644
index 0000000..96486fd
--- /dev/null
+++ b/packages/flutter_local_notifications/flutter_local_notifications_aurora/.gitignore
@@ -0,0 +1,30 @@
+# Miscellaneous
+*.class
+*.log
+*.pyc
+*.swp
+.DS_Store
+.atom/
+.buildlog/
+.history
+.svn/
+migrate_working_dir/
+
+# IntelliJ related
+*.iml
+*.ipr
+*.iws
+.idea/
+
+# The .vscode folder contains launch configuration and tasks you configure in
+# VS Code which you may wish to be included in version control, so this line
+# is commented out by default.
+#.vscode/
+
+# Flutter/Dart/Pub related
+# Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock.
+/pubspec.lock
+**/doc/api/
+.dart_tool/
+.packages
+build/
diff --git a/packages/flutter_local_notifications/flutter_local_notifications_aurora/README.md b/packages/flutter_local_notifications/flutter_local_notifications_aurora/README.md
new file mode 100644
index 0000000..f448908
--- /dev/null
+++ b/packages/flutter_local_notifications/flutter_local_notifications_aurora/README.md
@@ -0,0 +1,35 @@
+# flutter_local_notifications_aurora
+
+The Aurora implementation of [flutter_local_notifications](https://pub.dev/packages/flutter_local_notifications).
+
+## Usage
+This package is not an _endorsed_ implementation of `flutter_local_notifications`.
+Therefore, you have to include `flutter_local_notifications_aurora` alongside `flutter_local_notifications` as dependencies in your `pubspec.yaml` file.
+
+**pubspec.yaml**
+
+```yaml
+dependencies:
+ flutter_local_notifications: 14.0.0+2
+ flutter_local_notifications_aurora:
+ path: # path to folder with plugin
+```
+
+***.dart**
+
+```dart
+import 'package:flutter_local_notifications/flutter_local_notifications.dart';
+
+final notificationID = 1;
+
+final FlutterLocalNotificationsPlugin notification = FlutterLocalNotificationsPlugin();
+
+await flutterLocalNotificationsPlugin.show(
+ notificationID,
+ "Title notification",
+ "My long body text notification",
+ null,
+);
+
+await flutterLocalNotificationsPlugin.cancel(notificationID);
+```
diff --git a/packages/flutter_local_notifications/flutter_local_notifications_aurora/analysis_options.yaml b/packages/flutter_local_notifications/flutter_local_notifications_aurora/analysis_options.yaml
new file mode 100644
index 0000000..566c597
--- /dev/null
+++ b/packages/flutter_local_notifications/flutter_local_notifications_aurora/analysis_options.yaml
@@ -0,0 +1,4 @@
+# Copyright (c) 2023. Open Mobile Platform LLC.
+# License: Proprietary.
+
+include: package:flutter_lints/flutter.yaml
diff --git a/packages/flutter_local_notifications/flutter_local_notifications_aurora/data/org.freedesktop.Notifications.xml b/packages/flutter_local_notifications/flutter_local_notifications_aurora/data/org.freedesktop.Notifications.xml
new file mode 100644
index 0000000..62345f2
--- /dev/null
+++ b/packages/flutter_local_notifications/flutter_local_notifications_aurora/data/org.freedesktop.Notifications.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/flutter_local_notifications/flutter_local_notifications_aurora/data/preview.gif b/packages/flutter_local_notifications/flutter_local_notifications_aurora/data/preview.gif
new file mode 100644
index 0000000..f2975bf
Binary files /dev/null and b/packages/flutter_local_notifications/flutter_local_notifications_aurora/data/preview.gif differ
diff --git a/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/.gitignore b/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/.gitignore
new file mode 100644
index 0000000..3db3823
--- /dev/null
+++ b/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/.gitignore
@@ -0,0 +1,47 @@
+# Miscellaneous
+*.class
+*.log
+*.pyc
+*.swp
+.DS_Store
+.atom/
+.buildlog/
+.history
+.svn/
+migrate_working_dir/
+
+# IntelliJ related
+*.iml
+*.ipr
+*.iws
+.idea/
+
+# The .vscode folder contains launch configuration and tasks you configure in
+# VS Code which you may wish to be included in version control, so this line
+# is commented out by default.
+#.vscode/
+
+# Flutter/Dart/Pub related
+**/doc/api/
+**/ios/Flutter/.last_build_id
+.dart_tool/
+.flutter-plugins
+.flutter-plugins-dependencies
+.packages
+.pub-cache/
+.pub/
+/build/
+
+# Symbolication related
+app.*.symbols
+
+# Obfuscation related
+app.*.map.json
+
+# Android Studio will place build artifacts here
+/android/app/debug
+/android/app/profile
+/android/app/release
+
+# Aurora generated
+/aurora/flutter
diff --git a/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/README.md b/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/README.md
new file mode 100644
index 0000000..e1c48db
--- /dev/null
+++ b/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/README.md
@@ -0,0 +1,21 @@
+# flutter_local_notifications_aurora_example
+
+Demonstrates how to use the flutter_local_notifications_aurora plugin.
+
+## Build
+
+```shell
+# Add an alias if it doesn't already exist
+alias flutter-aurora=$HOME/.local/opt/flutter-sdk/bin/flutter
+# Get dependencies
+flutter-aurora pub get
+# Run build
+flutter-aurora build aurora --release # [--release|--debug|--profile]
+```
+
+You can collect, sign, run an example on the device with a script located in the `script/build_example.sh`
+More information in `build_example.sh`.
+
+### Preview example
+
+![preview.png](../data/preview.gif)
diff --git a/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/analysis_options.yaml b/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/analysis_options.yaml
new file mode 100644
index 0000000..566c597
--- /dev/null
+++ b/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/analysis_options.yaml
@@ -0,0 +1,4 @@
+# Copyright (c) 2023. Open Mobile Platform LLC.
+# License: Proprietary.
+
+include: package:flutter_lints/flutter.yaml
diff --git a/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/aurora/.gitignore b/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/aurora/.gitignore
new file mode 100644
index 0000000..d3896c9
--- /dev/null
+++ b/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/aurora/.gitignore
@@ -0,0 +1 @@
+flutter/ephemeral
diff --git a/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/aurora/CMakeLists.txt b/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/aurora/CMakeLists.txt
new file mode 100644
index 0000000..786144b
--- /dev/null
+++ b/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/aurora/CMakeLists.txt
@@ -0,0 +1,50 @@
+# Copyright (c) 2023. Open Mobile Platform LLC.
+# License: Proprietary.
+
+cmake_minimum_required(VERSION 3.10)
+project(com.example.flutter_local_notifications_aurora_example LANGUAGES CXX)
+
+include(GNUInstallDirs)
+
+set(BINARY_NAME ${CMAKE_PROJECT_NAME})
+set(FLUTTER_DIR ${CMAKE_CURRENT_SOURCE_DIR}/flutter)
+
+set(CMAKE_CXX_STANDARD 17)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+
+set(CMAKE_CXX_FLAGS "-Wall -Wextra")
+set(CMAKE_CXX_FLAGS_RELEASE "-O3")
+
+set(CMAKE_SKIP_RPATH OFF)
+set(CMAKE_INSTALL_RPATH "\$ORIGIN/../share/${BINARY_NAME}/lib")
+
+find_package(PkgConfig REQUIRED)
+pkg_check_modules(FlutterEmbedder REQUIRED IMPORTED_TARGET flutter-embedder)
+
+add_executable(${BINARY_NAME} main.cpp ${FLUTTER_DIR}/generated_plugin_registrant.cpp)
+target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::FlutterEmbedder)
+target_include_directories(${BINARY_NAME} PRIVATE ${FLUTTER_DIR})
+
+include(flutter/generated_plugins.cmake)
+
+set(PACKAGE_INSTALL_DIR ${CMAKE_INSTALL_DATADIR}/${BINARY_NAME})
+set(DESKTOP_INSTALL_DIR ${CMAKE_INSTALL_DATADIR}/applications)
+set(ICONS_INSTALL_ROOT_DIR ${CMAKE_INSTALL_DATADIR}/icons/hicolor)
+
+add_custom_command(TARGET ${BINARY_NAME} POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy
+ ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/libflutter-embedder.so
+ ${PROJECT_BINARY_DIR}/bundle/lib/libflutter-embedder.so)
+
+install(FILES ${PROJECT_BINARY_DIR}/bundle/icudtl.dat DESTINATION ${PACKAGE_INSTALL_DIR})
+install(DIRECTORY ${PROJECT_BINARY_DIR}/bundle/flutter_assets DESTINATION ${PACKAGE_INSTALL_DIR})
+install(DIRECTORY ${PROJECT_BINARY_DIR}/bundle/lib DESTINATION ${PACKAGE_INSTALL_DIR})
+
+install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+install(FILES desktop/${BINARY_NAME}.desktop DESTINATION ${DESKTOP_INSTALL_DIR})
+
+foreach(ICONS_SIZE 86x86 108x108 128x128 172x172)
+ install(FILES icons/${ICONS_SIZE}.png
+ RENAME ${BINARY_NAME}.png
+ DESTINATION ${ICONS_INSTALL_ROOT_DIR}/${ICONS_SIZE}/apps/)
+endforeach(ICONS_SIZE)
diff --git a/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/aurora/desktop/com.example.flutter_local_notifications_aurora_example.desktop b/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/aurora/desktop/com.example.flutter_local_notifications_aurora_example.desktop
new file mode 100644
index 0000000..d2a6a7e
--- /dev/null
+++ b/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/aurora/desktop/com.example.flutter_local_notifications_aurora_example.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Type=Application
+Name=Flutter Notification
+Comment=Demonstrates how to use the flutter_local_notifications_aurora plugin.
+Icon=com.example.flutter_local_notifications_aurora_example
+Exec=/usr/bin/com.example.flutter_local_notifications_aurora_example
+X-Nemo-Application-Type=silica-qt5
+
+[X-Application]
+Permissions=
+OrganizationName=com.example
+ApplicationName=flutter_local_notifications_aurora_example
diff --git a/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/aurora/icons/108x108.png b/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/aurora/icons/108x108.png
new file mode 100644
index 0000000..984893d
Binary files /dev/null and b/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/aurora/icons/108x108.png differ
diff --git a/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/aurora/icons/128x128.png b/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/aurora/icons/128x128.png
new file mode 100644
index 0000000..2d552ef
Binary files /dev/null and b/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/aurora/icons/128x128.png differ
diff --git a/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/aurora/icons/172x172.png b/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/aurora/icons/172x172.png
new file mode 100644
index 0000000..9dc271b
Binary files /dev/null and b/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/aurora/icons/172x172.png differ
diff --git a/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/aurora/icons/86x86.png b/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/aurora/icons/86x86.png
new file mode 100644
index 0000000..5923bb1
Binary files /dev/null and b/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/aurora/icons/86x86.png differ
diff --git a/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/aurora/main.cpp b/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/aurora/main.cpp
new file mode 100644
index 0000000..83f2ca8
--- /dev/null
+++ b/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/aurora/main.cpp
@@ -0,0 +1,13 @@
+/*
+ * Copyright (c) 2023. Open Mobile Platform LLC.
+ * License: Proprietary.
+ */
+#include
+#include "generated_plugin_registrant.h"
+
+int main(int argc, char *argv[]) {
+ Application::Initialize(argc, argv);
+ RegisterPlugins();
+ Application::Launch();
+ return 0;
+}
diff --git a/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/aurora/rpm/com.example.flutter_local_notifications_aurora_example.spec b/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/aurora/rpm/com.example.flutter_local_notifications_aurora_example.spec
new file mode 100644
index 0000000..640103e
--- /dev/null
+++ b/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/aurora/rpm/com.example.flutter_local_notifications_aurora_example.spec
@@ -0,0 +1,31 @@
+%global __provides_exclude_from ^%{_datadir}/%{name}/lib/.*$
+%global __requires_exclude ^lib(dconf|flutter-embedder|maliit-glib|appmanifest-.+|.+_platform_plugin)\\.so.*$
+
+Name: com.example.flutter_local_notifications_aurora_example
+Summary: Demonstrates how to use the flutter_local_notifications_aurora plugin.
+Version: 0.1.0
+Release: 1
+License: Proprietary
+Source0: %{name}-%{version}.tar.zst
+
+BuildRequires: cmake
+BuildRequires: pkgconfig(flutter-embedder)
+
+%description
+%{summary}.
+
+%prep
+%autosetup
+
+%build
+%cmake -DCMAKE_BUILD_TYPE=%{_flutter_build_type}
+%make_build
+
+%install
+%make_install
+
+%files
+%{_bindir}/%{name}
+%{_datadir}/%{name}/*
+%{_datadir}/applications/%{name}.desktop
+%{_datadir}/icons/hicolor/*/apps/%{name}.png
diff --git a/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/lib/main.dart b/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/lib/main.dart
new file mode 100644
index 0000000..c7f8d84
--- /dev/null
+++ b/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/lib/main.dart
@@ -0,0 +1,94 @@
+/*
+ * Copyright (c) 2023. Open Mobile Platform LLC.
+ * License: Proprietary.
+ */
+import 'package:flutter/material.dart';
+import 'dart:async';
+
+import 'package:flutter_local_notifications/flutter_local_notifications.dart';
+
+void main() {
+ runApp(const MyApp());
+}
+
+class MyApp extends StatefulWidget {
+ const MyApp({super.key});
+
+ @override
+ State createState() => _MyAppState();
+}
+
+class _MyAppState extends State {
+ final notificationID = 1;
+ final FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
+ FlutterLocalNotificationsPlugin();
+
+ @override
+ void initState() {
+ super.initState();
+ }
+
+ Future _showNotification() async {
+ await flutterLocalNotificationsPlugin.show(
+ notificationID,
+ "Title notification",
+ "My long body text notification",
+ null,
+ );
+ }
+
+ Future _cancelNotification() async {
+ await flutterLocalNotificationsPlugin.cancel(notificationID);
+ }
+
+ @override
+ Widget build(BuildContext context) {
+ const textStyleWhite = TextStyle(fontSize: 18, color: Colors.white);
+ const spaceMedium = SizedBox(height: 20);
+
+ return MaterialApp(
+ home: Scaffold(
+ appBar: AppBar(
+ title: const Text('Example flutter_local_notifications'),
+ ),
+ body: SingleChildScrollView(
+ child: Padding(
+ padding: const EdgeInsets.all(16),
+ child: Center(
+ child: Column(
+ children: [
+ // Info
+ Container(
+ padding: const EdgeInsets.all(20),
+ decoration: const BoxDecoration(
+ color: Colors.green,
+ borderRadius: BorderRadius.all(Radius.circular(10.0)),
+ ),
+ child: const Text(
+ 'Demo application demonstration implementation of flutter_local_notifications',
+ style: textStyleWhite,
+ textAlign: TextAlign.center,
+ ),
+ ),
+ const SizedBox(height: 30),
+
+ ElevatedButton(
+ onPressed: _showNotification,
+ child: const Text('Show notification'),
+ ),
+
+ spaceMedium,
+
+ ElevatedButton(
+ onPressed: _cancelNotification,
+ child: const Text('Cancel notification'),
+ )
+ ],
+ ),
+ ),
+ ),
+ ),
+ ),
+ );
+ }
+}
diff --git a/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/pubspec.lock b/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/pubspec.lock
new file mode 100644
index 0000000..55b2525
--- /dev/null
+++ b/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/pubspec.lock
@@ -0,0 +1,329 @@
+# Generated by pub
+# See https://dart.dev/tools/pub/glossary#lockfile
+packages:
+ args:
+ dependency: transitive
+ description:
+ name: args
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "2.4.1"
+ async:
+ dependency: transitive
+ description:
+ name: async
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "2.9.0"
+ boolean_selector:
+ dependency: transitive
+ description:
+ name: boolean_selector
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "2.1.0"
+ characters:
+ dependency: transitive
+ description:
+ name: characters
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.2.1"
+ clock:
+ dependency: transitive
+ description:
+ name: clock
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.1.1"
+ collection:
+ dependency: transitive
+ description:
+ name: collection
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.16.0"
+ cupertino_icons:
+ dependency: "direct main"
+ description:
+ name: cupertino_icons
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.0.5"
+ dbus:
+ dependency: transitive
+ description:
+ name: dbus
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "0.7.8"
+ fake_async:
+ dependency: transitive
+ description:
+ name: fake_async
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.3.1"
+ ffi:
+ dependency: transitive
+ description:
+ name: ffi
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "2.0.2"
+ file:
+ dependency: transitive
+ description:
+ name: file
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "6.1.4"
+ flutter:
+ dependency: "direct main"
+ description: flutter
+ source: sdk
+ version: "0.0.0"
+ flutter_lints:
+ dependency: "direct dev"
+ description:
+ name: flutter_lints
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "2.0.1"
+ flutter_local_notifications:
+ dependency: "direct main"
+ description:
+ name: flutter_local_notifications
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "14.1.1"
+ flutter_local_notifications_aurora:
+ dependency: "direct main"
+ description:
+ path: ".."
+ relative: true
+ source: path
+ version: "0.0.1"
+ flutter_local_notifications_linux:
+ dependency: transitive
+ description:
+ name: flutter_local_notifications_linux
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "4.0.0+1"
+ flutter_local_notifications_platform_interface:
+ dependency: transitive
+ description:
+ name: flutter_local_notifications_platform_interface
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "7.0.0+1"
+ flutter_test:
+ dependency: "direct dev"
+ description: flutter
+ source: sdk
+ version: "0.0.0"
+ flutter_web_plugins:
+ dependency: transitive
+ description: flutter
+ source: sdk
+ version: "0.0.0"
+ http:
+ dependency: transitive
+ description:
+ name: http
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "0.13.5"
+ http_parser:
+ dependency: transitive
+ description:
+ name: http_parser
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "4.0.2"
+ js:
+ dependency: transitive
+ description:
+ name: js
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "0.6.4"
+ lints:
+ dependency: transitive
+ description:
+ name: lints
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "2.0.1"
+ matcher:
+ dependency: transitive
+ description:
+ name: matcher
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "0.12.12"
+ material_color_utilities:
+ dependency: transitive
+ description:
+ name: material_color_utilities
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "0.1.5"
+ meta:
+ dependency: transitive
+ description:
+ name: meta
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.8.0"
+ package_info_plus:
+ dependency: transitive
+ description:
+ name: package_info_plus
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "4.0.2"
+ package_info_plus_aurora:
+ dependency: transitive
+ description:
+ path: "packages/package_info_plus/package_info_plus_aurora"
+ ref: dev
+ resolved-ref: "7120c2554963ce9e7600730b2657b387d3a86d9c"
+ url: "git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git"
+ source: git
+ version: "0.0.1"
+ package_info_plus_platform_interface:
+ dependency: transitive
+ description:
+ name: package_info_plus_platform_interface
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "2.0.1"
+ path:
+ dependency: transitive
+ description:
+ name: path
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.8.2"
+ petitparser:
+ dependency: transitive
+ description:
+ name: petitparser
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "5.1.0"
+ platform:
+ dependency: transitive
+ description:
+ name: platform
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "3.1.0"
+ plugin_platform_interface:
+ dependency: transitive
+ description:
+ name: plugin_platform_interface
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "2.1.4"
+ process:
+ dependency: transitive
+ description:
+ name: process
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "4.2.4"
+ sky_engine:
+ dependency: transitive
+ description: flutter
+ source: sdk
+ version: "0.0.99"
+ source_span:
+ dependency: transitive
+ description:
+ name: source_span
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.9.0"
+ stack_trace:
+ dependency: transitive
+ description:
+ name: stack_trace
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.10.0"
+ stream_channel:
+ dependency: transitive
+ description:
+ name: stream_channel
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "2.1.0"
+ string_scanner:
+ dependency: transitive
+ description:
+ name: string_scanner
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.1.1"
+ term_glyph:
+ dependency: transitive
+ description:
+ name: term_glyph
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.2.1"
+ test_api:
+ dependency: transitive
+ description:
+ name: test_api
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "0.4.12"
+ timezone:
+ dependency: transitive
+ description:
+ name: timezone
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "0.9.2"
+ typed_data:
+ dependency: transitive
+ description:
+ name: typed_data
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.3.2"
+ vector_math:
+ dependency: transitive
+ description:
+ name: vector_math
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "2.1.2"
+ win32:
+ dependency: transitive
+ description:
+ name: win32
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "4.1.4"
+ xdg_directories:
+ dependency: transitive
+ description:
+ name: xdg_directories
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.0.0"
+ xml:
+ dependency: transitive
+ description:
+ name: xml
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "6.1.0"
+sdks:
+ dart: ">=2.18.6 <3.0.0"
+ flutter: ">=3.3.0"
diff --git a/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/pubspec.yaml b/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/pubspec.yaml
new file mode 100644
index 0000000..0dd0b40
--- /dev/null
+++ b/packages/flutter_local_notifications/flutter_local_notifications_aurora/example/pubspec.yaml
@@ -0,0 +1,26 @@
+# Copyright (c) 2023. Open Mobile Platform LLC.
+# License: Proprietary.
+
+name: flutter_local_notifications_aurora_example
+description: Demonstrates how to use the flutter_local_notifications_aurora plugin.
+
+publish_to: 'none'
+
+environment:
+ sdk: '>=2.18.6 <3.0.0'
+
+dependencies:
+ flutter:
+ sdk: flutter
+ flutter_local_notifications: ^14.0.0+2
+ flutter_local_notifications_aurora:
+ path: ../
+ cupertino_icons: ^1.0.2
+
+dev_dependencies:
+ flutter_test:
+ sdk: flutter
+ flutter_lints: ^2.0.0
+
+flutter:
+ uses-material-design: true
diff --git a/packages/flutter_local_notifications/flutter_local_notifications_aurora/lib/flutter_local_notifications_aurora.dart b/packages/flutter_local_notifications/flutter_local_notifications_aurora/lib/flutter_local_notifications_aurora.dart
new file mode 100644
index 0000000..4ed8d59
--- /dev/null
+++ b/packages/flutter_local_notifications/flutter_local_notifications_aurora/lib/flutter_local_notifications_aurora.dart
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2023. Open Mobile Platform LLC.
+ * License: Proprietary.
+ */
+import 'dart:async';
+
+import 'package:dbus/dbus.dart';
+import 'package:flutter_local_notifications_aurora/org_freedesktop_notifications.dart';
+import 'package:flutter_local_notifications_platform_interface/flutter_local_notifications_platform_interface.dart';
+import 'package:package_info_plus/package_info_plus.dart';
+
+class FlutterLocalNotificationsAurora
+ extends FlutterLocalNotificationsPlatform {
+ /// Registers this class as the default instance of [FlutterLocalNotificationsPlatform].
+ static void registerWith() {
+ FlutterLocalNotificationsPlatform.instance =
+ FlutterLocalNotificationsAurora();
+ }
+
+ final Map> auroraIDs = {};
+
+ @override
+ Future show(
+ int id,
+ String? title,
+ String? body, {
+ String? payload,
+ }) async {
+ final appName = (await PackageInfo.fromPlatform()).appName;
+ final client = DBusClient.session();
+
+ final object = OrgFreedesktopNotifications(
+ client,
+ 'org.freedesktop.Notifications',
+ DBusObjectPath('/org/freedesktop/Notifications'));
+
+ auroraIDs[id] = auroraIDs[id] ?? [];
+ auroraIDs[id]!.add(await object.callNotify(
+ appName,
+ 0,
+ ' ',
+ title ?? '',
+ body ?? '',
+ [],
+ {},
+ -1,
+ ));
+ await client.close();
+ }
+
+ @override
+ Future cancel(int id) async {
+ final ids = auroraIDs[id] ?? [];
+ if (ids.isNotEmpty) {
+ final client = DBusClient.session();
+ final object = OrgFreedesktopNotifications(
+ client,
+ 'org.freedesktop.Notifications',
+ DBusObjectPath('/org/freedesktop/Notifications'));
+ for (final auroraID in ids) {
+ await object.callCloseNotification(auroraID);
+ }
+ ids.remove(id);
+ await client.close();
+ }
+ }
+}
diff --git a/packages/flutter_local_notifications/flutter_local_notifications_aurora/lib/org_freedesktop_notifications.dart b/packages/flutter_local_notifications/flutter_local_notifications_aurora/lib/org_freedesktop_notifications.dart
new file mode 100644
index 0000000..eb7cd35
--- /dev/null
+++ b/packages/flutter_local_notifications/flutter_local_notifications_aurora/lib/org_freedesktop_notifications.dart
@@ -0,0 +1,128 @@
+/*
+ * Copyright (c) 2023. Open Mobile Platform LLC.
+ * License: Proprietary.
+ */
+import 'package:dbus/dbus.dart';
+
+/// Signal data for org.freedesktop.Notifications.NotificationClosed.
+class OrgFreedesktopNotificationsNotificationClosed extends DBusSignal {
+ int get id => values[0].asUint32();
+ int get reason => values[1].asUint32();
+
+ OrgFreedesktopNotificationsNotificationClosed(DBusSignal signal)
+ : super(
+ sender: signal.sender,
+ path: signal.path,
+ interface: signal.interface,
+ name: signal.name,
+ values: signal.values);
+}
+
+/// Signal data for org.freedesktop.Notifications.ActionInvoked.
+class OrgFreedesktopNotificationsActionInvoked extends DBusSignal {
+ int get id => values[0].asUint32();
+ String get action_key => values[1].asString();
+
+ OrgFreedesktopNotificationsActionInvoked(DBusSignal signal)
+ : super(
+ sender: signal.sender,
+ path: signal.path,
+ interface: signal.interface,
+ name: signal.name,
+ values: signal.values);
+}
+
+class OrgFreedesktopNotifications extends DBusRemoteObject {
+ /// Stream of org.freedesktop.Notifications.NotificationClosed signals.
+ late final Stream
+ notificationClosed;
+
+ /// Stream of org.freedesktop.Notifications.ActionInvoked signals.
+ late final Stream actionInvoked;
+
+ OrgFreedesktopNotifications(
+ DBusClient client, String destination, DBusObjectPath path)
+ : super(client, name: destination, path: path) {
+ notificationClosed = DBusRemoteObjectSignalStream(
+ object: this,
+ interface: 'org.freedesktop.Notifications',
+ name: 'NotificationClosed',
+ signature: DBusSignature('uu'))
+ .asBroadcastStream()
+ .map((signal) => OrgFreedesktopNotificationsNotificationClosed(signal));
+
+ actionInvoked = DBusRemoteObjectSignalStream(
+ object: this,
+ interface: 'org.freedesktop.Notifications',
+ name: 'ActionInvoked',
+ signature: DBusSignature('us'))
+ .asBroadcastStream()
+ .map((signal) => OrgFreedesktopNotificationsActionInvoked(signal));
+ }
+
+ /// Invokes org.freedesktop.Notifications.Notify()
+ Future callNotify(
+ String app_name,
+ int replaces_id,
+ String app_icon,
+ String summary,
+ String body,
+ List actions,
+ Map hints,
+ int timeout,
+ {bool noAutoStart = false,
+ bool allowInteractiveAuthorization = false}) async {
+ var result = await callMethod(
+ 'org.freedesktop.Notifications',
+ 'Notify',
+ [
+ DBusString(app_name),
+ DBusUint32(replaces_id),
+ DBusString(app_icon),
+ DBusString(summary),
+ DBusString(body),
+ DBusArray.string(actions),
+ DBusDict.stringVariant(hints),
+ DBusInt32(timeout)
+ ],
+ replySignature: DBusSignature('u'),
+ noAutoStart: noAutoStart,
+ allowInteractiveAuthorization: allowInteractiveAuthorization);
+ return result.returnValues[0].asUint32();
+ }
+
+ /// Invokes org.freedesktop.Notifications.CloseNotification()
+ Future callCloseNotification(int id,
+ {bool noAutoStart = false,
+ bool allowInteractiveAuthorization = false}) async {
+ await callMethod(
+ 'org.freedesktop.Notifications', 'CloseNotification', [DBusUint32(id)],
+ replySignature: DBusSignature(''),
+ noAutoStart: noAutoStart,
+ allowInteractiveAuthorization: allowInteractiveAuthorization);
+ }
+
+ /// Invokes org.freedesktop.Notifications.GetCapabilities()
+ Future> callGetCapabilities(
+ {bool noAutoStart = false,
+ bool allowInteractiveAuthorization = false}) async {
+ var result = await callMethod(
+ 'org.freedesktop.Notifications', 'GetCapabilities', [],
+ replySignature: DBusSignature('as'),
+ noAutoStart: noAutoStart,
+ allowInteractiveAuthorization: allowInteractiveAuthorization);
+ return result.returnValues[0].asStringArray().toList();
+ }
+
+ /// Invokes org.freedesktop.Notifications.GetServerInformation()
+ Future> callGetServerInformation(
+ {bool noAutoStart = false,
+ bool allowInteractiveAuthorization = false}) async {
+ var result = await callMethod(
+ 'org.freedesktop.Notifications', 'GetServerInformation', [],
+ replySignature: DBusSignature('ssss'),
+ noAutoStart: noAutoStart,
+ allowInteractiveAuthorization: allowInteractiveAuthorization);
+ return result.returnValues;
+ }
+}
diff --git a/packages/flutter_local_notifications/flutter_local_notifications_aurora/pubspec.yaml b/packages/flutter_local_notifications/flutter_local_notifications_aurora/pubspec.yaml
new file mode 100644
index 0000000..3508107
--- /dev/null
+++ b/packages/flutter_local_notifications/flutter_local_notifications_aurora/pubspec.yaml
@@ -0,0 +1,34 @@
+# Copyright (c) 2023. Open Mobile Platform LLC.
+# License: Proprietary.
+
+name: flutter_local_notifications_aurora
+description: The Aurora OS implementation of flutter_local_notifications.
+version: 0.0.1
+
+environment:
+ sdk: '>=2.18.6 <3.0.0'
+ flutter: ">=2.5.0"
+
+dependencies:
+ flutter:
+ sdk: flutter
+ dbus: ^0.7.8
+ plugin_platform_interface: ^2.0.2
+ flutter_local_notifications_platform_interface: ^7.0.0
+ package_info_plus: ^4.0.0
+ package_info_plus_aurora:
+ git:
+ url: git@os-git.omprussia.ru:non-oss/flutter/flutter-plugins.git
+ ref: dev
+ path: packages/package_info_plus/package_info_plus_aurora
+
+dev_dependencies:
+ flutter_test:
+ sdk: flutter
+ flutter_lints: ^2.0.0
+
+flutter:
+ plugin:
+ platforms:
+ aurora:
+ dartPluginClass: FlutterLocalNotificationsAurora