added themeMode to shareable paints

This commit is contained in:
Kima 2024-02-08 22:10:47 +01:00
parent 076d6a12a2
commit cccda1aadb
4 changed files with 18 additions and 1 deletions

View File

@ -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;

View File

@ -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),
);
}
}

View File

@ -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);

View File

@ -543,6 +543,9 @@ class PaintListScreenState extends State<PaintListScreen>
// changing shadow effect
settingsProvider.update(shadowEffect: newThemeByID!.shadowEffect);
// changing theme mode
settingsProvider.update(theme: newThemeByID!.themeMode);
// changing theme
settingsProvider.update(
customBackgroundColor: newThemeByID!.backgroundColor,