feat: integrate system_theme for dynamic accent colors

This commit is contained in:
Gringo
2026-03-10 22:24:47 +01:00
parent 0ee8be009f
commit 977ec853b2
8 changed files with 45 additions and 2 deletions
+17 -2
View File
@@ -13,12 +13,16 @@ import 'package:ndk/ndk.dart';
import 'package:ndk/shared/nips/nip01/bip340.dart';
import 'package:ndk_flutter/ndk_flutter.dart';
import 'package:ndk_flutter/l10n/app_localizations.dart' as ndk_flutter;
import 'package:system_theme/system_theme.dart';
import 'package:toastification/toastification.dart';
import 'package:shared_preferences/shared_preferences.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
SystemTheme.fallbackColor = Colors.deepPurpleAccent;
await SystemTheme.accentColor.load();
final ndk = Ndk(
NdkConfig(
eventVerifier: kIsWeb ? WebEventVerifier() : Bip340EventVerifier(),
@@ -59,8 +63,19 @@ class MainApp extends StatelessWidget {
return ToastificationWrapper(
child: GetMaterialApp(
title: 'File Transfer',
theme: ThemeData.light(),
darkTheme: ThemeData.dark(),
theme: ThemeData.from(
colorScheme: ColorScheme.fromSeed(
seedColor: SystemTheme.accentColor.accent,
brightness: Brightness.light,
),
),
darkTheme: ThemeData.from(
colorScheme: ColorScheme.fromSeed(
seedColor: SystemTheme.accentColor.accent,
brightness: Brightness.dark,
),
),
themeMode: ThemeMode.system,
localizationsDelegates: const [ndk_flutter.AppLocalizations.delegate],
getPages: [
GetPage(
@@ -9,6 +9,7 @@
#include <desktop_drop/desktop_drop_plugin.h>
#include <file_saver/file_saver_plugin.h>
#include <flutter_secure_storage_linux/flutter_secure_storage_linux_plugin.h>
#include <system_theme/system_theme_plugin.h>
#include <url_launcher_linux/url_launcher_plugin.h>
void fl_register_plugins(FlPluginRegistry* registry) {
@@ -21,6 +22,9 @@ void fl_register_plugins(FlPluginRegistry* registry) {
g_autoptr(FlPluginRegistrar) flutter_secure_storage_linux_registrar =
fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterSecureStorageLinuxPlugin");
flutter_secure_storage_linux_plugin_register_with_registrar(flutter_secure_storage_linux_registrar);
g_autoptr(FlPluginRegistrar) system_theme_registrar =
fl_plugin_registry_get_registrar_for_plugin(registry, "SystemThemePlugin");
system_theme_plugin_register_with_registrar(system_theme_registrar);
g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar =
fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin");
url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar);
+1
View File
@@ -6,6 +6,7 @@ list(APPEND FLUTTER_PLUGIN_LIST
desktop_drop
file_saver
flutter_secure_storage_linux
system_theme
url_launcher_linux
)
@@ -10,6 +10,7 @@ import file_picker
import file_saver
import flutter_secure_storage_darwin
import shared_preferences_foundation
import system_theme
import url_launcher_macos
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
@@ -18,5 +19,6 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
FileSaverPlugin.register(with: registry.registrar(forPlugin: "FileSaverPlugin"))
FlutterSecureStorageDarwinPlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStorageDarwinPlugin"))
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
SystemThemePlugin.register(with: registry.registrar(forPlugin: "SystemThemePlugin"))
UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))
}
+16
View File
@@ -729,6 +729,22 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.4.1"
system_theme:
dependency: "direct main"
description:
name: system_theme
sha256: "827cc5f94a6c3097a4c08d4f9eb11d345322f9deea5be1cb73611ff24bdf45bb"
url: "https://pub.dev"
source: hosted
version: "3.2.0"
system_theme_web:
dependency: transitive
description:
name: system_theme_web
sha256: a354b25ff0788ed802b48b632187d344a841b2034f16e4f6cdaa295e4a41a8aa
url: "https://pub.dev"
source: hosted
version: "0.0.4"
term_glyph:
dependency: transitive
description:
+1
View File
@@ -25,6 +25,7 @@ dependencies:
file_transfer_sdk:
path: packages/file_transfer_sdk
shared_preferences: ^2.5.4
system_theme: ^3.2.0
dev_dependencies:
flutter_test:
@@ -9,6 +9,7 @@
#include <desktop_drop/desktop_drop_plugin.h>
#include <file_saver/file_saver_plugin.h>
#include <flutter_secure_storage_windows/flutter_secure_storage_windows_plugin.h>
#include <system_theme/system_theme_plugin.h>
#include <url_launcher_windows/url_launcher_windows.h>
void RegisterPlugins(flutter::PluginRegistry* registry) {
@@ -18,6 +19,8 @@ void RegisterPlugins(flutter::PluginRegistry* registry) {
registry->GetRegistrarForPlugin("FileSaverPlugin"));
FlutterSecureStorageWindowsPluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("FlutterSecureStorageWindowsPlugin"));
SystemThemePluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("SystemThemePlugin"));
UrlLauncherWindowsRegisterWithRegistrar(
registry->GetRegistrarForPlugin("UrlLauncherWindows"));
}
+1
View File
@@ -6,6 +6,7 @@ list(APPEND FLUTTER_PLUGIN_LIST
desktop_drop
file_saver
flutter_secure_storage_windows
system_theme
url_launcher_windows
)