From dc550daaa1c94e01e7f3ee61699d9c365467f745 Mon Sep 17 00:00:00 2001 From: Dan Ballard Date: Fri, 10 Dec 2021 21:07:47 -0800 Subject: [PATCH] migrate to new libcwtch changes; add vampire and witch; tweak switch button coloring --- lib/themes/neon1.dart | 79 +++++++++++++------------------ lib/themes/opaque.dart | 6 ++- lib/themes/vampire.dart | 70 +++++++++++++++++++++++++++ lib/themes/witch.dart | 70 +++++++++++++++++++++++++++ lib/views/addeditservers.dart | 4 +- lib/views/globalsettingsview.dart | 16 +++---- lib/views/peersettingsview.dart | 2 +- lib/widgets/contactrow.dart | 2 +- 8 files changed, 189 insertions(+), 60 deletions(-) create mode 100644 lib/themes/vampire.dart create mode 100644 lib/themes/witch.dart diff --git a/lib/themes/neon1.dart b/lib/themes/neon1.dart index 58e85443..2b4e396d 100644 --- a/lib/themes/neon1.dart +++ b/lib/themes/neon1.dart @@ -9,24 +9,6 @@ import 'opaque.dart'; final neon1_theme = "neon1"; final neon1_name = "Neon1"; //Todo translate -final Color darkGreyPurple = Color(0xFF281831); -final Color deepPurple = Color(0xFF422850); -final Color mauvePurple = Color(0xFF8E64A5); -final Color whiteishPurple = Color(0xFFE3DFE4); -final Color lightGrey = Color(0xFF9E9E9E); - -final Color whitePurple = Color(0xFFFFFDFF); -final Color softPurple = Color(0xFFFDF3FC); -final Color purple = Color(0xFFDFB9DE); -final Color brightPurple = Color(0xFFD1B0E0); // not in new: portrait badge color -final Color darkPurple = Color(0xFF350052); -final Color greyPurple = Color(0xFF775F84); // not in new: portrait borders -final Color pink = Color(0xFFE85DA1); // not in new: active button color -final Color hotPink = Color(0xFFD20070); // Color(0xFFD01972); -final Color softGrey = Color(0xFFB3B6B3); // not in new theme: blocked -//static final Color softGreen = Color(0xFFA0FFB0); -//static final Color softRed = Color(0xFFFFA0B0); - OpaqueThemeType GetNeon1Theme(String mode) { if (mode == mode_dark) { return Neon1Dark(); @@ -50,18 +32,24 @@ class Neon1Dark extends CwtchDark { get backgroundMainColor => background; // darkGreyPurple; get backgroundPaneColor => header; //darkGreyPurple; - //get backgroundHilightElementColor => deepPurple; get mainTextColor => font; //whiteishPurple; - //get sendHintTextColor => mauvePurple; - //get hilightElementColor => purple; get defaultButtonColor => accent; //hotPink; - /*get defaultButtonTextColor => whiteishPurple; + get textfieldHintColor => mainTextColor; //TODO pick + get toolbarIconColor => settings; //whiteishPurple; + get messageFromMeBackgroundColor => userBubble; // mauvePurple; + get messageFromMeTextColor => font; //whiteishPurple; + get messageFromOtherBackgroundColor => peerBubble; //deepPurple; + get messageFromOtherTextColor => font; //whiteishPurple; + + /*get backgroundHilightElementColor => deepPurple; + get sendHintTextColor => mauvePurple; + get hilightElementColor => purple; + get defaultButtonTextColor => whiteishPurple; get defaultButtonDisabledColor => lightGrey; get defaultButtonDisabledTextColor => darkGreyPurple; get textfieldBackgroundColor => deepPurple; - get textfieldBorderColor => deepPurple;*/ - get textfieldHintColor => mainTextColor; //TODO pick - /* get textfieldErrorColor => hotPink; + get textfieldBorderColor => deepPurple; + get textfieldErrorColor => hotPink; get scrollbarDefaultColor => purple; get portraitBackgroundColor => deepPurple; get portraitOnlineBorderColor => whiteishPurple; @@ -73,11 +61,7 @@ class Neon1Dark extends CwtchDark { get portraitProfileBadgeColor => mauvePurple; get portraitProfileBadgeTextColor => darkGreyPurple; get dropShadowColor => mauvePurple;*/ - get toolbarIconColor => settings; //whiteishPurple; - get messageFromMeBackgroundColor => userBubble; // mauvePurple; - get messageFromMeTextColor => font; //whiteishPurple; - get messageFromOtherBackgroundColor => peerBubble; //deepPurple; - get messageFromOtherTextColor => font; //whiteishPurple; + } class Neon1Light extends CwtchLight { @@ -95,31 +79,32 @@ class Neon1Light extends CwtchLight { get backgroundMainColor => background; //whitePurple; get backgroundPaneColor => header; //softPurple; - //get backgroundHilightElementColor => softPurple; get mainTextColor => settings; - //get sendHintTextColor => purple; - //get hilightElementColor => purple; //darkPurple; // todo shouldn't be this, too dark, makes font unreadable get defaultButtonColor => accent; // hotPink; - /*get defaultButtonTextColor => whitePurple; // ? - get defaultButtonDisabledColor => softGrey; - get textfieldBackgroundColor => purple; - get textfieldBorderColor => purple; */ get textfieldHintColor => font; //TODO pick - //get textfieldErrorColor => hotPink; get scrollbarDefaultColor => accent; - /*get portraitBackgroundColor => softPurple; - get portraitOnlineBorderColor => greyPurple; - get portraitOfflineBorderColor => greyPurple; - get portraitBlockedBorderColor => softGrey; - get portraitBlockedTextColor => softGrey;*/ get portraitContactBadgeColor => accent; - /*get portraitContactBadgeTextColor => whitePurple; - get portraitProfileBadgeColor => brightPurple; - get portraitProfileBadgeTextColor => whitePurple; - get dropShadowColor => purple;*/ get toolbarIconColor => settings; //darkPurple; get messageFromMeBackgroundColor => userBubble; //brightPurple; get messageFromMeTextColor => font; //mainTextColor; get messageFromOtherBackgroundColor => peerBubble; //purple; get messageFromOtherTextColor => font; //darkPurple; + + /*get backgroundHilightElementColor => softPurple; + get sendHintTextColor => purple; + get hilightElementColor => purple; //darkPurple; // todo shouldn't be this, too dark, makes font unreadable + get defaultButtonTextColor => whitePurple; // ? + get defaultButtonDisabledColor => softGrey; + get textfieldBackgroundColor => purple; + get textfieldBorderColor => purple; + get textfieldErrorColor => hotPink; + get portraitBackgroundColor => softPurple; + get portraitOnlineBorderColor => greyPurple; + get portraitOfflineBorderColor => greyPurple; + get portraitBlockedBorderColor => softGrey; + get portraitBlockedTextColor => softGrey; + get portraitContactBadgeTextColor => whitePurple; + get portraitProfileBadgeColor => brightPurple; + get portraitProfileBadgeTextColor => whitePurple; + get dropShadowColor => purple;*/ } \ No newline at end of file diff --git a/lib/themes/opaque.dart b/lib/themes/opaque.dart index f75a6ba4..7f63902e 100644 --- a/lib/themes/opaque.dart +++ b/lib/themes/opaque.dart @@ -3,6 +3,8 @@ import 'dart:core'; import 'package:cwtch/themes/cwtch.dart'; import 'package:cwtch/themes/neon1.dart'; +import 'package:cwtch/themes/vampire.dart'; +import 'package:cwtch/themes/witch.dart'; import 'package:flutter/material.dart'; import 'package:cwtch/settings.dart'; @@ -11,6 +13,8 @@ const mode_dark = "dark"; final themes = { cwtch_theme: {mode_light: CwtchLight(), mode_dark: CwtchDark()}, neon1_theme: {mode_light: Neon1Light(), mode_dark: Neon1Dark()}, + witch_theme: {mode_light: WitchLight(), mode_dark: WitchDark()}, + vampire_theme: {mode_light: VampireLight(), mode_dark: VampireDark()}, }; OpaqueThemeType getTheme(String themeId, String mode) { @@ -68,7 +72,7 @@ abstract class OpaqueThemeType { get sendHintTextColor => red; get defaultButtonColor => red; - get defaultButtonActiveColor => mode == mode_light ? darken(defaultButtonColor) : lighten(defaultButtonColor); + get defaultButtonActiveColor => /*mode == mode_light ? darken(defaultButtonColor) :*/ lighten(defaultButtonColor); get defaultButtonTextColor => red; get defaultButtonDisabledColor => red; get textfieldBackgroundColor => red; diff --git a/lib/themes/vampire.dart b/lib/themes/vampire.dart new file mode 100644 index 00000000..a0ba8191 --- /dev/null +++ b/lib/themes/vampire.dart @@ -0,0 +1,70 @@ +import 'dart:ui'; +import 'dart:core'; + +import 'package:cwtch/themes/cwtch.dart'; +import 'package:flutter/material.dart'; + +import 'opaque.dart'; + +final vampire_theme = "vampire"; +final vampire_name = "Vampire"; //Todo translate + +OpaqueThemeType GetVampireTheme(String mode) { + if (mode == mode_dark) { + return VampireDark(); + } else { + return VampireLight(); + } +} + +class VampireDark extends CwtchDark { + static final Color background = Color(0xFF281831); + static final Color header = Color(0xFF281831); + static final Color userBubble = Color(0xFF9A1218); + static final Color peerBubble = Color(0xFF422850); + static final Color font = Color(0xFFFFFFFF); + static final Color settings = Color(0xFFFDFFFD); + static final Color accent = Color(0xFF8E64A5); + + get name => vampire_name; + get theme => vampire_theme; + get mode => mode_dark; + + get backgroundMainColor => background; // darkGreyPurple; + get backgroundPaneColor => header; //darkGreyPurple; + get mainTextColor => font; //whiteishPurple; + get defaultButtonColor => accent; //hotPink; + get textfieldHintColor => mainTextColor; //TODO pick + get toolbarIconColor => settings; //whiteishPurple; + get messageFromMeBackgroundColor => userBubble; // mauvePurple; + get messageFromMeTextColor => font; //whiteishPurple; + get messageFromOtherBackgroundColor => peerBubble; //deepPurple; + get messageFromOtherTextColor => font; //whiteishPurple; +} + +class VampireLight extends CwtchLight { + static final Color background = Color(0xFFFFFDFD); + static final Color header = Color(0xFFD8C7E1); + static final Color userBubble = Color(0xFFD8C7E1); + static final Color peerBubble = Color(0xFFFFEBEE); + static final Color font = Color(0xFF281831); + static final Color settings = Color(0xFF281831); + static final Color accent = Color(0xFF8E64A5); + + get name => vampire_name; + get theme => vampire_theme; + get mode => mode_light; + + get backgroundMainColor => background; //whitePurple; + get backgroundPaneColor => header; //softPurple; + get mainTextColor => settings; + get defaultButtonColor => accent; // hotPink; + get textfieldHintColor => font; //TODO pick + get scrollbarDefaultColor => accent; + get portraitContactBadgeColor => accent; + get toolbarIconColor => settings; //darkPurple; + get messageFromMeBackgroundColor => userBubble; //brightPurple; + get messageFromMeTextColor => font; //mainTextColor; + get messageFromOtherBackgroundColor => peerBubble; //purple; + get messageFromOtherTextColor => font; //darkPurple; +} \ No newline at end of file diff --git a/lib/themes/witch.dart b/lib/themes/witch.dart new file mode 100644 index 00000000..069051ed --- /dev/null +++ b/lib/themes/witch.dart @@ -0,0 +1,70 @@ +import 'dart:ui'; +import 'dart:core'; + +import 'package:cwtch/themes/cwtch.dart'; +import 'package:flutter/material.dart'; + +import 'opaque.dart'; + +final witch_theme = "witch"; +final witch_name = "Witch"; //Todo translate + +OpaqueThemeType GetWitchTheme(String mode) { + if (mode == mode_dark) { + return WitchDark(); + } else { + return WitchLight(); + } +} + +class WitchDark extends CwtchDark { + static final Color background = Color(0xFF0E1E0E); + static final Color header = Color(0xFF0E1E0E); + static final Color userBubble = Color(0xFF1B5E20); + static final Color peerBubble = Color(0xFF003300); + static final Color font = Color(0xFFFFFFFF); + static final Color settings = Color(0xFFFDFFFD); + static final Color accent = Color(0xFFD20070); + + get name => witch_name; + get theme => witch_theme; + get mode => mode_dark; + + get backgroundMainColor => background; // darkGreyPurple; + get backgroundPaneColor => header; //darkGreyPurple; + get mainTextColor => font; //whiteishPurple; + get defaultButtonColor => accent; //hotPink; + get textfieldHintColor => mainTextColor; //TODO pick + get toolbarIconColor => settings; //whiteishPurple; + get messageFromMeBackgroundColor => userBubble; // mauvePurple; + get messageFromMeTextColor => font; //whiteishPurple; + get messageFromOtherBackgroundColor => peerBubble; //deepPurple; + get messageFromOtherTextColor => font; //whiteishPurple; +} + +class WitchLight extends CwtchLight { + static final Color background = Color(0xFFFDFFFD); + static final Color header = Color(0xFF80E27E); + static final Color userBubble = Color(0xFF80E27E); + static final Color peerBubble = Color(0xFFE8F5E9); + static final Color font = Color(0xFF0E1E0E); + static final Color settings = Color(0xFF0E1E0E); + static final Color accent = Color(0xFFD20070); + + get name => witch_name; + get theme => witch_theme; + get mode => mode_light; + + get backgroundMainColor => background; //whitePurple; + get backgroundPaneColor => header; //softPurple; + get mainTextColor => settings; + get defaultButtonColor => accent; // hotPink; + get textfieldHintColor => font; //TODO pick + get scrollbarDefaultColor => accent; + get portraitContactBadgeColor => accent; + get toolbarIconColor => settings; //darkPurple; + get messageFromMeBackgroundColor => userBubble; //brightPurple; + get messageFromMeTextColor => font; //mainTextColor; + get messageFromOtherBackgroundColor => peerBubble; //purple; + get messageFromOtherTextColor => font; //darkPurple; +} \ No newline at end of file diff --git a/lib/views/addeditservers.dart b/lib/views/addeditservers.dart index 415866b7..e73ec0e4 100644 --- a/lib/views/addeditservers.dart +++ b/lib/views/addeditservers.dart @@ -129,7 +129,7 @@ class _AddEditServerViewState extends State { Provider.of(context, listen: false).cwtch.StopServer(serverInfoState.onion); } }, - activeTrackColor: settings.theme.defaultButtonActiveColor, + activeTrackColor: settings.theme.defaultButtonColor, inactiveTrackColor: settings.theme.defaultButtonDisabledColor, secondary: Icon(CwtchIcons.negative_heart_24px, color: settings.current().mainTextColor), )), @@ -146,7 +146,7 @@ class _AddEditServerViewState extends State { Provider.of(context, listen: false).cwtch.SetServerAttribute(serverInfoState.onion, "autostart", value ? "true" : "false"); } }, - activeTrackColor: settings.theme.defaultButtonActiveColor, + activeTrackColor: settings.theme.defaultButtonColor, inactiveTrackColor: settings.theme.defaultButtonDisabledColor, secondary: Icon(CwtchIcons.favorite_24dp, color: settings.current().mainTextColor), ), diff --git a/lib/views/globalsettingsview.dart b/lib/views/globalsettingsview.dart index 66b14ec2..0156e32f 100644 --- a/lib/views/globalsettingsview.dart +++ b/lib/views/globalsettingsview.dart @@ -77,7 +77,7 @@ class _GlobalSettingsViewState extends State { // Save Settings... saveSettings(context); }, - activeTrackColor: settings.theme.defaultButtonActiveColor, + activeTrackColor: settings.theme.defaultButtonColor, inactiveTrackColor: settings.theme.defaultButtonDisabledColor, secondary: Icon(CwtchIcons.change_theme, color: settings.current().mainTextColor), ), @@ -153,7 +153,7 @@ class _GlobalSettingsViewState extends State { // Save Settings... saveSettings(context); }, - activeTrackColor: settings.theme.defaultButtonActiveColor, + activeTrackColor: settings.theme.defaultButtonColor, inactiveTrackColor: settings.theme.defaultButtonDisabledColor, secondary: Icon(CwtchIcons.block_unknown, color: settings.current().mainTextColor), ), @@ -166,7 +166,7 @@ class _GlobalSettingsViewState extends State { // Save Settings... saveSettings(context); }, - activeTrackColor: settings.theme.defaultButtonActiveColor, + activeTrackColor: settings.theme.defaultButtonColor, inactiveTrackColor: settings.theme.defaultButtonDisabledColor, secondary: Icon(CwtchIcons.streamer_bunnymask, color: settings.current().mainTextColor), ), @@ -183,7 +183,7 @@ class _GlobalSettingsViewState extends State { // Save Settings... saveSettings(context); }, - activeTrackColor: settings.theme.defaultButtonActiveColor, + activeTrackColor: settings.theme.defaultButtonColor, inactiveTrackColor: settings.theme.defaultButtonDisabledColor, secondary: Icon(CwtchIcons.enable_experiments, color: settings.current().mainTextColor), ), @@ -204,7 +204,7 @@ class _GlobalSettingsViewState extends State { // Save Settings... saveSettings(context); }, - activeTrackColor: settings.theme.defaultButtonActiveColor, + activeTrackColor: settings.theme.defaultButtonColor, inactiveTrackColor: settings.theme.defaultButtonDisabledColor, secondary: Icon(CwtchIcons.enable_groups, color: settings.current().mainTextColor), ), @@ -224,7 +224,7 @@ class _GlobalSettingsViewState extends State { // Save Settings... saveSettings(context); }, - activeTrackColor: settings.theme.defaultButtonActiveColor, + activeTrackColor: settings.theme.defaultButtonColor, inactiveTrackColor: settings.theme.defaultButtonDisabledColor, secondary: Icon(CwtchIcons.dns_24px, color: settings.current().mainTextColor), )), @@ -240,7 +240,7 @@ class _GlobalSettingsViewState extends State { } saveSettings(context); }, - activeTrackColor: settings.theme.defaultButtonActiveColor, + activeTrackColor: settings.theme.defaultButtonColor, inactiveTrackColor: settings.theme.defaultButtonDisabledColor, secondary: Icon(Icons.attach_file, color: settings.current().mainTextColor), ), @@ -256,7 +256,7 @@ class _GlobalSettingsViewState extends State { } saveSettings(context); }, - activeTrackColor: settings.theme.defaultButtonActiveColor, + activeTrackColor: settings.theme.defaultButtonColor, inactiveTrackColor: settings.theme.defaultButtonDisabledColor, secondary: Icon(Icons.link, color: settings.current().mainTextColor), ), diff --git a/lib/views/peersettingsview.dart b/lib/views/peersettingsview.dart index 0e02df17..57f42b40 100644 --- a/lib/views/peersettingsview.dart +++ b/lib/views/peersettingsview.dart @@ -137,7 +137,7 @@ class _PeerSettingsViewState extends State { Provider.of(context, listen: false).cwtch.SendProfileEvent(profileOnion, setPeerAttributeJson); } }, - activeTrackColor: settings.theme.defaultButtonActiveColor, + activeTrackColor: settings.theme.defaultButtonColor, inactiveTrackColor: settings.theme.defaultButtonDisabledColor, secondary: Icon(CwtchIcons.block_peer, color: settings.current().mainTextColor), ), diff --git a/lib/widgets/contactrow.dart b/lib/widgets/contactrow.dart index ff1e963f..5872dddb 100644 --- a/lib/widgets/contactrow.dart +++ b/lib/widgets/contactrow.dart @@ -23,7 +23,7 @@ class _ContactRowState extends State { var contact = Provider.of(context); return Card( clipBehavior: Clip.antiAlias, - color: Provider.of(context).selectedConversation == contact.onion ? Provider.of(context).theme.backgroundHilightElementColor : null, + color: Provider.of(context).selectedConversation == contact.identifier ? Provider.of(context).theme.backgroundHilightElementColor : null, borderOnForeground: false, margin: EdgeInsets.all(0.0), child: InkWell(