[PATCH v2] Use system theme accent color
Export this patch
---
Switched to the library you recommend.
lib/app.dart | 33 +++++++++++++-------
linux/flutter/generated_plugin_registrant.cc | 4 +++
linux/flutter/generated_plugins.cmake | 1 +
pubspec.lock | 8 +++++
pubspec.yaml | 1 +
5 files changed, 35 insertions(+), 12 deletions(-)
diff --git a/lib/app.dart b/lib/app.dart
index f52ab94..e623fd0 100644
--- a/lib/app.dart
+++ b/lib/app.dart
@@ -3,6 +3,7 @@ import 'dart:io';
import 'package:app_links/app_links.dart';
import 'package:connectivity_plus/connectivity_plus.dart';
+import 'package:dynamic_color/dynamic_color.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:share_handler/share_handler.dart';
@@ -545,17 +546,25 @@ class _AppState extends State<App> with WidgetsBindingObserver {
@override
Widget build(BuildContext context) {
- return MaterialApp(
- title: 'Goguma',
- theme: ThemeData(colorSchemeSeed: Colors.indigo),
- darkTheme: ThemeData(brightness: Brightness.dark, colorSchemeSeed: Colors.indigo),
- themeMode: _themeMode,
- initialRoute: _initialRoute,
- onGenerateRoute: _handleGenerateRoute,
- onGenerateInitialRoutes: _handleGenerateInitialRoutes,
- navigatorKey: _navigatorKey,
- scaffoldMessengerKey: _scaffoldMessengerKey,
- debugShowCheckedModeBanner: false,
- );
+ return DynamicColorBuilder(builder: (ColorScheme? lightDynamic, ColorScheme? darkDynamic) {
+ ColorScheme lightColorScheme = ColorScheme.fromSeed(seedColor: Colors.indigo);
+ ColorScheme darkColorScheme = ColorScheme.fromSeed(seedColor: Colors.indigo, brightness: Brightness.dark);
+ if (lightDynamic != null && darkDynamic != null) {
+ lightColorScheme = lightDynamic.harmonized();
+ darkColorScheme = darkDynamic.harmonized();
+ }
+ return MaterialApp(
+ title: 'Goguma',
+ theme: ThemeData(colorScheme: lightColorScheme),
+ darkTheme: ThemeData(colorScheme: darkColorScheme),
+ themeMode: _themeMode,
+ initialRoute: _initialRoute,
+ onGenerateRoute: _handleGenerateRoute,
+ onGenerateInitialRoutes: _handleGenerateInitialRoutes,
+ navigatorKey: _navigatorKey,
+ scaffoldMessengerKey: _scaffoldMessengerKey,
+ debugShowCheckedModeBanner: false,
+ );
+ });
}
}
diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc
index 4914847..976b671 100644
--- a/linux/flutter/generated_plugin_registrant.cc
+++ b/linux/flutter/generated_plugin_registrant.cc
@@ -6,12 +6,16 @@
#include "generated_plugin_registrant.h"
+#include <dynamic_color/dynamic_color_plugin.h>
#include <file_selector_linux/file_selector_plugin.h>
#include <gtk/gtk_plugin.h>
#include <url_launcher_linux/url_launcher_plugin.h>
#include <webcrypto/webcrypto_plugin.h>
void fl_register_plugins(FlPluginRegistry* registry) {
+ g_autoptr(FlPluginRegistrar) dynamic_color_registrar =
+ fl_plugin_registry_get_registrar_for_plugin(registry, "DynamicColorPlugin");
+ dynamic_color_plugin_register_with_registrar(dynamic_color_registrar);
g_autoptr(FlPluginRegistrar) file_selector_linux_registrar =
fl_plugin_registry_get_registrar_for_plugin(registry, "FileSelectorPlugin");
file_selector_plugin_register_with_registrar(file_selector_linux_registrar);
diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake
index 3823e20..c3e0324 100644
--- a/linux/flutter/generated_plugins.cmake
+++ b/linux/flutter/generated_plugins.cmake
@@ -3,6 +3,7 @@
#
list(APPEND FLUTTER_PLUGIN_LIST
+ dynamic_color
file_selector_linux
gtk
url_launcher_linux
diff --git a/pubspec.lock b/pubspec.lock
index 88e7e33..1663d92 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -137,6 +137,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.2.3"
+ dynamic_color:
+ dependency: "direct main"
+ description:
+ name: dynamic_color
+ sha256: eae98052fa6e2826bdac3dd2e921c6ce2903be15c6b7f8b6d8a5d49b5086298d
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.7.0"
fake_async:
dependency: transitive
description:
diff --git a/pubspec.yaml b/pubspec.yaml
index 5f59a73..1d6343f 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -46,6 +46,7 @@ dependencies:
file_selector: ^1.0.1
flutter_apns_only: ^1.6.0
share_handler: ^0.0.21
+ dynamic_color: ^1.7.0
dev_dependencies:
flutter_lints: ^4.0.0
base-commit: 4ca03506b2ba23d9da29e2c9c1fb2bb1db304db8
--
2.38.0
Pushed, thanks!