forked from cwtch.im/cwtch-ui
Merge branch 'trunk' into profileNotify
This commit is contained in:
commit
ab9d6929be
|
@ -1,7 +1,8 @@
|
||||||
|
import 'dart:async';
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
|
||||||
import 'package:cwtch/main.dart';
|
import 'package:cwtch/main.dart';
|
||||||
import 'package:desktoasts/desktoasts.dart';
|
import 'package:win_toast/win_toast.dart';
|
||||||
import 'package:desktop_notifications/desktop_notifications.dart';
|
import 'package:desktop_notifications/desktop_notifications.dart';
|
||||||
import 'package:path/path.dart' as path;
|
import 'package:path/path.dart' as path;
|
||||||
|
|
||||||
|
@ -37,44 +38,27 @@ class LinuxNotificationsManager implements NotificationsManager {
|
||||||
// Windows Notification Manager uses https://pub.dev/packages/desktoasts to implement
|
// Windows Notification Manager uses https://pub.dev/packages/desktoasts to implement
|
||||||
// windows notifications
|
// windows notifications
|
||||||
class WindowsNotificationManager implements NotificationsManager {
|
class WindowsNotificationManager implements NotificationsManager {
|
||||||
late ToastService service;
|
|
||||||
bool active = false;
|
bool active = false;
|
||||||
|
bool initialized = false;
|
||||||
|
|
||||||
WindowsNotificationManager() {
|
WindowsNotificationManager() {
|
||||||
service = new ToastService(
|
scheduleMicrotask(() async {
|
||||||
appName: 'cwtch',
|
initialized = await WinToast.instance().initialize(appName: 'cwtch', productName: 'Cwtch', companyName: 'Open Privacy Research Society');
|
||||||
companyName: 'Open Privacy Research Society',
|
|
||||||
productName: 'Cwtch',
|
|
||||||
);
|
|
||||||
|
|
||||||
service.stream.listen((event) {
|
|
||||||
// the user closed the notification of the OS timed it out
|
|
||||||
if (event is ToastDismissed) {
|
|
||||||
active = false;
|
|
||||||
}
|
|
||||||
// clicked
|
|
||||||
if (event is ToastActivated) {
|
|
||||||
active = false;
|
|
||||||
}
|
|
||||||
// if a supplied action was clicked
|
|
||||||
if (event is ToastInteracted) {
|
|
||||||
active = false;
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> notify(String message) async {
|
Future<void> notify(String message) async {
|
||||||
if (!globalAppState.focus) {
|
if (initialized && !globalAppState.focus) {
|
||||||
if (!active) {
|
if (!active) {
|
||||||
// One string of bold text on the first line (title),
|
|
||||||
// one string (subtitle) of regular text wrapped across the second and third lines.
|
|
||||||
Toast toast = new Toast(
|
|
||||||
type: ToastType.text02,
|
|
||||||
title: 'Cwtch',
|
|
||||||
subtitle: message,
|
|
||||||
);
|
|
||||||
service.show(toast);
|
|
||||||
active = true;
|
active = true;
|
||||||
|
WinToast.instance().clear();
|
||||||
|
final toast = await WinToast.instance().showToast(type: ToastType.text01, title: message);
|
||||||
|
toast?.eventStream.listen((event) {
|
||||||
|
if (event is ActivatedEvent) {
|
||||||
|
WinToast.instance().bringWindowToFront();
|
||||||
|
}
|
||||||
|
active = false;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
14
pubspec.lock
14
pubspec.lock
|
@ -78,13 +78,6 @@ packages:
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.5.2"
|
version: "0.5.2"
|
||||||
desktoasts:
|
|
||||||
dependency: "direct main"
|
|
||||||
description:
|
|
||||||
name: desktoasts
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "0.0.2"
|
|
||||||
desktop_notifications:
|
desktop_notifications:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
@ -474,6 +467,13 @@ packages:
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.2.4"
|
version: "2.2.4"
|
||||||
|
win_toast:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: win_toast
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "0.0.2"
|
||||||
window_manager:
|
window_manager:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
|
|
@ -44,7 +44,7 @@ dependencies:
|
||||||
file_picker: ^4.3.2
|
file_picker: ^4.3.2
|
||||||
file_picker_desktop: ^1.1.0
|
file_picker_desktop: ^1.1.0
|
||||||
url_launcher: ^6.0.12
|
url_launcher: ^6.0.12
|
||||||
desktoasts: ^0.0.2
|
win_toast: ^0.0.2
|
||||||
window_manager: ^0.1.4
|
window_manager: ^0.1.4
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
|
|
|
@ -6,12 +6,15 @@
|
||||||
|
|
||||||
#include "generated_plugin_registrant.h"
|
#include "generated_plugin_registrant.h"
|
||||||
|
|
||||||
#include <desktoasts/desktoasts_plugin.h>
|
|
||||||
#include <url_launcher_windows/url_launcher_windows.h>
|
#include <url_launcher_windows/url_launcher_windows.h>
|
||||||
|
#include <win_toast/win_toast_plugin.h>
|
||||||
|
#include <window_manager/window_manager_plugin.h>
|
||||||
|
|
||||||
void RegisterPlugins(flutter::PluginRegistry* registry) {
|
void RegisterPlugins(flutter::PluginRegistry* registry) {
|
||||||
DesktoastsPluginRegisterWithRegistrar(
|
|
||||||
registry->GetRegistrarForPlugin("DesktoastsPlugin"));
|
|
||||||
UrlLauncherWindowsRegisterWithRegistrar(
|
UrlLauncherWindowsRegisterWithRegistrar(
|
||||||
registry->GetRegistrarForPlugin("UrlLauncherWindows"));
|
registry->GetRegistrarForPlugin("UrlLauncherWindows"));
|
||||||
|
WinToastPluginRegisterWithRegistrar(
|
||||||
|
registry->GetRegistrarForPlugin("WinToastPlugin"));
|
||||||
|
WindowManagerPluginRegisterWithRegistrar(
|
||||||
|
registry->GetRegistrarForPlugin("WindowManagerPlugin"));
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,8 +3,9 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
list(APPEND FLUTTER_PLUGIN_LIST
|
list(APPEND FLUTTER_PLUGIN_LIST
|
||||||
desktoasts
|
|
||||||
url_launcher_windows
|
url_launcher_windows
|
||||||
|
win_toast
|
||||||
|
window_manager
|
||||||
)
|
)
|
||||||
|
|
||||||
set(PLUGIN_BUNDLED_LIBRARIES)
|
set(PLUGIN_BUNDLED_LIBRARIES)
|
||||||
|
|
Loading…
Reference in New Issue