diff --git a/filcnaplo/lib/api/client.dart b/filcnaplo/lib/api/client.dart index 5d628c2..a728a02 100644 --- a/filcnaplo/lib/api/client.dart +++ b/filcnaplo/lib/api/client.dart @@ -12,6 +12,7 @@ import 'package:filcnaplo/models/shared_theme.dart'; import 'package:filcnaplo/models/supporter.dart'; import 'package:filcnaplo_kreta_api/models/school.dart'; import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; import 'package:http/http.dart' as http; import 'package:connectivity_plus/connectivity_plus.dart'; @@ -235,6 +236,9 @@ class FilcAPI { theme.json['accent_color'] = theme.accentColor.value.toString(); theme.json['icon_color'] = theme.iconColor.value.toString(); theme.json['shadow_effect'] = theme.shadowEffect.toString(); + theme.json['theme_mode'] = theme.themeMode == ThemeMode.dark + ? 'dark' + : (theme.themeMode == ThemeMode.light ? 'light' : null.toString()); // set linked grade colors theme.json['grade_colors_id'] = theme.gradeColors.id; diff --git a/filcnaplo/lib/models/shared_theme.dart b/filcnaplo/lib/models/shared_theme.dart index e9cb574..e6be714 100644 --- a/filcnaplo/lib/models/shared_theme.dart +++ b/filcnaplo/lib/models/shared_theme.dart @@ -1,4 +1,4 @@ -import 'dart:ui'; +import 'package:flutter/material.dart'; class SharedTheme { Map json; @@ -12,6 +12,7 @@ class SharedTheme { bool shadowEffect; SharedGradeColors gradeColors; String displayName; + ThemeMode? themeMode; SharedTheme({ required this.json, @@ -25,6 +26,7 @@ class SharedTheme { required this.shadowEffect, required this.gradeColors, this.displayName = 'displayName', + this.themeMode, }); factory SharedTheme.fromJson(Map json, SharedGradeColors gradeColors) { @@ -39,6 +41,10 @@ class SharedTheme { iconColor: Color(json['icon_color']), shadowEffect: json['shadow_effect'] ?? true, gradeColors: gradeColors, + displayName: json['display_name'] ?? 'no_name', + themeMode: json['theme_mode'] == 'dark' + ? ThemeMode.dark + : (json['theme_mode'] == 'light' ? ThemeMode.light : null), ); } } diff --git a/filcnaplo_kreta_api/lib/providers/share_provider.dart b/filcnaplo_kreta_api/lib/providers/share_provider.dart index 9d19b8f..ee0651a 100644 --- a/filcnaplo_kreta_api/lib/providers/share_provider.dart +++ b/filcnaplo_kreta_api/lib/providers/share_provider.dart @@ -4,6 +4,7 @@ import 'package:filcnaplo/models/settings.dart'; import 'package:filcnaplo/models/shared_theme.dart'; // import 'package:filcnaplo/models/shared_theme.dart'; import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:uuid/uuid.dart'; @@ -47,6 +48,9 @@ class ShareProvider extends ChangeNotifier { ?.value ?? const Color(0x00000000).value, 'shadow_effect': settings.shadowEffect, + 'theme_mode': settings.theme == ThemeMode.dark + ? 'dark' + : (settings.theme == ThemeMode.light ? 'light' : null) }; SharedTheme theme = SharedTheme.fromJson(themeJson, gradeColors); diff --git a/filcnaplo_mobile_ui/lib/screens/settings/submenu/paint_list.dart b/filcnaplo_mobile_ui/lib/screens/settings/submenu/paint_list.dart index 05d43a1..ab059ca 100644 --- a/filcnaplo_mobile_ui/lib/screens/settings/submenu/paint_list.dart +++ b/filcnaplo_mobile_ui/lib/screens/settings/submenu/paint_list.dart @@ -543,6 +543,9 @@ class PaintListScreenState extends State // changing shadow effect settingsProvider.update(shadowEffect: newThemeByID!.shadowEffect); + // changing theme mode + settingsProvider.update(theme: newThemeByID!.themeMode); + // changing theme settingsProvider.update( customBackgroundColor: newThemeByID!.backgroundColor,