forked from cwtch.im/cwtch-ui
start of flutter3 migration, update l10n/custom_material_delegate, update cwtchNotifier to user local_notifier
This commit is contained in:
parent
a83b357f0f
commit
a5040b7236
|
@ -176,6 +176,7 @@ class CwtchNotifier {
|
||||||
seenMessageCallback!(data["ProfileOnion"]!, identifier, DateTime.now().toUtc());
|
seenMessageCallback!(data["ProfileOnion"]!, identifier, DateTime.now().toUtc());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
print("New Message from peer...");
|
||||||
if (notification == "SimpleEvent") {
|
if (notification == "SimpleEvent") {
|
||||||
notificationManager.notify(notificationSimple ?? "New Message", "", 0);
|
notificationManager.notify(notificationSimple ?? "New Message", "", 0);
|
||||||
} else if (notification == "ContactInfo") {
|
} else if (notification == "ContactInfo") {
|
||||||
|
|
|
@ -312,6 +312,182 @@ class MaterialLocalizationLu extends MaterialLocalizations {
|
||||||
@override
|
@override
|
||||||
String get viewLicensesButtonLabel => 'LIZENZEN ANZEIGEN';
|
String get viewLicensesButtonLabel => 'LIZENZEN ANZEIGEN';
|
||||||
|
|
||||||
|
// ***** NEW *****
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyAlt => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyAltGraph => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyBackspace => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyCapsLock => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyChannelDown => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyChannelUp => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyControl => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyDelete => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyEisu => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyEject => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyEnd => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyEscape => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyFn => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyHangulMode => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyHanjaMode => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyHankaku => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyHiragana => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyHiraganaKatakana => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyHome => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyInsert => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyKanaMode => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyKanjiMode => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyKatakana => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyMeta => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyMetaMacOs => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyMetaWindows => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyNumLock => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyNumpad1 => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyNumpad2 => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyNumpad3 => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyNumpad4 => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyNumpad5 => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyNumpad6 => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyNumpad7 => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyNumpad8 => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyNumpad9 => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyNumpad0 => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyNumpadAdd => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyNumpadComma => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyNumpadDecimal => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyNumpadDivide => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyNumpadEnter => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyNumpadEqual => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyNumpadMultiply => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyNumpadParenLeft => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyNumpadParenRight => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyNumpadSubtract => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyPageDown => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyPageUp => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyPower => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyPowerOff => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyPrintScreen => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyRomaji => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyScrollLock => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeySelect => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeySpace => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyZenkaku => 'Datum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get keyboardKeyZenkakuHankaku => 'Datum';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String aboutListTileTitle(String applicationName) {
|
String aboutListTileTitle(String applicationName) {
|
||||||
return aboutListTileTitleRaw.replaceFirst("$applicationName", applicationName);
|
return aboutListTileTitleRaw.replaceFirst("$applicationName", applicationName);
|
||||||
|
|
|
@ -10,6 +10,8 @@ import 'package:desktop_notifications/desktop_notifications.dart' as linux_notif
|
||||||
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
|
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
|
||||||
import 'package:flutter_local_notifications_linux/flutter_local_notifications_linux.dart';
|
import 'package:flutter_local_notifications_linux/flutter_local_notifications_linux.dart';
|
||||||
import 'package:flutter_local_notifications_linux/src/model/hint.dart';
|
import 'package:flutter_local_notifications_linux/src/model/hint.dart';
|
||||||
|
import 'package:flutter_local_notifications_linux/src/model/icon.dart';
|
||||||
|
|
||||||
|
|
||||||
import 'package:path/path.dart' as path;
|
import 'package:path/path.dart' as path;
|
||||||
|
|
||||||
|
@ -126,32 +128,80 @@ class NotificationPayload {
|
||||||
class NixNotificationManager implements NotificationsManager {
|
class NixNotificationManager implements NotificationsManager {
|
||||||
late FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin;
|
late FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin;
|
||||||
late Future<void> Function(String, int) notificationSelectConvo;
|
late Future<void> Function(String, int) notificationSelectConvo;
|
||||||
|
late String linuxAssetsPath;
|
||||||
|
|
||||||
|
|
||||||
|
// Cwtch can install in non flutter supported ways on linux, this code detects where the assets are on Linux
|
||||||
|
Future<String> detectLinuxAssetsPath() async {
|
||||||
|
//var devStat = FileStat.stat("assets");
|
||||||
|
//var localStat = FileStat.stat("data/flutter_assets");
|
||||||
|
var homeStat = FileStat.stat((Platform.environment["HOME"] ?? "") + "/.local/share/cwtch/data/flutter_assets");
|
||||||
|
var rootStat = FileStat.stat("/usr/share/cwtch/data/flutter_assets");
|
||||||
|
|
||||||
|
/*if ((await devStat).type == FileSystemEntityType.directory) {
|
||||||
|
return Directory.current.path; //appPath;
|
||||||
|
} else if ((await localStat).type == FileSystemEntityType.directory) {
|
||||||
|
return path.join(Directory.current.path, "data/flutter_assets/");
|
||||||
|
} else */if ((await homeStat).type == FileSystemEntityType.directory) {
|
||||||
|
return (Platform.environment["HOME"] ?? "") + "/.local/share/cwtch/data/flutter_assets/";
|
||||||
|
} else if ((await rootStat).type == FileSystemEntityType.directory) {
|
||||||
|
return "/usr/share/cwtch/data/flutter_assets/";
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
NixNotificationManager(Future<void> Function(String, int) notificationSelectConvo) {
|
NixNotificationManager(Future<void> Function(String, int) notificationSelectConvo) {
|
||||||
this.notificationSelectConvo = notificationSelectConvo;
|
this.notificationSelectConvo = notificationSelectConvo;
|
||||||
flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin();
|
flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin();
|
||||||
|
|
||||||
final MacOSInitializationSettings initializationSettingsMacOS = MacOSInitializationSettings(defaultPresentSound: false);
|
|
||||||
final LinuxInitializationSettings initializationSettingsLinux =
|
|
||||||
LinuxInitializationSettings(defaultActionName: 'Open notification', defaultIcon: AssetsLinuxIcon('assets/knott.png'), defaultSuppressSound: true);
|
|
||||||
|
|
||||||
final InitializationSettings initializationSettings = InitializationSettings(android: null, iOS: null, macOS: initializationSettingsMacOS, linux: initializationSettingsLinux);
|
|
||||||
scheduleMicrotask(() async {
|
scheduleMicrotask(() async {
|
||||||
|
|
||||||
|
if (Platform.isLinux) {
|
||||||
|
linuxAssetsPath = await detectLinuxAssetsPath();
|
||||||
|
print("NixNotificationManager found LinuxAssetsPath!: $linuxAssetsPath");
|
||||||
|
} else {
|
||||||
|
linuxAssetsPath = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
final MacOSInitializationSettings initializationSettingsMacOS = MacOSInitializationSettings(defaultPresentSound: false);
|
||||||
|
var linuxIcon = FilePathLinuxIcon( path.join(linuxAssetsPath, 'assets/knott.png'));
|
||||||
|
print("NixNotificationManager make linux settings");
|
||||||
|
|
||||||
|
final LinuxInitializationSettings initializationSettingsLinux =
|
||||||
|
LinuxInitializationSettings(defaultActionName: 'Open notification', defaultIcon: linuxIcon, defaultSuppressSound: true);
|
||||||
|
|
||||||
|
print("NixNotificationManager InitializationSettings");
|
||||||
|
|
||||||
|
final InitializationSettings initializationSettings = InitializationSettings(android: null, iOS: null, macOS: initializationSettingsMacOS, linux: initializationSettingsLinux);
|
||||||
|
|
||||||
|
print("NixNotificationManager mac req perms");
|
||||||
|
|
||||||
flutterLocalNotificationsPlugin.resolvePlatformSpecificImplementation<MacOSFlutterLocalNotificationsPlugin>()?.requestPermissions(
|
flutterLocalNotificationsPlugin.resolvePlatformSpecificImplementation<MacOSFlutterLocalNotificationsPlugin>()?.requestPermissions(
|
||||||
alert: true,
|
alert: true,
|
||||||
badge: false,
|
badge: false,
|
||||||
sound: false,
|
sound: false,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
print("NixNotificationManager initialize...");
|
||||||
await flutterLocalNotificationsPlugin.initialize(initializationSettings, onSelectNotification: selectNotification);
|
await flutterLocalNotificationsPlugin.initialize(initializationSettings, onSelectNotification: selectNotification);
|
||||||
|
print("NixNotificationManager initialized!!!");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> notify(String message, String profile, int conversationId) async {
|
Future<void> notify(String message, String profile, int conversationId) async {
|
||||||
|
print("notify if !globalAppState.focus so do? ${!globalAppState.focus}");
|
||||||
if (!globalAppState.focus) {
|
if (!globalAppState.focus) {
|
||||||
|
|
||||||
|
print("do notify!");
|
||||||
|
|
||||||
// Warning: Only use title field on Linux, body field will render links as clickable
|
// Warning: Only use title field on Linux, body field will render links as clickable
|
||||||
await flutterLocalNotificationsPlugin.show(0, message, '', NotificationDetails(linux: LinuxNotificationDetails(suppressSound: true, category: LinuxNotificationCategory.imReceived())),
|
await flutterLocalNotificationsPlugin.show(0, message, '',
|
||||||
|
NotificationDetails(linux: LinuxNotificationDetails(suppressSound: true, category: LinuxNotificationCategory.imReceived(), icon: FilePathLinuxIcon(path.join(linuxAssetsPath, 'assets/knott.png')))),
|
||||||
payload: jsonEncode(NotificationPayload(profile, conversationId)));
|
payload: jsonEncode(NotificationPayload(profile, conversationId)));
|
||||||
|
|
||||||
|
print("done notify");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -168,7 +218,7 @@ class NixNotificationManager implements NotificationsManager {
|
||||||
NotificationsManager newDesktopNotificationsManager(Future<void> Function(String profileOnion, int convoId) notificationSelectConvo) {
|
NotificationsManager newDesktopNotificationsManager(Future<void> Function(String profileOnion, int convoId) notificationSelectConvo) {
|
||||||
if (Platform.isLinux && !Platform.isAndroid) {
|
if (Platform.isLinux && !Platform.isAndroid) {
|
||||||
try {
|
try {
|
||||||
return LinuxNotificationsManager(notificationSelectConvo);
|
return NixNotificationManager(notificationSelectConvo);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
EnvironmentConfig.debugLog("Failed to create LinuxNotificationManager. Switching off notifications.");
|
EnvironmentConfig.debugLog("Failed to create LinuxNotificationManager. Switching off notifications.");
|
||||||
}
|
}
|
||||||
|
|
45
pubspec.lock
45
pubspec.lock
|
@ -28,7 +28,7 @@ packages:
|
||||||
name: archive
|
name: archive
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.1.6"
|
version: "3.1.11"
|
||||||
args:
|
args:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -154,7 +154,7 @@ packages:
|
||||||
name: collection
|
name: collection
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.15.0"
|
version: "1.16.0"
|
||||||
convert:
|
convert:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -203,7 +203,7 @@ packages:
|
||||||
name: fake_async
|
name: fake_async
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.2.0"
|
version: "1.3.0"
|
||||||
ffi:
|
ffi:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
@ -259,16 +259,16 @@ packages:
|
||||||
flutter_local_notifications:
|
flutter_local_notifications:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: flutter_local_notifications
|
path: "/home/dan/src/openprivacy/flutter_local_notifications/flutter_local_notifications"
|
||||||
url: "https://pub.dartlang.org"
|
relative: false
|
||||||
source: hosted
|
source: path
|
||||||
version: "9.3.2"
|
version: "9.5.3+1"
|
||||||
flutter_local_notifications_linux:
|
flutter_local_notifications_linux:
|
||||||
dependency: transitive
|
dependency: "direct overridden"
|
||||||
description:
|
description:
|
||||||
name: flutter_local_notifications_linux
|
path: "/home/dan/src/openprivacy/flutter_local_notifications/flutter_local_notifications_linux"
|
||||||
url: "https://pub.dartlang.org"
|
relative: false
|
||||||
source: hosted
|
source: path
|
||||||
version: "0.4.2"
|
version: "0.4.2"
|
||||||
flutter_local_notifications_platform_interface:
|
flutter_local_notifications_platform_interface:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
|
@ -385,7 +385,7 @@ packages:
|
||||||
name: js
|
name: js
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.6.3"
|
version: "0.6.4"
|
||||||
json_annotation:
|
json_annotation:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -407,6 +407,13 @@ packages:
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.12.11"
|
version: "0.12.11"
|
||||||
|
material_color_utilities:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: material_color_utilities
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "0.1.4"
|
||||||
meta:
|
meta:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -490,7 +497,7 @@ packages:
|
||||||
name: path
|
name: path
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.8.0"
|
version: "1.8.1"
|
||||||
path_provider:
|
path_provider:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
@ -553,7 +560,7 @@ packages:
|
||||||
name: platform
|
name: platform
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.2"
|
version: "3.1.0"
|
||||||
plugin_platform_interface:
|
plugin_platform_interface:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -635,7 +642,7 @@ packages:
|
||||||
name: source_span
|
name: source_span
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.8.1"
|
version: "1.8.2"
|
||||||
stack_trace:
|
stack_trace:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -684,7 +691,7 @@ packages:
|
||||||
name: test_api
|
name: test_api
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.4.3"
|
version: "0.4.9"
|
||||||
timezone:
|
timezone:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -768,14 +775,14 @@ packages:
|
||||||
name: vector_math
|
name: vector_math
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.1"
|
version: "2.1.2"
|
||||||
vm_service:
|
vm_service:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: vm_service
|
name: vm_service
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "7.3.0"
|
version: "8.2.2"
|
||||||
watcher:
|
watcher:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -840,5 +847,5 @@ packages:
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.1.0"
|
version: "3.1.0"
|
||||||
sdks:
|
sdks:
|
||||||
dart: ">=2.15.0 <3.0.0"
|
dart: ">=2.17.0-0 <3.0.0"
|
||||||
flutter: ">=2.5.0"
|
flutter: ">=2.5.0"
|
||||||
|
|
10
pubspec.yaml
10
pubspec.yaml
|
@ -44,9 +44,17 @@ dependencies:
|
||||||
window_manager: ^0.1.4
|
window_manager: ^0.1.4
|
||||||
# notification plugins
|
# notification plugins
|
||||||
win_toast: ^0.0.2
|
win_toast: ^0.0.2
|
||||||
flutter_local_notifications: 9.3.2
|
# 9.3.2
|
||||||
|
flutter_local_notifications:
|
||||||
|
path: /home/dan/src/openprivacy/flutter_local_notifications/flutter_local_notifications
|
||||||
|
|
||||||
|
|
||||||
desktop_notifications: ^0.6.3
|
desktop_notifications: ^0.6.3
|
||||||
|
|
||||||
|
dependency_overrides:
|
||||||
|
flutter_local_notifications_linux:
|
||||||
|
path: /home/dan/src/openprivacy/flutter_local_notifications/flutter_local_notifications_linux
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
msix: ^2.1.3
|
msix: ^2.1.3
|
||||||
flutter_gherkin: ^3.0.0-rc.9
|
flutter_gherkin: ^3.0.0-rc.9
|
||||||
|
|
Loading…
Reference in New Issue