new colors

This commit is contained in:
balazsmanus@chameleon
2025-02-27 16:40:32 +01:00
parent 5d2266d6ef
commit fa3407785a
9 changed files with 108 additions and 82 deletions

View File

@@ -33,20 +33,20 @@ class FilcAPI {
static const plusAuthLogin = "0.0.0.0";
static const plusAuthCallback = "0.0.0.0";
static const plusActivation = "0.0.0.0";
static const plusScopes = "0.0.0.0/";
static const plusScopes = "0.0.0.0";
// Updates
static const repo = "refilc/naplo";
static const repo = "QwIT-Development/app-legacy";
static const releases = "https://api.github.com/repos/$repo/releases";
// Share API
static const themeShare = "https://api.refilcapp.hu/v3/shared/theme/add";
static const themeGet = "https://api.refilcapp.hu/v3/shared/theme/get";
static const themeShare = "$baseUrl/v3/shared/theme/add";
static const themeGet = "$baseUrl/v3/shared/theme/get";
static const allThemes = "$themeGet/all";
static const themeByID = "$themeGet/";
static const gradeColorsShare = "https://api.refilcapp.hu/v3/shared/grade-colors/add";
static const gradeColorsGet = "https://api.refilcapp.hu/v3/shared/grade-colors/get";
static const gradeColorsShare = "$baseUrl/v3/shared/grade-colors/add";
static const gradeColorsGet = "$baseUrl/v3/shared/grade-colors/get";
static const allGradeColors = "$gradeColorsGet/all";
static const gradeColorsByID = "$gradeColorsGet/";

View File

@@ -485,14 +485,14 @@ class SettingsProvider extends ChangeNotifier {
bellDelayEnabled: false,
bellDelay: 0,
gradeOpeningFun: false,
iconPack: IconPack.cupertino,
customAccentColor: const Color(0xff3D7BF4),
iconPack: IconPack.material,
customAccentColor: const Color(0xFFA7DC22),
customBackgroundColor: const Color(0xff000000),
customHighlightColor: const Color(0xff222222),
customIconColor: const Color(0x00000000),
customTextColor: const Color(0x00000000),
shadowEffect: true,
premiumScopes: [],
shadowEffect: false,
premiumScopes: ["refilc.plus.*"],
premiumAccessToken: "",
premiumLogin: "",
lastAccountId: "",
@@ -504,14 +504,14 @@ class SettingsProvider extends ChangeNotifier {
welcomeMessage: '',
appIcon: 'refilc_default',
currentThemeId: '',
currentThemeDisplayName: '',
currentThemeCreator: 'reFilc',
currentThemeDisplayName: 'Alapértelmezett',
currentThemeCreator: 'Firka',
showBreaks: false,
pinSetGeneral: '',
pinSetPersonalize: '',
pinSetNotify: '',
pinSetExtras: '',
fontFamily: '',
fontFamily: 'Figtree',
titleOnlyFont: false,
plusSessionId: '',
calSyncRoomLocation: 'location',
@@ -522,8 +522,8 @@ class SettingsProvider extends ChangeNotifier {
navShadow: true,
newColors: true,
uwuMode: false,
newPopups: true,
unseenNewFeatures: ['grade_exporting'],
newPopups: false,
unseenNewFeatures: [],
cloudSyncEnabled: false,
cloudSyncToken: '',
updatedAt: DateTime.now(),

View File

@@ -17,7 +17,7 @@ enum AccentColor {
}
Map<AccentColor, Color> accentColorMap = {
AccentColor.filc: const Color(0xFF3D7BF4),
AccentColor.filc: const Color(0xFFA7DC22),
AccentColor.blue: Colors.blue.shade300,
AccentColor.green: Colors.green.shade400,
AccentColor.lime: Colors.lightGreen.shade400,
@@ -28,69 +28,69 @@ Map<AccentColor, Color> accentColorMap = {
AccentColor.purple: Colors.purple.shade300,
//AccentColor.none: Colors.black,
AccentColor.ogfilc: const Color(0xff20AC9B),
AccentColor.adaptive: const Color(0xFF3D7BF4),
AccentColor.custom: const Color(0xFF3D7BF4),
AccentColor.adaptive: const Color(0xFFA7DC22),
AccentColor.custom: const Color(0xFFA7DC22),
};
// new v5 things
Map<AccentColor, Color> lightPrimary = {
AccentColor.filc: const Color(0xFF050B15),
AccentColor.filc: const Color(0xFF394C0A), //
};
Map<AccentColor, Color> lightSecondary = {
AccentColor.filc: const Color(0xFF3F444F),
AccentColor.filc: const Color(0xCC394C0A), //
};
Map<AccentColor, Color> lightTeritary = {
AccentColor.filc: const Color(0xFF1C469A),
AccentColor.filc: const Color(0x80394C0A), //
};
Map<AccentColor, Color> lightIcon = {
AccentColor.filc: const Color(0xFF0A2456),
};
Map<AccentColor, Color> lightAccent = {
AccentColor.filc: const Color(0xFF487DE6),
AccentColor.filc: const Color(0xFFA7DC22), //
};
Map<AccentColor, Color> lightBgDarkened = {
AccentColor.filc: const Color(0xFFB9C8E5),
AccentColor.filc: const Color(0xFFFAFFF0), //
};
Map<AccentColor, Color> lightBtnSecStrk = {
AccentColor.filc: const Color(0xFFCEDBF5),
};
Map<AccentColor, Color> lightBg = {
AccentColor.filc: const Color(0xFFDAE4F7),
AccentColor.filc: const Color(0xFFF3FBDE), //
};
Map<AccentColor, Color> lightCard = {
AccentColor.filc: const Color(0xFFEDF3FF),
AccentColor.filc: const Color(0xFFF3FBDE), //
};
Map<AccentColor, Color> lightBtnSec = {
AccentColor.filc: const Color(0xFFFBFCFF),
AccentColor.filc: const Color(0xFFFEFFFD), //
};
Map<AccentColor, Color> darkPrimary = {
AccentColor.filc: const Color(0xFFEBF1FD),
AccentColor.filc: const Color(0xFFEAF7CC), //
};
Map<AccentColor, Color> darkSecondary = {
AccentColor.filc: const Color(0xFFCFD8E9),
AccentColor.filc: const Color(0xB3EAF7CC), //
};
Map<AccentColor, Color> darkTeritary = {
AccentColor.filc: const Color(0xFFAEC8FC),
AccentColor.filc: const Color(0x80EAF7CC), //
};
Map<AccentColor, Color> darkIcon = {
AccentColor.filc: const Color(0xFFBAD1FF),
};
Map<AccentColor, Color> darkAccent = {
AccentColor.filc: const Color(0xFF487DE6),
AccentColor.filc: const Color(0xFFA7DC22), //
};
Map<AccentColor, Color> darkBgDarkened = {
AccentColor.filc: const Color(0xFF010205),
AccentColor.filc: const Color(0xFF0D1202), //
};
Map<AccentColor, Color> darkBtnSecStrk = {
AccentColor.filc: const Color(0xFF1C2230),
};
Map<AccentColor, Color> darkBg = {
AccentColor.filc: const Color(0xFF070A0E),
AccentColor.filc: const Color(0xFF141905), //
};
Map<AccentColor, Color> darkCard = {
AccentColor.filc: const Color(0xFF0F131B),
AccentColor.filc: const Color(0xFF141905), //
};
Map<AccentColor, Color> darkBtnSec = {
AccentColor.filc: const Color(0xFF131822),
AccentColor.filc: const Color(0xFF20290B), //
};

View File

@@ -7,9 +7,9 @@ class DarkMobileAppColors implements ThemeAppColors {
@override
final text = Colors.white;
@override
final background = const Color(0xff000000);
final background = const Color(0xff0D1202); //
@override
final highlight = const Color(0xff141516);
final highlight = const Color(0xff141905); //
@override
final red = const Color(0xffFF453A);
@override
@@ -19,7 +19,7 @@ class DarkMobileAppColors implements ThemeAppColors {
@override
final green = const Color(0xff32D74B);
@override
final filc = const Color(0xff3d7bf4);
final filc = const Color(0xFFA7DC22); //
@override
final teal = const Color(0xff64D2FF);
@override
@@ -32,24 +32,24 @@ class DarkMobileAppColors implements ThemeAppColors {
final pink = const Color(0xffFF375F);
// new default grade colors
@override
final gradeFive = const Color(0xff007D49);
final gradeFive = const Color(0xFF22CCAD); //
@override
final gradeFour = const Color(0xFF34C759);
final gradeFour = const Color(0xFF92EA3B); //
@override
final gradeThree = const Color(0xFFFFCC00);
final gradeThree = const Color(0xFFF9CF00); //
@override
final gradeTwo = const Color(0xFFFF8008);
final gradeTwo = const Color(0xFFFFA046); //
@override
final gradeOne = const Color(0xFFFF453A);
final gradeOne = const Color(0xFFFF54A1); //
// v5 ui login
@override
final loginPrimary = const Color(0xFFD4DAE7);
final loginPrimary = const Color(0xFF394C0A); //
@override
final loginSecondary = const Color(0xFFA4B1CC);
final loginSecondary = const Color(0xCC394C0A); //
@override
final inputBorder = const Color(0xFF586A8E);
final inputBorder = const Color(0xFFA7DC22); //
@override
final loginBackground = const Color(0xFF0F131D);
final loginBackground = const Color(0xFFFAFFF0); //
@override
final buttonBackground = const Color(0xFF3D7BF4);
final buttonBackground = const Color(0xFFFEFFFD); //
}

View File

@@ -7,9 +7,9 @@ class LightMobileAppColors implements ThemeAppColors {
@override
final text = const Color(0xFF000000);
@override
final background = const Color(0xffF4F9FF);
final background = const Color(0xffFAFFF0); //
@override
final highlight = const Color(0xffFFFFFF);
final highlight = const Color(0xffF3FBDE); //
@override
final red = const Color(0xffFF3B30);
@override
@@ -19,7 +19,7 @@ class LightMobileAppColors implements ThemeAppColors {
@override
final green = const Color(0xff34C759);
@override
final filc = const Color(0xff3d7bf4);
final filc = const Color(0xFFA7DC22); //
@override
final teal = const Color(0xff5AC8FA);
@override
@@ -32,24 +32,24 @@ class LightMobileAppColors implements ThemeAppColors {
final pink = const Color(0xffFF2D55);
// new default grade colors
@override
final gradeFive = const Color(0xff007D49);
final gradeFive = const Color(0xFF22CCAD); //
@override
final gradeFour = const Color(0xFF34C759);
final gradeFour = const Color(0xFF92EA3B); //
@override
final gradeThree = const Color(0xFFFFCC00);
final gradeThree = const Color(0xFFF9CF00); //
@override
final gradeTwo = const Color(0xFFFF8008);
final gradeTwo = const Color(0xFFFFA046); //
@override
final gradeOne = const Color(0xFFFF453A);
final gradeOne = const Color(0xFFFF54A1); //
// ui v5 login
@override
final loginPrimary = const Color(0xFF0A1C41);
final loginPrimary = const Color(0xFF394C0A); //
@override
final loginSecondary = const Color(0xFF0A1C41);
final loginSecondary = const Color(0xCC394C0A); //
@override
final inputBorder = const Color(0xFF586A8E);
final inputBorder = const Color(0xFFA7DC22); //
@override
final loginBackground = const Color(0xFFEFF4FE);
final loginBackground = const Color(0xFFFAFFF0); //
@override
final buttonBackground = const Color(0xFF0A1C41);
final buttonBackground = const Color(0xFFFEFFFD); //
}

View File

@@ -6,6 +6,7 @@ import 'package:refilc/models/shared_theme.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:uuid/uuid.dart';
import 'package:refilc/models/user.dart';
List? _cachedThemesJson;
@@ -24,17 +25,23 @@ class ShareProvider extends ChangeNotifier {
Future<(SharedTheme?, int)> shareCurrentTheme(
BuildContext context, {
bool isPublic = false,
bool shareNick = true,
bool shareNick = false,
required SharedGradeColors gradeColors,
String displayName = '',
}) async {
final SettingsProvider settings =
Provider.of<SettingsProvider>(context, listen: false);
String? nickname = _user.nickname;
if (_user.nickname == _user.name || _user.nickname == '') {
nickname = 'Anonymous';
}
Map themeJson = {
'public_id': const Uuid().v4(),
'is_public': isPublic,
'nickname': shareNick ? _user.nickname : 'Anonymous',
'nickname': shareNick ? nickname : 'Anonymous',
'display_name': displayName,
'background_color': (settings.customBackgroundColor ??
SettingsProvider.defaultSettings().customBackgroundColor)
@@ -168,7 +175,7 @@ Future<List<SharedTheme>> getAllPublicThemes(BuildContext context,
Map gradeColorsJson = {
'public_id': const Uuid().v4(),
'is_public': isPublic,
'nickname': shareNick ? _user.nickname : 'Anonymous',
'nickname': 'Anonymous',
'five_color': settings.gradeColors[4].value,
'four_color': settings.gradeColors[3].value,
'three_color': settings.gradeColors[2].value,

View File

@@ -51,10 +51,10 @@ class LoginScreenState extends State<LoginScreen> {
super.initState();
showBack = widget.back;
SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle(
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
statusBarColor: Colors.transparent,
statusBarIconBrightness: Brightness.light,
systemNavigationBarColor: Colors.white,
statusBarIconBrightness: Brightness.dark,
systemNavigationBarColor: AppColors.of(context).loginBackground,
systemNavigationBarIconBrightness: Brightness.dark,
));
@@ -90,12 +90,12 @@ class LoginScreenState extends State<LoginScreen> {
return Scaffold(
body: Container(
decoration: const BoxDecoration(color: Color(0xFFDAE4F7)),
decoration: BoxDecoration(color: AppColors.of(context).loginBackground),
child: SingleChildScrollView(
physics: const ClampingScrollPhysics(),
controller: _scrollController,
child: Container(
decoration: const BoxDecoration(color: Color(0xFFDAE4F7)),
decoration: BoxDecoration(color: AppColors.of(context).loginBackground),
width: MediaQuery.of(context).size.width,
height: MediaQuery.of(context).size.height,
child: SafeArea(
@@ -111,10 +111,10 @@ class LoginScreenState extends State<LoginScreen> {
width: 30.0,
),
const SizedBox(width: 8),
const Text(
'reFilc',
Text(
'Firka',
style: TextStyle(
color: Color(0xFF050B15),
color: AppColors.of(context).loginPrimary,
fontSize: 18.0,
fontWeight: FontWeight.bold,
fontFamily: 'Montserrat'),
@@ -162,8 +162,8 @@ class LoginScreenState extends State<LoginScreen> {
children: [
Text(
"welcome_title_$i".i18n,
style: const TextStyle(
color: Color(0xFF050B15),
style: TextStyle(
color: AppColors.of(context).loginPrimary,
fontSize: 19,
fontFamily: 'Montserrat',
fontWeight: FontWeight.w700,
@@ -176,8 +176,8 @@ class LoginScreenState extends State<LoginScreen> {
right: 20),
child: Text(
"welcome_text_$i".i18n,
style: const TextStyle(
color: Color(0xFF050B15),
style: TextStyle(
color: AppColors.of(context).loginSecondary,
fontFamily: 'FigTree',
fontWeight:
FontWeight.w500,
@@ -204,9 +204,9 @@ class LoginScreenState extends State<LoginScreen> {
Container(
height: 280,
width: double.infinity,
decoration: const BoxDecoration(
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [Color(0x00DAE4F7), Color(0xFFDAE4F7)],
colors: [AppColors.of(context).loginBackground.withAlpha(0), AppColors.of(context).loginBackground],
stops: [0, 0.12],
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
@@ -247,8 +247,8 @@ class LoginScreenState extends State<LoginScreen> {
MediaQuery.of(context)
.viewInsets
.bottom,
decoration: const BoxDecoration(
color: Color(0xFFDAE4F7),
decoration: BoxDecoration(
color: AppColors.of(context).loginBackground,
borderRadius: BorderRadius.only(
topRight:
Radius.circular(24.0),
@@ -268,9 +268,9 @@ class LoginScreenState extends State<LoginScreen> {
vertical: 18),
child: Container(
decoration:
const BoxDecoration(
BoxDecoration(
color:
Color(0xFFB9C8E5),
AppColors.of(context).loginPrimary,
borderRadius:
BorderRadius.only(
topRight:
@@ -333,9 +333,10 @@ class LoginScreenState extends State<LoginScreen> {
},
child: Text(
"login_w_kreta_acc".i18n,
style: const TextStyle(
style: TextStyle(
fontFamily: 'Montserrat',
fontSize: 16,
color: AppColors.of(context).loginPrimary,
fontWeight: FontWeight.w700),
)),
),

View File

@@ -46,6 +46,7 @@ class ShareThemeDialog extends StatefulWidget {
class ShareThemeDialogState extends State<ShareThemeDialog> {
final _title = TextEditingController();
bool isPublic = false;
bool shareNick = false;
late ShareProvider shareProvider;
@@ -111,6 +112,19 @@ class ShareThemeDialogState extends State<ShareThemeDialog> {
title: Text("is_public".i18n),
contentPadding: const EdgeInsets.only(left: 15.0, right: 10.0),
),
SwitchListTile(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(16.0),
),
value: shareNick,
onChanged: (value) {
setState(() {
shareNick = value;
});
},
title: Text("shareNickname".i18n),
contentPadding: const EdgeInsets.only(left: 15.0, right: 10.0),
),
],
),
],
@@ -160,6 +174,7 @@ class ShareThemeDialogState extends State<ShareThemeDialog> {
gradeColors: gradeColors!,
isPublic: isPublic,
displayName: _title.text,
shareNick: shareNick
);
if (themeStatus == 429) {

View File

@@ -37,6 +37,7 @@ extension SettingsLocalization on String {
"secret": "Secret Settings",
"goodstudent": "Good student mode",
"presentation": "Presentation Mode",
"shareNickname": "Share Nickname",
"goodstudent_disclaimer":
"reFilc can not be held liable for the usage of this feature.\n\n(if your mother beats you up because you showed her fake grades, you can only blame yourself for it)",
},
@@ -74,6 +75,7 @@ extension SettingsLocalization on String {
"secret": "Titkos Beállítások",
"goodstudent": "Jó tanuló mód",
"presentation": "Bemutató mód",
"shareNickname": "Megosztás becenévvel",
"goodstudent_disclaimer":
"A reFilc minden felelősséget elhárít a funkció használatával kapcsolatban.\n\n(Értsd: ha az anyád megver, mert megtévesztő ábrákat mutattál neki, azért csakis magadat hibáztathatod.)",
},
@@ -112,6 +114,7 @@ extension SettingsLocalization on String {
"secret": "Geheime Einstellungen",
"presentation": "Präsentationsmodus",
"goodstudent": "Guter Student Modus",
"shareNickname": "Nach Spitznamen teilen",
"goodstudent_disclaimer":
"reFilc kann nicht für die Nutzung dieser Funktion haftbar gemacht werden.\n\n(Wenn deine Mutter dich verprügelt, weil du ihr falsche Noten gezeigt hast, kannst du dir nur die Schuld dafür geben)",
},