theme fixes; scroollbar for addContact; messageRow space optimization for android
continuous-integration/drone/pr Build is pending Details

This commit is contained in:
Dan Ballard 2021-12-21 00:07:16 -05:00
parent 5f21ebc2b2
commit da9d093a13
12 changed files with 70 additions and 43 deletions

View File

@ -47,6 +47,7 @@ class CwtchDark extends OpaqueThemeType {
get backgroundMainColor => background; // darkGreyPurple; get backgroundMainColor => background; // darkGreyPurple;
get backgroundPaneColor => header; //darkGreyPurple; get backgroundPaneColor => header; //darkGreyPurple;
get topbarColor => header; //darkGreyPurple;
get backgroundHilightElementColor => deepPurple; get backgroundHilightElementColor => deepPurple;
get mainTextColor => font; //whiteishPurple; get mainTextColor => font; //whiteishPurple;
get sendHintTextColor => mauvePurple; get sendHintTextColor => mauvePurple;
@ -90,7 +91,8 @@ class CwtchLight extends OpaqueThemeType {
get mode => mode_light; get mode => mode_light;
get backgroundMainColor => background; //whitePurple; get backgroundMainColor => background; //whitePurple;
get backgroundPaneColor => header; //softPurple; get backgroundPaneColor => background; //whitePurple;
get topbarColor => header; //softPurple;
get backgroundHilightElementColor => softPurple; get backgroundHilightElementColor => softPurple;
get mainTextColor => settings; get mainTextColor => settings;
get sendHintTextColor => purple; get sendHintTextColor => purple;

View File

@ -30,6 +30,7 @@ class GhostDark extends CwtchDark {
get backgroundMainColor => background; // darkGreyPurple; get backgroundMainColor => background; // darkGreyPurple;
get backgroundPaneColor => header; //darkGreyPurple; get backgroundPaneColor => header; //darkGreyPurple;
get topbarColor => header; //darkGreyPurple;
get mainTextColor => font; //whiteishPurple; get mainTextColor => font; //whiteishPurple;
get defaultButtonColor => accent; //hotPink; get defaultButtonColor => accent; //hotPink;
get textfieldHintColor => mainTextColor; //TODO pick get textfieldHintColor => mainTextColor; //TODO pick
@ -53,7 +54,8 @@ class GhostLight extends CwtchLight {
get mode => mode_light; get mode => mode_light;
get backgroundMainColor => background; //whitePurple; get backgroundMainColor => background; //whitePurple;
get backgroundPaneColor => header; //softPurple; get backgroundPaneColor => background; //whitePurple;
get topbarColor => header; //softPurple;
get mainTextColor => settings; get mainTextColor => settings;
get defaultButtonColor => accent; // hotPink; get defaultButtonColor => accent; // hotPink;
get textfieldHintColor => font; //TODO pick get textfieldHintColor => font; //TODO pick

View File

@ -30,6 +30,7 @@ class MermaidDark extends CwtchDark {
get backgroundMainColor => background; // darkGreyPurple; get backgroundMainColor => background; // darkGreyPurple;
get backgroundPaneColor => header; //darkGreyPurple; get backgroundPaneColor => header; //darkGreyPurple;
get topbarColor => header; //darkGreyPurple;
get mainTextColor => font; //whiteishPurple; get mainTextColor => font; //whiteishPurple;
get defaultButtonColor => accent; //hotPink; get defaultButtonColor => accent; //hotPink;
get textfieldHintColor => mainTextColor; //TODO pick get textfieldHintColor => mainTextColor; //TODO pick
@ -53,7 +54,8 @@ class MermaidLight extends CwtchLight {
get mode => mode_light; get mode => mode_light;
get backgroundMainColor => background; //whitePurple; get backgroundMainColor => background; //whitePurple;
get backgroundPaneColor => header; //softPurple; get backgroundPaneColor => background; //whitePurple;
get topbarColor => header; //softPurple;
get mainTextColor => settings; get mainTextColor => settings;
get defaultButtonColor => accent; // hotPink; get defaultButtonColor => accent; // hotPink;
get textfieldHintColor => font; //TODO pick get textfieldHintColor => font; //TODO pick

View File

@ -20,7 +20,7 @@ class MidnightDark extends CwtchDark {
static final Color background = Color(0xFF1B1B1B); static final Color background = Color(0xFF1B1B1B);
static final Color header = Color(0xFF1B1B1B); static final Color header = Color(0xFF1B1B1B);
static final Color userBubble = Color(0xFF373737); static final Color userBubble = Color(0xFF373737);
static final Color peerBubble = Color(0xFF212121); static final Color peerBubble = Color(0xFF494949);
static final Color font = Color(0xFFFFFFFF); static final Color font = Color(0xFFFFFFFF);
static final Color settings = Color(0xFFFFFDFF); static final Color settings = Color(0xFFFFFDFF);
static final Color accent = Color(0xFFD20070); static final Color accent = Color(0xFFD20070);
@ -30,6 +30,7 @@ class MidnightDark extends CwtchDark {
get backgroundMainColor => background; // darkGreyPurple; get backgroundMainColor => background; // darkGreyPurple;
get backgroundPaneColor => header; //darkGreyPurple; get backgroundPaneColor => header; //darkGreyPurple;
get topbarColor => header; //darkGreyPurple;
get mainTextColor => font; //whiteishPurple; get mainTextColor => font; //whiteishPurple;
get defaultButtonColor => accent; //hotPink; get defaultButtonColor => accent; //hotPink;
get textfieldHintColor => mainTextColor; //TODO pick get textfieldHintColor => mainTextColor; //TODO pick
@ -44,7 +45,7 @@ class MidnightLight extends CwtchLight {
static final Color background = Color(0xFFFFFDFF); static final Color background = Color(0xFFFFFDFF);
static final Color header = Color(0xFFE0E0E0); static final Color header = Color(0xFFE0E0E0);
static final Color userBubble = Color(0xFFE0E0E0); static final Color userBubble = Color(0xFFE0E0E0);
static final Color peerBubble = Color(0xFFF3F3F3); static final Color peerBubble = Color(0xFFBABDBE);
static final Color font = Color(0xFF1B1B1B); static final Color font = Color(0xFF1B1B1B);
static final Color settings = Color(0xFF1B1B1B); static final Color settings = Color(0xFF1B1B1B);
static final Color accent = Color(0xFFD20070); static final Color accent = Color(0xFFD20070);
@ -53,7 +54,8 @@ class MidnightLight extends CwtchLight {
get mode => mode_light; get mode => mode_light;
get backgroundMainColor => background; //whitePurple; get backgroundMainColor => background; //whitePurple;
get backgroundPaneColor => header; //softPurple; get backgroundPaneColor => background; //whitePurple;
get topbarColor => header; //softPurple;
get mainTextColor => settings; get mainTextColor => settings;
get defaultButtonColor => accent; // hotPink; get defaultButtonColor => accent; // hotPink;
get textfieldHintColor => font; //TODO pick get textfieldHintColor => font; //TODO pick

View File

@ -30,6 +30,7 @@ class Neon1Dark extends CwtchDark {
get backgroundMainColor => background; // darkGreyPurple; get backgroundMainColor => background; // darkGreyPurple;
get backgroundPaneColor => header; //darkGreyPurple; get backgroundPaneColor => header; //darkGreyPurple;
get topbarColor => header; //darkGreyPurple;
get mainTextColor => font; //whiteishPurple; get mainTextColor => font; //whiteishPurple;
get defaultButtonColor => accent; //hotPink; get defaultButtonColor => accent; //hotPink;
get textfieldHintColor => mainTextColor; //TODO pick get textfieldHintColor => mainTextColor; //TODO pick
@ -53,7 +54,8 @@ class Neon1Light extends CwtchLight {
get mode => mode_light; get mode => mode_light;
get backgroundMainColor => background; //whitePurple; get backgroundMainColor => background; //whitePurple;
get backgroundPaneColor => header; //softPurple; get backgroundPaneColor => background; //whitePurple;
get topbarColor => header; //softPurple
get mainTextColor => settings; get mainTextColor => settings;
get defaultButtonColor => accent; // hotPink; get defaultButtonColor => accent; // hotPink;
get textfieldHintColor => font; //TODO pick get textfieldHintColor => font; //TODO pick

View File

@ -30,6 +30,7 @@ class Neon2Dark extends CwtchDark {
get backgroundMainColor => background; // darkGreyPurple; get backgroundMainColor => background; // darkGreyPurple;
get backgroundPaneColor => header; //darkGreyPurple; get backgroundPaneColor => header; //darkGreyPurple;
get topbarColor => header; //darkGreyPurple;
get mainTextColor => font; //whiteishPurple; get mainTextColor => font; //whiteishPurple;
get defaultButtonColor => accent; //hotPink; get defaultButtonColor => accent; //hotPink;
get textfieldHintColor => mainTextColor; //TODO pick get textfieldHintColor => mainTextColor; //TODO pick
@ -53,7 +54,8 @@ class Neon2Light extends CwtchLight {
get mode => mode_light; get mode => mode_light;
get backgroundMainColor => background; //whitePurple; get backgroundMainColor => background; //whitePurple;
get backgroundPaneColor => header; //softPurple; get backgroundPaneColor => background; //whitePurple;
get topbarColor => header; //softPurple;
get mainTextColor => settings; get mainTextColor => settings;
get defaultButtonColor => accent; // hotPink; get defaultButtonColor => accent; // hotPink;
get textfieldHintColor => font; //TODO pick get textfieldHintColor => font; //TODO pick

View File

@ -69,9 +69,11 @@ abstract class OpaqueThemeType {
// Main screen background color (message pane, item rows) // Main screen background color (message pane, item rows)
get backgroundMainColor => red; get backgroundMainColor => red;
// Top pane ane pane colors (settings) // pane colors (settings)
get backgroundPaneColor => red; get backgroundPaneColor => red;
get topbarColor => red;
get mainTextColor => red; get mainTextColor => red;
// pressed row, offline heart // pressed row, offline heart
@ -134,7 +136,7 @@ ThemeData mkThemeData(Settings opaque) {
), ),
cardColor: opaque.current().backgroundMainColor, cardColor: opaque.current().backgroundMainColor,
appBarTheme: AppBarTheme( appBarTheme: AppBarTheme(
backgroundColor: opaque.current().backgroundPaneColor, backgroundColor: opaque.current().topbarColor,
iconTheme: IconThemeData( iconTheme: IconThemeData(
color: opaque.current().mainTextColor, color: opaque.current().mainTextColor,
), ),

View File

@ -30,6 +30,7 @@ class PumpkinDark extends CwtchDark {
get backgroundMainColor => background; // darkGreyPurple; get backgroundMainColor => background; // darkGreyPurple;
get backgroundPaneColor => header; //darkGreyPurple; get backgroundPaneColor => header; //darkGreyPurple;
get topbarColor => header; //darkGreyPurple;
get mainTextColor => font; //whiteishPurple; get mainTextColor => font; //whiteishPurple;
get defaultButtonColor => accent; //hotPink; get defaultButtonColor => accent; //hotPink;
get textfieldHintColor => mainTextColor; //TODO pick get textfieldHintColor => mainTextColor; //TODO pick
@ -53,7 +54,8 @@ class PumpkinLight extends CwtchLight {
get mode => mode_light; get mode => mode_light;
get backgroundMainColor => background; //whitePurple; get backgroundMainColor => background; //whitePurple;
get backgroundPaneColor => header; //softPurple; get backgroundPaneColor => background; //whitePurple;
get topbarColor => header; //softPurple;
get mainTextColor => settings; get mainTextColor => settings;
get defaultButtonColor => accent; // hotPink; get defaultButtonColor => accent; // hotPink;
get textfieldHintColor => font; //TODO pick get textfieldHintColor => font; //TODO pick

View File

@ -30,6 +30,7 @@ class VampireDark extends CwtchDark {
get backgroundMainColor => background; // darkGreyPurple; get backgroundMainColor => background; // darkGreyPurple;
get backgroundPaneColor => header; //darkGreyPurple; get backgroundPaneColor => header; //darkGreyPurple;
get topbarColor => header; //darkGreyPurple;
get mainTextColor => font; //whiteishPurple; get mainTextColor => font; //whiteishPurple;
get defaultButtonColor => accent; //hotPink; get defaultButtonColor => accent; //hotPink;
get textfieldHintColor => mainTextColor; //TODO pick get textfieldHintColor => mainTextColor; //TODO pick
@ -53,7 +54,8 @@ class VampireLight extends CwtchLight {
get mode => mode_light; get mode => mode_light;
get backgroundMainColor => background; //whitePurple; get backgroundMainColor => background; //whitePurple;
get backgroundPaneColor => header; //softPurple; get backgroundPaneColor => background; //whitePurple;
get topbarColor => header; //softPurple;
get mainTextColor => settings; get mainTextColor => settings;
get defaultButtonColor => accent; // hotPink; get defaultButtonColor => accent; // hotPink;
get textfieldHintColor => font; //TODO pick get textfieldHintColor => font; //TODO pick

View File

@ -30,6 +30,7 @@ class WitchDark extends CwtchDark {
get backgroundMainColor => background; // darkGreyPurple; get backgroundMainColor => background; // darkGreyPurple;
get backgroundPaneColor => header; //darkGreyPurple; get backgroundPaneColor => header; //darkGreyPurple;
get topbarColor => header; //darkGreyPurple;
get mainTextColor => font; //whiteishPurple; get mainTextColor => font; //whiteishPurple;
get defaultButtonColor => accent; //hotPink; get defaultButtonColor => accent; //hotPink;
get textfieldHintColor => mainTextColor; //TODO pick get textfieldHintColor => mainTextColor; //TODO pick
@ -53,7 +54,8 @@ class WitchLight extends CwtchLight {
get mode => mode_light; get mode => mode_light;
get backgroundMainColor => background; //whitePurple; get backgroundMainColor => background; //whitePurple;
get backgroundPaneColor => header; //softPurple; get backgroundPaneColor => background; //whitePurple;
get topbarColor => header; //softPurple;
get mainTextColor => settings; get mainTextColor => settings;
get defaultButtonColor => accent; // hotPink; get defaultButtonColor => accent; // hotPink;
get textfieldHintColor => font; //TODO pick get textfieldHintColor => font; //TODO pick

View File

@ -52,22 +52,26 @@ class _AddContactViewState extends State<AddContactView> {
/// We display a different number of tabs depending on the experiment setup /// We display a different number of tabs depending on the experiment setup
bool groupsEnabled = Provider.of<Settings>(context).isExperimentEnabled(TapirGroupsExperiment); bool groupsEnabled = Provider.of<Settings>(context).isExperimentEnabled(TapirGroupsExperiment);
return Consumer<ErrorHandler>(builder: (context, globalErrorHandler, child) { return Scrollbar(
return DefaultTabController( isAlwaysShown: true,
length: groupsEnabled ? 2 : 1, child: SingleChildScrollView(
child: Column(children: [ clipBehavior: Clip.antiAlias,
(groupsEnabled ? getTabBarWithGroups() : getTabBarWithAddPeerOnly()), child: Consumer<ErrorHandler>(builder: (context, globalErrorHandler, child) {
Expanded( return DefaultTabController(
child: TabBarView( length: groupsEnabled ? 2 : 1,
children: (groupsEnabled child: Column(children: [
? [ (groupsEnabled ? getTabBarWithGroups() : getTabBarWithAddPeerOnly()),
addPeerTab(), Expanded(
addGroupTab(), child: TabBarView(
] children: (groupsEnabled
: [addPeerTab()]), ? [
)), addPeerTab(),
])); addGroupTab(),
}); ]
: [addPeerTab()]),
)),
]));
})));
} }
void _copyOnion() { void _copyOnion() {

View File

@ -56,7 +56,7 @@ class MessageRowState extends State<MessageRow> with SingleTickerProviderStateMi
var fromMe = Provider.of<MessageMetadata>(context).senderHandle == Provider.of<ProfileInfoState>(context).onion; var fromMe = Provider.of<MessageMetadata>(context).senderHandle == Provider.of<ProfileInfoState>(context).onion;
var isContact = Provider.of<ProfileInfoState>(context).contactList.findContact(Provider.of<MessageMetadata>(context).senderHandle) != null; var isContact = Provider.of<ProfileInfoState>(context).contactList.findContact(Provider.of<MessageMetadata>(context).senderHandle) != null;
var isBlocked = isContact ? Provider.of<ProfileInfoState>(context).contactList.findContact(Provider.of<MessageMetadata>(context).senderHandle)!.isBlocked : false; var isBlocked = isContact ? Provider.of<ProfileInfoState>(context).contactList.findContact(Provider.of<MessageMetadata>(context).senderHandle)!.isBlocked : false;
var actualMessage = Flexible(flex: 3, fit: FlexFit.loose, child: widget.child); var actualMessage = Flexible(flex: Platform.isAndroid ? 10 : 3, fit: FlexFit.loose, child: widget.child);
_dragAffinity = fromMe ? Alignment.centerRight : Alignment.centerLeft; _dragAffinity = fromMe ? Alignment.centerRight : Alignment.centerLeft;
@ -74,19 +74,22 @@ class MessageRowState extends State<MessageRow> with SingleTickerProviderStateMi
} }
} }
Widget wdgIcons = Visibility( Widget wdgIcons = Platform.isAndroid
visible: Provider.of<AppState>(context).hoveredIndex == Provider.of<MessageMetadata>(context).messageID, ? SizedBox.shrink()
maintainSize: true, : Visibility(
maintainAnimation: true, visible: Provider.of<AppState>(context).hoveredIndex == Provider.of<MessageMetadata>(context).messageID,
maintainState: true, maintainSize: true,
maintainInteractivity: false, maintainAnimation: true,
child: IconButton( maintainState: true,
tooltip: AppLocalizations.of(context)!.tooltipReplyToThisMessage, maintainInteractivity: false,
onPressed: () { child: IconButton(
Provider.of<AppState>(context, listen: false).selectedIndex = Provider.of<MessageMetadata>(context, listen: false).messageID; tooltip: AppLocalizations.of(context)!.tooltipReplyToThisMessage,
}, onPressed: () {
icon: Icon(Icons.reply, color: Provider.of<Settings>(context).theme.dropShadowColor))); Provider.of<AppState>(context, listen: false).selectedIndex = Provider.of<MessageMetadata>(context, listen: false).messageID;
Widget wdgSpacer = Flexible(child: SizedBox(width: 60, height: 10)); },
icon: Icon(Icons.reply, color: Provider.of<Settings>(context).theme.dropShadowColor)));
Widget wdgSpacer = Flexible(flex: 1, child: SizedBox(width: Platform.isAndroid ? 20 : 60, height: 10));
var widgetRow = <Widget>[]; var widgetRow = <Widget>[];
if (fromMe) { if (fromMe) {