diff --git a/lib/themes/cwtch.dart b/lib/themes/cwtch.dart index c5c65ae9..e4a660c5 100644 --- a/lib/themes/cwtch.dart +++ b/lib/themes/cwtch.dart @@ -47,6 +47,7 @@ class CwtchDark extends OpaqueThemeType { get backgroundMainColor => background; // darkGreyPurple; get backgroundPaneColor => header; //darkGreyPurple; + get topbarColor => header; //darkGreyPurple; get backgroundHilightElementColor => deepPurple; get mainTextColor => font; //whiteishPurple; get sendHintTextColor => mauvePurple; @@ -90,7 +91,8 @@ class CwtchLight extends OpaqueThemeType { get mode => mode_light; get backgroundMainColor => background; //whitePurple; - get backgroundPaneColor => header; //softPurple; + get backgroundPaneColor => background; //whitePurple; + get topbarColor => header; //softPurple; get backgroundHilightElementColor => softPurple; get mainTextColor => settings; get sendHintTextColor => purple; diff --git a/lib/themes/ghost.dart b/lib/themes/ghost.dart index de2d3f2d..27ee2c88 100644 --- a/lib/themes/ghost.dart +++ b/lib/themes/ghost.dart @@ -30,6 +30,7 @@ class GhostDark extends CwtchDark { get backgroundMainColor => background; // darkGreyPurple; get backgroundPaneColor => header; //darkGreyPurple; + get topbarColor => header; //darkGreyPurple; get mainTextColor => font; //whiteishPurple; get defaultButtonColor => accent; //hotPink; get textfieldHintColor => mainTextColor; //TODO pick @@ -53,7 +54,8 @@ class GhostLight extends CwtchLight { get mode => mode_light; get backgroundMainColor => background; //whitePurple; - get backgroundPaneColor => header; //softPurple; + get backgroundPaneColor => background; //whitePurple; + get topbarColor => header; //softPurple; get mainTextColor => settings; get defaultButtonColor => accent; // hotPink; get textfieldHintColor => font; //TODO pick diff --git a/lib/themes/mermaid.dart b/lib/themes/mermaid.dart index c6e21122..9b4b2c72 100644 --- a/lib/themes/mermaid.dart +++ b/lib/themes/mermaid.dart @@ -30,6 +30,7 @@ class MermaidDark extends CwtchDark { get backgroundMainColor => background; // darkGreyPurple; get backgroundPaneColor => header; //darkGreyPurple; + get topbarColor => header; //darkGreyPurple; get mainTextColor => font; //whiteishPurple; get defaultButtonColor => accent; //hotPink; get textfieldHintColor => mainTextColor; //TODO pick @@ -53,7 +54,8 @@ class MermaidLight extends CwtchLight { get mode => mode_light; get backgroundMainColor => background; //whitePurple; - get backgroundPaneColor => header; //softPurple; + get backgroundPaneColor => background; //whitePurple; + get topbarColor => header; //softPurple; get mainTextColor => settings; get defaultButtonColor => accent; // hotPink; get textfieldHintColor => font; //TODO pick diff --git a/lib/themes/midnight.dart b/lib/themes/midnight.dart index da1f1bfd..96841404 100644 --- a/lib/themes/midnight.dart +++ b/lib/themes/midnight.dart @@ -20,7 +20,7 @@ class MidnightDark extends CwtchDark { static final Color background = Color(0xFF1B1B1B); static final Color header = Color(0xFF1B1B1B); 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 settings = Color(0xFFFFFDFF); static final Color accent = Color(0xFFD20070); @@ -30,6 +30,7 @@ class MidnightDark extends CwtchDark { get backgroundMainColor => background; // darkGreyPurple; get backgroundPaneColor => header; //darkGreyPurple; + get topbarColor => header; //darkGreyPurple; get mainTextColor => font; //whiteishPurple; get defaultButtonColor => accent; //hotPink; get textfieldHintColor => mainTextColor; //TODO pick @@ -44,7 +45,7 @@ class MidnightLight extends CwtchLight { static final Color background = Color(0xFFFFFDFF); static final Color header = 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 settings = Color(0xFF1B1B1B); static final Color accent = Color(0xFFD20070); @@ -53,7 +54,8 @@ class MidnightLight extends CwtchLight { get mode => mode_light; get backgroundMainColor => background; //whitePurple; - get backgroundPaneColor => header; //softPurple; + get backgroundPaneColor => background; //whitePurple; + get topbarColor => header; //softPurple; get mainTextColor => settings; get defaultButtonColor => accent; // hotPink; get textfieldHintColor => font; //TODO pick diff --git a/lib/themes/neon1.dart b/lib/themes/neon1.dart index fcb4f614..c3a479aa 100644 --- a/lib/themes/neon1.dart +++ b/lib/themes/neon1.dart @@ -30,6 +30,7 @@ class Neon1Dark extends CwtchDark { get backgroundMainColor => background; // darkGreyPurple; get backgroundPaneColor => header; //darkGreyPurple; + get topbarColor => header; //darkGreyPurple; get mainTextColor => font; //whiteishPurple; get defaultButtonColor => accent; //hotPink; get textfieldHintColor => mainTextColor; //TODO pick @@ -53,7 +54,8 @@ class Neon1Light extends CwtchLight { get mode => mode_light; get backgroundMainColor => background; //whitePurple; - get backgroundPaneColor => header; //softPurple; + get backgroundPaneColor => background; //whitePurple; + get topbarColor => header; //softPurple get mainTextColor => settings; get defaultButtonColor => accent; // hotPink; get textfieldHintColor => font; //TODO pick diff --git a/lib/themes/neon2.dart b/lib/themes/neon2.dart index bdfeaf73..648b9bad 100644 --- a/lib/themes/neon2.dart +++ b/lib/themes/neon2.dart @@ -30,6 +30,7 @@ class Neon2Dark extends CwtchDark { get backgroundMainColor => background; // darkGreyPurple; get backgroundPaneColor => header; //darkGreyPurple; + get topbarColor => header; //darkGreyPurple; get mainTextColor => font; //whiteishPurple; get defaultButtonColor => accent; //hotPink; get textfieldHintColor => mainTextColor; //TODO pick @@ -53,7 +54,8 @@ class Neon2Light extends CwtchLight { get mode => mode_light; get backgroundMainColor => background; //whitePurple; - get backgroundPaneColor => header; //softPurple; + get backgroundPaneColor => background; //whitePurple; + get topbarColor => header; //softPurple; get mainTextColor => settings; get defaultButtonColor => accent; // hotPink; get textfieldHintColor => font; //TODO pick diff --git a/lib/themes/opaque.dart b/lib/themes/opaque.dart index 9e601d32..e6bcd1e8 100644 --- a/lib/themes/opaque.dart +++ b/lib/themes/opaque.dart @@ -69,9 +69,11 @@ abstract class OpaqueThemeType { // Main screen background color (message pane, item rows) get backgroundMainColor => red; - // Top pane ane pane colors (settings) + // pane colors (settings) get backgroundPaneColor => red; + get topbarColor => red; + get mainTextColor => red; // pressed row, offline heart @@ -134,7 +136,7 @@ ThemeData mkThemeData(Settings opaque) { ), cardColor: opaque.current().backgroundMainColor, appBarTheme: AppBarTheme( - backgroundColor: opaque.current().backgroundPaneColor, + backgroundColor: opaque.current().topbarColor, iconTheme: IconThemeData( color: opaque.current().mainTextColor, ), diff --git a/lib/themes/pumpkin.dart b/lib/themes/pumpkin.dart index f1c2faef..d5aa1a01 100644 --- a/lib/themes/pumpkin.dart +++ b/lib/themes/pumpkin.dart @@ -30,6 +30,7 @@ class PumpkinDark extends CwtchDark { get backgroundMainColor => background; // darkGreyPurple; get backgroundPaneColor => header; //darkGreyPurple; + get topbarColor => header; //darkGreyPurple; get mainTextColor => font; //whiteishPurple; get defaultButtonColor => accent; //hotPink; get textfieldHintColor => mainTextColor; //TODO pick @@ -53,7 +54,8 @@ class PumpkinLight extends CwtchLight { get mode => mode_light; get backgroundMainColor => background; //whitePurple; - get backgroundPaneColor => header; //softPurple; + get backgroundPaneColor => background; //whitePurple; + get topbarColor => header; //softPurple; get mainTextColor => settings; get defaultButtonColor => accent; // hotPink; get textfieldHintColor => font; //TODO pick diff --git a/lib/themes/vampire.dart b/lib/themes/vampire.dart index 13bba5b2..299ea175 100644 --- a/lib/themes/vampire.dart +++ b/lib/themes/vampire.dart @@ -30,6 +30,7 @@ class VampireDark extends CwtchDark { get backgroundMainColor => background; // darkGreyPurple; get backgroundPaneColor => header; //darkGreyPurple; + get topbarColor => header; //darkGreyPurple; get mainTextColor => font; //whiteishPurple; get defaultButtonColor => accent; //hotPink; get textfieldHintColor => mainTextColor; //TODO pick @@ -53,7 +54,8 @@ class VampireLight extends CwtchLight { get mode => mode_light; get backgroundMainColor => background; //whitePurple; - get backgroundPaneColor => header; //softPurple; + get backgroundPaneColor => background; //whitePurple; + get topbarColor => header; //softPurple; get mainTextColor => settings; get defaultButtonColor => accent; // hotPink; get textfieldHintColor => font; //TODO pick diff --git a/lib/themes/witch.dart b/lib/themes/witch.dart index 38ad6c8e..aaadcdf0 100644 --- a/lib/themes/witch.dart +++ b/lib/themes/witch.dart @@ -30,6 +30,7 @@ class WitchDark extends CwtchDark { get backgroundMainColor => background; // darkGreyPurple; get backgroundPaneColor => header; //darkGreyPurple; + get topbarColor => header; //darkGreyPurple; get mainTextColor => font; //whiteishPurple; get defaultButtonColor => accent; //hotPink; get textfieldHintColor => mainTextColor; //TODO pick @@ -53,7 +54,8 @@ class WitchLight extends CwtchLight { get mode => mode_light; get backgroundMainColor => background; //whitePurple; - get backgroundPaneColor => header; //softPurple; + get backgroundPaneColor => background; //whitePurple; + get topbarColor => header; //softPurple; get mainTextColor => settings; get defaultButtonColor => accent; // hotPink; get textfieldHintColor => font; //TODO pick diff --git a/lib/views/addcontactview.dart b/lib/views/addcontactview.dart index 4e984595..bb0a2fc1 100644 --- a/lib/views/addcontactview.dart +++ b/lib/views/addcontactview.dart @@ -52,22 +52,26 @@ class _AddContactViewState extends State { /// We display a different number of tabs depending on the experiment setup bool groupsEnabled = Provider.of(context).isExperimentEnabled(TapirGroupsExperiment); - return Consumer(builder: (context, globalErrorHandler, child) { - return DefaultTabController( - length: groupsEnabled ? 2 : 1, - child: Column(children: [ - (groupsEnabled ? getTabBarWithGroups() : getTabBarWithAddPeerOnly()), - Expanded( - child: TabBarView( - children: (groupsEnabled - ? [ - addPeerTab(), - addGroupTab(), - ] - : [addPeerTab()]), - )), - ])); - }); + return Scrollbar( + isAlwaysShown: true, + child: SingleChildScrollView( + clipBehavior: Clip.antiAlias, + child: Consumer(builder: (context, globalErrorHandler, child) { + return DefaultTabController( + length: groupsEnabled ? 2 : 1, + child: Column(children: [ + (groupsEnabled ? getTabBarWithGroups() : getTabBarWithAddPeerOnly()), + Expanded( + child: TabBarView( + children: (groupsEnabled + ? [ + addPeerTab(), + addGroupTab(), + ] + : [addPeerTab()]), + )), + ])); + }))); } void _copyOnion() { diff --git a/lib/widgets/messagerow.dart b/lib/widgets/messagerow.dart index 98f353c2..1e35eb6d 100644 --- a/lib/widgets/messagerow.dart +++ b/lib/widgets/messagerow.dart @@ -56,7 +56,7 @@ class MessageRowState extends State with SingleTickerProviderStateMi var fromMe = Provider.of(context).senderHandle == Provider.of(context).onion; var isContact = Provider.of(context).contactList.findContact(Provider.of(context).senderHandle) != null; var isBlocked = isContact ? Provider.of(context).contactList.findContact(Provider.of(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; @@ -74,19 +74,22 @@ class MessageRowState extends State with SingleTickerProviderStateMi } } - Widget wdgIcons = Visibility( - visible: Provider.of(context).hoveredIndex == Provider.of(context).messageID, - maintainSize: true, - maintainAnimation: true, - maintainState: true, - maintainInteractivity: false, - child: IconButton( - tooltip: AppLocalizations.of(context)!.tooltipReplyToThisMessage, - onPressed: () { - Provider.of(context, listen: false).selectedIndex = Provider.of(context, listen: false).messageID; - }, - icon: Icon(Icons.reply, color: Provider.of(context).theme.dropShadowColor))); - Widget wdgSpacer = Flexible(child: SizedBox(width: 60, height: 10)); + Widget wdgIcons = Platform.isAndroid + ? SizedBox.shrink() + : Visibility( + visible: Provider.of(context).hoveredIndex == Provider.of(context).messageID, + maintainSize: true, + maintainAnimation: true, + maintainState: true, + maintainInteractivity: false, + child: IconButton( + tooltip: AppLocalizations.of(context)!.tooltipReplyToThisMessage, + onPressed: () { + Provider.of(context, listen: false).selectedIndex = Provider.of(context, listen: false).messageID; + }, + icon: Icon(Icons.reply, color: Provider.of(context).theme.dropShadowColor))); + + Widget wdgSpacer = Flexible(flex: 1, child: SizedBox(width: Platform.isAndroid ? 20 : 60, height: 10)); var widgetRow = []; if (fromMe) {