refactor: Null safe dependencies
This commit is contained in:
parent
16eb370e5f
commit
1a477adcb1
34 changed files with 320 additions and 381 deletions
|
|
@ -8,7 +8,7 @@ import 'package:fluffychat/views/widgets/message_download_content.dart';
|
|||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_sound_lite/flutter_sound.dart';
|
||||
import 'package:universal_html/prefer_universal/html.dart' as html;
|
||||
import 'package:universal_html/html.dart' as html;
|
||||
import 'package:flutter_gen/gen_l10n/l10n.dart';
|
||||
import '../../utils/ui_fake.dart' if (dart.library.html) 'dart:ui' as ui;
|
||||
import 'matrix.dart';
|
||||
|
|
@ -144,7 +144,8 @@ class _AudioPlayerState extends State<AudioPlayer> {
|
|||
if (kIsWeb) {
|
||||
if (widget.event.content['url'] is String) {
|
||||
webSrcUrl = Uri.parse(widget.event.content['url'])
|
||||
.getDownloadLink(Matrix.of(context).client);
|
||||
.getDownloadLink(Matrix.of(context).client)
|
||||
.toString();
|
||||
return Container(
|
||||
height: 50,
|
||||
width: 300,
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ class Avatar extends StatelessWidget {
|
|||
child: noPic
|
||||
? textWidget
|
||||
: CachedNetworkImage(
|
||||
imageUrl: src,
|
||||
imageUrl: src.toString(),
|
||||
fit: BoxFit.cover,
|
||||
width: size,
|
||||
height: size,
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@ class _ChatSettingsPopupMenuState extends State<ChatSettingsPopupMenu> {
|
|||
await showFutureLoadingDialog(
|
||||
context: context,
|
||||
future: () =>
|
||||
widget.room.setPushRuleState(PushRuleState.mentions_only));
|
||||
widget.room.setPushRuleState(PushRuleState.mentionsOnly));
|
||||
break;
|
||||
case 'unmute':
|
||||
await showFutureLoadingDialog(
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ class ContentBanner extends StatelessWidget {
|
|||
opacity: opacity,
|
||||
child: (!loading && mxContent != null)
|
||||
? CachedNetworkImage(
|
||||
imageUrl: src,
|
||||
imageUrl: src.toString(),
|
||||
height: 300,
|
||||
fit: BoxFit.cover,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -56,13 +56,15 @@ class HtmlMessage extends StatelessWidget {
|
|||
getMxcUrl: (String mxc, double width, double height,
|
||||
{bool animated = false}) {
|
||||
final ratio = MediaQuery.of(context).devicePixelRatio;
|
||||
return Uri.parse(mxc)?.getThumbnail(
|
||||
matrix.client,
|
||||
width: (width ?? 800) * ratio,
|
||||
height: (height ?? 800) * ratio,
|
||||
method: ThumbnailMethod.scale,
|
||||
animated: animated,
|
||||
);
|
||||
return Uri.parse(mxc)
|
||||
?.getThumbnail(
|
||||
matrix.client,
|
||||
width: (width ?? 800) * ratio,
|
||||
height: (height ?? 800) * ratio,
|
||||
method: ThumbnailMethod.scale,
|
||||
animated: animated,
|
||||
)
|
||||
.toString();
|
||||
},
|
||||
setCodeLanguage: (String key, String value) async {
|
||||
await matrix.store.setItem('${SettingKeys.codeLanguage}.$key', value);
|
||||
|
|
|
|||
|
|
@ -80,9 +80,10 @@ class _ImageBubbleState extends State<ImageBubble> {
|
|||
|
||||
@override
|
||||
void initState() {
|
||||
thumbnailUrl =
|
||||
widget.event.getAttachmentUrl(getThumbnail: true, animated: true);
|
||||
attachmentUrl = widget.event.getAttachmentUrl(animated: true);
|
||||
thumbnailUrl = widget.event
|
||||
.getAttachmentUrl(getThumbnail: true, animated: true)
|
||||
.toString();
|
||||
attachmentUrl = widget.event.getAttachmentUrl(animated: true).toString();
|
||||
if (thumbnailUrl == null) {
|
||||
_requestFile(getThumbnail: true);
|
||||
}
|
||||
|
|
@ -195,12 +196,15 @@ class _ImageBubbleState extends State<ImageBubble> {
|
|||
_requestedThumbnailOnFailure = true;
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
setState(() {
|
||||
thumbnailUrl = widget.event.getAttachmentUrl(
|
||||
getThumbnail: true,
|
||||
useThumbnailMxcUrl: true,
|
||||
animated: true);
|
||||
thumbnailUrl = widget.event
|
||||
.getAttachmentUrl(
|
||||
getThumbnail: true,
|
||||
useThumbnailMxcUrl: true,
|
||||
animated: true)
|
||||
.toString();
|
||||
attachmentUrl = widget.event
|
||||
.getAttachmentUrl(useThumbnailMxcUrl: true, animated: true);
|
||||
.getAttachmentUrl(useThumbnailMxcUrl: true, animated: true)
|
||||
.toString();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -160,7 +160,7 @@ class InputBar extends StatelessWidget {
|
|||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: <Widget>[
|
||||
CachedNetworkImage(
|
||||
imageUrl: url,
|
||||
imageUrl: url.toString(),
|
||||
width: size,
|
||||
height: size,
|
||||
),
|
||||
|
|
|
|||
|
|
@ -92,7 +92,7 @@ class Message extends StatelessWidget {
|
|||
mainAxisSize: MainAxisSize.min,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: <Widget>[
|
||||
if (event.relationshipType == RelationshipTypes.Reply)
|
||||
if (event.relationshipType == RelationshipTypes.reply)
|
||||
FutureBuilder<Event>(
|
||||
future: event.getReplyEvent(timeline),
|
||||
builder: (BuildContext context, snapshot) {
|
||||
|
|
@ -177,7 +177,7 @@ class Message extends StatelessWidget {
|
|||
children: rowChildren,
|
||||
);
|
||||
Widget container;
|
||||
if (event.hasAggregatedEvents(timeline, RelationshipTypes.Reaction)) {
|
||||
if (event.hasAggregatedEvents(timeline, RelationshipTypes.reaction)) {
|
||||
container = Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
crossAxisAlignment:
|
||||
|
|
@ -253,7 +253,7 @@ class _MetaRow extends StatelessWidget {
|
|||
fontSize: 11 * AppConfig.fontSizeFactor,
|
||||
),
|
||||
),
|
||||
if (event.hasAggregatedEvents(timeline, RelationshipTypes.Edit))
|
||||
if (event.hasAggregatedEvents(timeline, RelationshipTypes.edit))
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(left: 2.0),
|
||||
child: Icon(
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import 'package:fluffychat/config/setting_keys.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_app_lock/flutter_app_lock.dart';
|
||||
import 'package:flutter_screen_lock/lock_screen.dart';
|
||||
import 'package:flutter_screen_lock/functions.dart';
|
||||
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
|
||||
|
||||
class LockScreen extends StatelessWidget {
|
||||
|
|
@ -17,11 +17,10 @@ class LockScreen extends StatelessWidget {
|
|||
if (snapshot.connectionState == ConnectionState.done) {
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
if (snapshot.data?.isNotEmpty ?? false) {
|
||||
showLockScreen(
|
||||
screenLock(
|
||||
context: context,
|
||||
correctString: snapshot.data,
|
||||
onUnlocked: () => AppLock.of(context).didUnlock(),
|
||||
canBiometric: true,
|
||||
didConfirmed: (_) => AppLock.of(context).didUnlock(),
|
||||
canCancel: false,
|
||||
);
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ import 'package:flutter_gen/gen_l10n/l10n.dart';
|
|||
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
|
||||
import 'package:future_loading_dialog/future_loading_dialog.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:universal_html/prefer_universal/html.dart' as html;
|
||||
import 'package:universal_html/html.dart' as html;
|
||||
import 'package:http/http.dart' as http;
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
/*import 'package:fluffychat/views/chat_ui.dart';
|
||||
|
|
@ -201,7 +201,7 @@ class MatrixState extends State<Matrix> with WidgetsBindingObserver {
|
|||
html.Notification(
|
||||
room.getLocalizedDisplayname(MatrixLocals(L10n.of(context))),
|
||||
body: body,
|
||||
icon: icon,
|
||||
icon: icon.toString(),
|
||||
);
|
||||
} else if (Platform.isLinux) {
|
||||
/*var sessionBus = DBusClient.session();
|
||||
|
|
@ -239,7 +239,7 @@ class MatrixState extends State<Matrix> with WidgetsBindingObserver {
|
|||
Future<void> initConfig() async {
|
||||
try {
|
||||
final configJsonString =
|
||||
utf8.decode((await http.get('config.json')).bodyBytes);
|
||||
utf8.decode((await http.get(Uri.parse('config.json'))).bodyBytes);
|
||||
final configJson = json.decode(configJsonString);
|
||||
AppConfig.loadFromJson(configJson);
|
||||
} catch (e, s) {
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ class MessageReactions extends StatelessWidget {
|
|||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final allReactionEvents =
|
||||
event.aggregatedEvents(timeline, RelationshipTypes.Reaction);
|
||||
event.aggregatedEvents(timeline, RelationshipTypes.reaction);
|
||||
final reactionMap = <String, _ReactionEntry>{};
|
||||
for (final e in allReactionEvents) {
|
||||
if (e.content['m.relates_to'].containsKey('key')) {
|
||||
|
|
@ -97,7 +97,7 @@ class _Reaction extends StatelessWidget {
|
|||
mainAxisSize: MainAxisSize.min,
|
||||
children: <Widget>[
|
||||
CachedNetworkImage(
|
||||
imageUrl: src,
|
||||
imageUrl: src.toString(),
|
||||
height: fontSize,
|
||||
),
|
||||
Container(width: 4),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue