Enable skia in web

This commit is contained in:
Christian Pauly 2020-04-08 12:38:52 +02:00
commit d6836ad3df
8 changed files with 104 additions and 150 deletions

View file

@ -1,8 +1,8 @@
import 'package:cached_network_image/cached_network_image.dart';
import 'package:famedlysdk/famedlysdk.dart';
import 'package:fluffychat/utils/string_color.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_advanced_networkimage/provider.dart';
import 'matrix.dart';
@ -40,13 +40,7 @@ class Avatar extends StatelessWidget {
child: CircleAvatar(
radius: size / 2,
backgroundImage: mxContent.mxc?.isNotEmpty ?? false
? kIsWeb
? NetworkImage(
src,
)
: CachedNetworkImageProvider(
src,
)
? AdvancedNetworkImage(src)
: null,
backgroundColor: mxContent.mxc.isEmpty
? name?.color ?? Theme.of(context).secondaryHeaderColor

View file

@ -1,8 +1,7 @@
import 'package:cached_network_image/cached_network_image.dart';
import 'package:famedlysdk/famedlysdk.dart';
import 'package:fluffychat/views/image_viewer.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_advanced_networkimage/provider.dart';
import 'matrix.dart';
@ -32,55 +31,44 @@ class ContentBanner extends StatelessWidget {
height: bannerSize,
method: ThumbnailMethod.scale,
);
return InkWell(
onTap: () => mxContent.mxc?.isNotEmpty ?? false
? ImageViewer.show(context, mxContent)
: null,
child: Container(
height: 300,
alignment: Alignment.center,
decoration: BoxDecoration(
color: Theme.of(context).secondaryHeaderColor,
),
child: Stack(
children: <Widget>[
Positioned(
left: 0,
right: 0,
top: 0,
bottom: 0,
child: Opacity(
opacity: 0.75,
child: !loading
? mxContent.mxc?.isNotEmpty ?? false
? kIsWeb
? Image.network(
src,
height: 300,
fit: BoxFit.cover,
)
: CachedNetworkImage(
imageUrl: src,
height: 300,
fit: BoxFit.cover,
)
: Icon(defaultIcon, size: 300)
: Icon(defaultIcon, size: 300),
return Container(
height: 300,
alignment: Alignment.center,
decoration: BoxDecoration(
color: Theme.of(context).secondaryHeaderColor,
),
child: Stack(
children: <Widget>[
Positioned(
left: 0,
right: 0,
top: 0,
bottom: 0,
child: Opacity(
opacity: 0.75,
child: !loading
? mxContent.mxc?.isNotEmpty ?? false
? Image(
height: 300,
fit: BoxFit.cover,
image: AdvancedNetworkImage(src),
)
: Icon(defaultIcon, size: 300)
: Icon(defaultIcon, size: 300),
),
),
if (this.onEdit != null)
Container(
margin: EdgeInsets.all(8),
alignment: Alignment.bottomRight,
child: FloatingActionButton(
mini: true,
backgroundColor: Theme.of(context).primaryColor,
child: Icon(Icons.camera_alt),
onPressed: onEdit,
),
),
if (this.onEdit != null)
Container(
margin: EdgeInsets.all(8),
alignment: Alignment.bottomRight,
child: FloatingActionButton(
mini: true,
backgroundColor: Theme.of(context).primaryColor,
child: Icon(Icons.camera_alt),
onPressed: onEdit,
),
),
],
),
],
),
);
}

View file

@ -6,7 +6,6 @@ import 'package:fluffychat/i18n/i18n.dart';
import 'package:fluffychat/utils/date_time_extension.dart';
import 'package:fluffychat/utils/event_extension.dart';
import 'package:fluffychat/utils/string_color.dart';
import 'package:fluffychat/views/image_viewer.dart';
import 'package:flutter/material.dart';
import '../avatar.dart';
@ -17,6 +16,7 @@ class Message extends StatelessWidget {
final Event event;
final Event nextEvent;
final Function(Event) onSelect;
final Function(Event) onAvatarTab;
final bool longPressSelect;
final bool selected;
final Timeline timeline;
@ -25,6 +25,7 @@ class Message extends StatelessWidget {
{this.nextEvent,
this.longPressSelect,
this.onSelect,
this.onAvatarTab,
this.selected,
this.timeline});
@ -119,11 +120,13 @@ class Message extends StatelessWidget {
.tryRequestWithLoadingDialog(event.requestKey()),
),
SizedBox(height: 4),
_MetaRow(
event,
ownMessage,
textColor,
invisible: true,
Opacity(
opacity: 0,
child: _MetaRow(
event,
ownMessage,
textColor,
),
),
],
),
@ -147,7 +150,7 @@ class Message extends StatelessWidget {
: Avatar(
event.sender.avatarUrl,
event.sender.calcDisplayname(),
onTap: () => ImageViewer.show(context, event.sender.avatarUrl),
onTap: () => onAvatarTab(event),
);
if (ownMessage) {
rowChildren.add(avatarOrSizedBox);
@ -181,12 +184,10 @@ class Message extends StatelessWidget {
class _MetaRow extends StatelessWidget {
final Event event;
final bool invisible;
final bool ownMessage;
final Color color;
const _MetaRow(this.event, this.ownMessage, this.color,
{this.invisible = false, Key key})
const _MetaRow(this.event, this.ownMessage, this.color, {Key key})
: super(key: key);
@override
@ -203,14 +204,14 @@ class _MetaRow extends StatelessWidget {
style: TextStyle(
fontSize: 11,
fontWeight: FontWeight.bold,
color: invisible ? Colors.transparent : displayname.color,
color: displayname.color,
),
),
if (showDisplayname) SizedBox(width: 4),
Text(
event.time.localizedTime(context),
style: TextStyle(
color: invisible ? Colors.transparent : color,
color: color,
fontSize: 11,
),
),