Refactor: Reduce .of(context) calls theme

Signed commit
This commit is contained in:
Thomas Klein Langenhorst 2024-08-04 14:09:36 +02:00
commit 5d2aaef3ca
No known key found for this signature in database
GPG key ID: CA868C3CB279DA5B
69 changed files with 525 additions and 501 deletions

View file

@ -206,6 +206,8 @@ class AudioPlayerState extends State<AudioPlayerWidget> {
@override
Widget build(BuildContext context) {
final theme = Theme.of(context);
final statusText = this.statusText ??= _durationString ?? '00:00';
final audioPlayer = this.audioPlayer;
return Padding(
@ -292,8 +294,8 @@ class AudioPlayerState extends State<AudioPlayerWidget> {
: Text(
'${audioPlayer.speed.toString()}x',
),
backgroundColor: Theme.of(context).colorScheme.secondary,
textColor: Theme.of(context).colorScheme.onSecondary,
backgroundColor: theme.colorScheme.secondary,
textColor: theme.colorScheme.onSecondary,
child: InkWell(
splashColor: widget.color.withAlpha(128),
borderRadius: BorderRadius.circular(64),

View file

@ -67,6 +67,8 @@ class ImageBubble extends StatelessWidget {
@override
Widget build(BuildContext context) {
final theme = Theme.of(context);
final borderRadius =
this.borderRadius ?? BorderRadius.circular(AppConfig.borderRadius);
return Material(
@ -77,7 +79,7 @@ class ImageBubble extends StatelessWidget {
side: BorderSide(
color: event.messageType == MessageTypes.Sticker
? Colors.transparent
: Theme.of(context).dividerColor,
: theme.dividerColor,
),
),
child: InkWell(

View file

@ -22,6 +22,8 @@ class MapBubble extends StatelessWidget {
@override
Widget build(BuildContext context) {
final theme = Theme.of(context);
return ClipRRect(
borderRadius: BorderRadius.circular(radius),
child: Container(
@ -72,11 +74,10 @@ class MapBubble extends StatelessWidget {
child: Text(
' © OpenStreetMap contributors ',
style: TextStyle(
color: Theme.of(context).brightness == Brightness.dark
color: theme.brightness == Brightness.dark
? Colors.white
: Colors.black,
backgroundColor:
Theme.of(context).appBarTheme.backgroundColor,
backgroundColor: theme.appBarTheme.backgroundColor,
),
),
),

View file

@ -57,6 +57,8 @@ class Message extends StatelessWidget {
@override
Widget build(BuildContext context) {
final theme = Theme.of(context);
if (!{
EventTypes.Message,
EventTypes.Sticker,
@ -78,7 +80,7 @@ class Message extends StatelessWidget {
final ownMessage = event.senderId == client.userID;
final alignment = ownMessage ? Alignment.topRight : Alignment.topLeft;
// ignore: deprecated_member_use
var color = Theme.of(context).colorScheme.surfaceVariant;
var color = theme.colorScheme.surfaceVariant;
final displayTime = event.type == EventTypes.RoomCreate ||
nextEvent == null ||
!event.originServerTs.sameEnvironment(nextEvent!.originServerTs);
@ -100,9 +102,8 @@ class Message extends StatelessWidget {
previousEvent!.senderId == event.senderId &&
previousEvent!.originServerTs.sameEnvironment(event.originServerTs);
final textColor = ownMessage
? Theme.of(context).colorScheme.onPrimary
: Theme.of(context).colorScheme.onSurface;
final textColor =
ownMessage ? theme.colorScheme.onPrimary : theme.colorScheme.onSurface;
final rowMainAxisAlignment =
ownMessage ? MainAxisAlignment.end : MainAxisAlignment.start;
@ -131,7 +132,7 @@ class Message extends StatelessWidget {
if (ownMessage) {
color = displayEvent.status.isError
? Colors.redAccent
: Theme.of(context).colorScheme.primary;
: theme.colorScheme.primary;
}
final resetAnimateIn = this.resetAnimateIn;
@ -168,14 +169,10 @@ class Message extends StatelessWidget {
borderRadius:
BorderRadius.circular(AppConfig.borderRadius / 2),
color: selected
? Theme.of(context)
.colorScheme
.secondaryContainer
? theme.colorScheme.secondaryContainer
.withAlpha(100)
: highlightMarker
? Theme.of(context)
.colorScheme
.tertiaryContainer
? theme.colorScheme.tertiaryContainer
.withAlpha(100)
: Colors.transparent,
),
@ -253,8 +250,7 @@ class Message extends StatelessWidget {
displayname,
style: TextStyle(
fontSize: 12,
color: (Theme.of(context)
.brightness ==
color: (theme.brightness ==
Brightness.light
? displayname.color
: displayname
@ -442,10 +438,10 @@ class Message extends StatelessWidget {
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 12 * AppConfig.fontSizeFactor,
color: Theme.of(context).colorScheme.secondary,
color: theme.colorScheme.secondary,
shadows: [
Shadow(
color: Theme.of(context).colorScheme.surface,
color: theme.colorScheme.surface,
blurRadius: 3,
),
],
@ -473,14 +469,14 @@ class Message extends StatelessWidget {
Row(
children: [
Expanded(
child: Divider(color: Theme.of(context).colorScheme.primary),
child: Divider(color: theme.colorScheme.primary),
),
Container(
decoration: BoxDecoration(
border: Border.all(
color: Theme.of(context).colorScheme.primary,
color: theme.colorScheme.primary,
),
color: Theme.of(context).colorScheme.primaryContainer,
color: theme.colorScheme.primaryContainer,
borderRadius: BorderRadius.circular(4),
),
margin: const EdgeInsets.all(8.0),
@ -489,12 +485,11 @@ class Message extends StatelessWidget {
),
child: Text(
L10n.of(context)!.readUpToHere,
style:
TextStyle(color: Theme.of(context).colorScheme.primary),
style: TextStyle(color: theme.colorScheme.primary),
),
),
Expanded(
child: Divider(color: Theme.of(context).colorScheme.primary),
child: Divider(color: theme.colorScheme.primary),
),
],
),

View file

@ -108,10 +108,10 @@ class _Reaction extends StatelessWidget {
@override
Widget build(BuildContext context) {
final textColor = Theme.of(context).brightness == Brightness.dark
? Colors.white
: Colors.black;
final color = Theme.of(context).colorScheme.surface;
final theme = Theme.of(context);
final textColor =
theme.brightness == Brightness.dark ? Colors.white : Colors.black;
final color = theme.colorScheme.surface;
Widget content;
if (reactionKey.startsWith('mxc://')) {
content = Row(
@ -158,8 +158,8 @@ class _Reaction extends StatelessWidget {
border: Border.all(
width: 1,
color: reacted!
? Theme.of(context).colorScheme.primary
: Theme.of(context).colorScheme.primaryContainer,
? theme.colorScheme.primary
: theme.colorScheme.primaryContainer,
),
borderRadius: BorderRadius.circular(AppConfig.borderRadius / 2),
),

View file

@ -27,20 +27,19 @@ class ReplyContent extends StatelessWidget {
@override
Widget build(BuildContext context) {
final theme = Theme.of(context);
final timeline = this.timeline;
final displayEvent =
timeline != null ? replyEvent.getDisplayEvent(timeline) : replyEvent;
final fontSize = AppConfig.messageFontSize * AppConfig.fontSizeFactor;
final color = ownMessage
? Theme.of(context).colorScheme.primaryContainer
: Theme.of(context).colorScheme.primary;
? theme.colorScheme.primaryContainer
: theme.colorScheme.primary;
return Material(
color: backgroundColor ??
Theme.of(context)
.colorScheme
.surface
.withOpacity(ownMessage ? 0.2 : 0.33),
theme.colorScheme.surface.withOpacity(ownMessage ? 0.2 : 0.33),
borderRadius: borderRadius,
child: Row(
mainAxisSize: MainAxisSize.min,
@ -81,8 +80,8 @@ class ReplyContent extends StatelessWidget {
maxLines: 1,
style: TextStyle(
color: ownMessage
? Theme.of(context).colorScheme.onPrimary
: Theme.of(context).colorScheme.onSurface,
? theme.colorScheme.onPrimary
: theme.colorScheme.onSurface,
fontSize: fontSize,
),
),

View file

@ -12,6 +12,8 @@ class StateMessage extends StatelessWidget {
@override
Widget build(BuildContext context) {
final theme = Theme.of(context);
return Padding(
padding: const EdgeInsets.symmetric(horizontal: 8.0),
child: Center(
@ -27,7 +29,7 @@ class StateMessage extends StatelessWidget {
decoration: event.redacted ? TextDecoration.lineThrough : null,
shadows: [
Shadow(
color: Theme.of(context).colorScheme.surface,
color: theme.colorScheme.surface,
blurRadius: 3,
),
],

View file

@ -17,6 +17,8 @@ class VerificationRequestContent extends StatelessWidget {
@override
Widget build(BuildContext context) {
final theme = Theme.of(context);
final events = event.aggregatedEvents(timeline, 'm.reference');
final done = events.where((e) => e.type == EventTypes.KeyVerificationDone);
final start =
@ -36,10 +38,10 @@ class VerificationRequestContent extends StatelessWidget {
padding: const EdgeInsets.all(8),
decoration: BoxDecoration(
border: Border.all(
color: Theme.of(context).dividerColor,
color: theme.dividerColor,
),
borderRadius: BorderRadius.circular(AppConfig.borderRadius),
color: Theme.of(context).colorScheme.surface,
color: theme.colorScheme.surface,
),
child: Row(
mainAxisSize: MainAxisSize.min,

View file

@ -96,6 +96,8 @@ class EventVideoPlayerState extends State<EventVideoPlayer> {
@override
Widget build(BuildContext context) {
final theme = Theme.of(context);
final hasThumbnail = widget.event.hasThumbnail;
final blurHash = (widget.event.infoMap as Map<String, dynamic>)
.tryGet<String>('xyz.amorgan.blurhash') ??
@ -123,7 +125,7 @@ class EventVideoPlayerState extends State<EventVideoPlayer> {
Center(
child: IconButton(
style: IconButton.styleFrom(
backgroundColor: Theme.of(context).colorScheme.surface,
backgroundColor: theme.colorScheme.surface,
),
icon: _isDownloading
? const SizedBox(