build: Update packages and flutter super.key refactoring
This commit is contained in:
parent
4605a92d17
commit
eca4825c70
129 changed files with 294 additions and 324 deletions
|
|
@ -8,7 +8,7 @@ import 'package:fluffychat/pages/chat/add_widget_tile_view.dart';
|
|||
class AddWidgetTile extends StatefulWidget {
|
||||
final Room room;
|
||||
|
||||
const AddWidgetTile({Key? key, required this.room}) : super(key: key);
|
||||
const AddWidgetTile({super.key, required this.room});
|
||||
|
||||
@override
|
||||
State<AddWidgetTile> createState() => AddWidgetTileState();
|
||||
|
|
|
|||
|
|
@ -8,8 +8,7 @@ import 'package:fluffychat/pages/chat/add_widget_tile.dart';
|
|||
class AddWidgetTileView extends StatelessWidget {
|
||||
final AddWidgetTileState controller;
|
||||
|
||||
const AddWidgetTileView({Key? key, required this.controller})
|
||||
: super(key: key);
|
||||
const AddWidgetTileView({super.key, required this.controller});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
|
|
|||
|
|
@ -43,9 +43,9 @@ class ChatPage extends StatelessWidget {
|
|||
final String roomId;
|
||||
|
||||
const ChatPage({
|
||||
Key? key,
|
||||
super.key,
|
||||
required this.roomId,
|
||||
}) : super(key: key);
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
|
@ -95,9 +95,9 @@ class ChatPageWithRoom extends StatefulWidget {
|
|||
final Room room;
|
||||
|
||||
const ChatPageWithRoom({
|
||||
Key? key,
|
||||
super.key,
|
||||
required this.room,
|
||||
}) : super(key: key);
|
||||
});
|
||||
|
||||
@override
|
||||
ChatController createState() => ChatController();
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import 'package:fluffychat/widgets/avatar.dart';
|
|||
|
||||
class ChatAppBarTitle extends StatelessWidget {
|
||||
final ChatController controller;
|
||||
const ChatAppBarTitle(this.controller, {Key? key}) : super(key: key);
|
||||
const ChatAppBarTitle(this.controller, {super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import 'chat.dart';
|
|||
|
||||
class ChatEmojiPicker extends StatelessWidget {
|
||||
final ChatController controller;
|
||||
const ChatEmojiPicker(this.controller, {Key? key}) : super(key: key);
|
||||
const ChatEmojiPicker(this.controller, {super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
|
|
|||
|
|
@ -16,9 +16,9 @@ import 'package:fluffychat/utils/platform_infos.dart';
|
|||
class ChatEventList extends StatelessWidget {
|
||||
final ChatController controller;
|
||||
const ChatEventList({
|
||||
Key? key,
|
||||
super.key,
|
||||
required this.controller,
|
||||
}) : super(key: key);
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ import 'input_bar.dart';
|
|||
class ChatInputRow extends StatelessWidget {
|
||||
final ChatController controller;
|
||||
|
||||
const ChatInputRow(this.controller, {Key? key}) : super(key: key);
|
||||
const ChatInputRow(this.controller, {super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
|
@ -278,7 +278,7 @@ class ChatInputRow extends StatelessWidget {
|
|||
class _ChatAccountPicker extends StatelessWidget {
|
||||
final ChatController controller;
|
||||
|
||||
const _ChatAccountPicker(this.controller, {Key? key}) : super(key: key);
|
||||
const _ChatAccountPicker(this.controller);
|
||||
|
||||
void _popupMenuButtonSelected(String mxid, BuildContext context) {
|
||||
final client = Matrix.of(context)
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ enum _EventContextAction { info, report }
|
|||
class ChatView extends StatelessWidget {
|
||||
final ChatController controller;
|
||||
|
||||
const ChatView(this.controller, {Key? key}) : super(key: key);
|
||||
const ChatView(this.controller, {super.key});
|
||||
|
||||
List<Widget> _appBarActions(BuildContext context) {
|
||||
if (controller.selectMode) {
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import 'add_widget_tile.dart';
|
|||
class EditWidgetsDialog extends StatelessWidget {
|
||||
final Room room;
|
||||
|
||||
const EditWidgetsDialog({Key? key, required this.room}) : super(key: key);
|
||||
const EditWidgetsDialog({super.key, required this.room});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import '../../widgets/matrix.dart';
|
|||
|
||||
class EncryptionButton extends StatelessWidget {
|
||||
final Room room;
|
||||
const EncryptionButton(this.room, {Key? key}) : super(key: key);
|
||||
const EncryptionButton(this.room, {super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
|
|
|||
|
|
@ -24,8 +24,8 @@ class EventInfoDialog extends StatelessWidget {
|
|||
const EventInfoDialog({
|
||||
required this.event,
|
||||
required this.l10n,
|
||||
Key? key,
|
||||
}) : super(key: key);
|
||||
super.key,
|
||||
});
|
||||
|
||||
String get prettyJson {
|
||||
const JsonDecoder decoder = JsonDecoder();
|
||||
|
|
|
|||
|
|
@ -20,8 +20,7 @@ class AudioPlayerWidget extends StatefulWidget {
|
|||
|
||||
static const int wavesCount = 40;
|
||||
|
||||
const AudioPlayerWidget(this.event, {this.color = Colors.black, Key? key})
|
||||
: super(key: key);
|
||||
const AudioPlayerWidget(this.event, {this.color = Colors.black, super.key});
|
||||
|
||||
@override
|
||||
AudioPlayerState createState() => AudioPlayerState();
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import 'package:fluffychat/config/app_config.dart';
|
|||
class CuteContent extends StatefulWidget {
|
||||
final Event event;
|
||||
|
||||
const CuteContent(this.event, {Key? key}) : super(key: key);
|
||||
const CuteContent(this.event, {super.key});
|
||||
|
||||
@override
|
||||
State<CuteContent> createState() => _CuteContentState();
|
||||
|
|
@ -98,10 +98,10 @@ class CuteEventOverlay extends StatefulWidget {
|
|||
final VoidCallback onAnimationEnd;
|
||||
|
||||
const CuteEventOverlay({
|
||||
Key? key,
|
||||
super.key,
|
||||
required this.emoji,
|
||||
required this.onAnimationEnd,
|
||||
}) : super(key: key);
|
||||
});
|
||||
|
||||
@override
|
||||
State<CuteEventOverlay> createState() => _CuteEventOverlayState();
|
||||
|
|
@ -179,7 +179,7 @@ class _CuteOverlayContent extends StatelessWidget {
|
|||
static const double size = 64.0;
|
||||
final String emoji;
|
||||
|
||||
const _CuteOverlayContent({Key? key, required this.emoji}) : super(key: key);
|
||||
const _CuteOverlayContent({required this.emoji});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
|
|
|||
|
|
@ -20,11 +20,11 @@ class HtmlMessage extends StatelessWidget {
|
|||
final Color textColor;
|
||||
|
||||
const HtmlMessage({
|
||||
Key? key,
|
||||
super.key,
|
||||
required this.html,
|
||||
required this.room,
|
||||
this.textColor = Colors.black,
|
||||
}) : super(key: key);
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
|
|
|||
|
|
@ -29,8 +29,8 @@ class ImageBubble extends StatelessWidget {
|
|||
this.height = 300,
|
||||
this.animated = false,
|
||||
this.onTap,
|
||||
Key? key,
|
||||
}) : super(key: key);
|
||||
super.key,
|
||||
});
|
||||
|
||||
Widget _buildPlaceholder(BuildContext context) {
|
||||
if (event.messageType == MessageTypes.Sticker) {
|
||||
|
|
|
|||
|
|
@ -17,8 +17,8 @@ class MapBubble extends StatelessWidget {
|
|||
this.width = 400,
|
||||
this.height = 400,
|
||||
this.radius = 10.0,
|
||||
Key? key,
|
||||
}) : super(key: key);
|
||||
super.key,
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
|
|
|||
|
|
@ -41,8 +41,8 @@ class Message extends StatelessWidget {
|
|||
required this.onSwipe,
|
||||
this.selected = false,
|
||||
required this.timeline,
|
||||
Key? key,
|
||||
}) : super(key: key);
|
||||
super.key,
|
||||
});
|
||||
|
||||
/// Indicates wheither the user may use a mouse instead
|
||||
/// of touchscreen.
|
||||
|
|
|
|||
|
|
@ -30,9 +30,9 @@ class MessageContent extends StatelessWidget {
|
|||
const MessageContent(
|
||||
this.event, {
|
||||
this.onInfoTab,
|
||||
Key? key,
|
||||
super.key,
|
||||
required this.textColor,
|
||||
}) : super(key: key);
|
||||
});
|
||||
|
||||
void _verifyOrRequestKey(BuildContext context) async {
|
||||
final l10n = L10n.of(context)!;
|
||||
|
|
@ -311,8 +311,7 @@ class _ButtonContent extends StatelessWidget {
|
|||
required this.textColor,
|
||||
required this.onPressed,
|
||||
required this.fontSize,
|
||||
Key? key,
|
||||
}) : super(key: key);
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
|
|
|||
|
|
@ -8,8 +8,7 @@ class MessageDownloadContent extends StatelessWidget {
|
|||
final Event event;
|
||||
final Color textColor;
|
||||
|
||||
const MessageDownloadContent(this.event, this.textColor, {Key? key})
|
||||
: super(key: key);
|
||||
const MessageDownloadContent(this.event, this.textColor, {super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
|
|
|||
|
|
@ -15,8 +15,7 @@ class MessageReactions extends StatelessWidget {
|
|||
final Event event;
|
||||
final Timeline timeline;
|
||||
|
||||
const MessageReactions(this.event, this.timeline, {Key? key})
|
||||
: super(key: key);
|
||||
const MessageReactions(this.event, this.timeline, {super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
|
@ -50,36 +49,34 @@ class MessageReactions extends StatelessWidget {
|
|||
spacing: 4.0,
|
||||
runSpacing: 4.0,
|
||||
children: [
|
||||
...reactionList
|
||||
.map(
|
||||
(r) => _Reaction(
|
||||
reactionKey: r.key,
|
||||
count: r.count,
|
||||
reacted: r.reacted,
|
||||
onTap: () {
|
||||
if (r.reacted) {
|
||||
final evt = allReactionEvents.firstWhereOrNull(
|
||||
(e) =>
|
||||
e.senderId == e.room.client.userID &&
|
||||
e.content.tryGetMap('m.relates_to')?['key'] == r.key,
|
||||
);
|
||||
if (evt != null) {
|
||||
showFutureLoadingDialog(
|
||||
context: context,
|
||||
future: () => evt.redactEvent(),
|
||||
);
|
||||
}
|
||||
} else {
|
||||
event.room.sendReaction(event.eventId, r.key!);
|
||||
}
|
||||
},
|
||||
onLongPress: () async => await _AdaptableReactorsDialog(
|
||||
client: client,
|
||||
reactionEntry: r,
|
||||
).show(context),
|
||||
),
|
||||
)
|
||||
.toList(),
|
||||
...reactionList.map(
|
||||
(r) => _Reaction(
|
||||
reactionKey: r.key,
|
||||
count: r.count,
|
||||
reacted: r.reacted,
|
||||
onTap: () {
|
||||
if (r.reacted) {
|
||||
final evt = allReactionEvents.firstWhereOrNull(
|
||||
(e) =>
|
||||
e.senderId == e.room.client.userID &&
|
||||
e.content.tryGetMap('m.relates_to')?['key'] == r.key,
|
||||
);
|
||||
if (evt != null) {
|
||||
showFutureLoadingDialog(
|
||||
context: context,
|
||||
future: () => evt.redactEvent(),
|
||||
);
|
||||
}
|
||||
} else {
|
||||
event.room.sendReaction(event.eventId, r.key!);
|
||||
}
|
||||
},
|
||||
onLongPress: () async => await _AdaptableReactorsDialog(
|
||||
client: client,
|
||||
reactionEntry: r,
|
||||
).show(context),
|
||||
),
|
||||
),
|
||||
if (allReactionEvents.any((e) => e.status.isSending))
|
||||
const SizedBox(
|
||||
width: 28,
|
||||
|
|
@ -190,10 +187,9 @@ class _AdaptableReactorsDialog extends StatelessWidget {
|
|||
final _ReactionEntry? reactionEntry;
|
||||
|
||||
const _AdaptableReactorsDialog({
|
||||
Key? key,
|
||||
this.client,
|
||||
this.reactionEntry,
|
||||
}) : super(key: key);
|
||||
});
|
||||
|
||||
Future<bool?> show(BuildContext context) => PlatformInfos.isCupertinoStyle
|
||||
? showCupertinoDialog(
|
||||
|
|
|
|||
|
|
@ -14,9 +14,9 @@ class ReplyContent extends StatelessWidget {
|
|||
const ReplyContent(
|
||||
this.replyEvent, {
|
||||
this.ownMessage = false,
|
||||
Key? key,
|
||||
super.key,
|
||||
this.timeline,
|
||||
}) : super(key: key);
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import '../../../config/app_config.dart';
|
|||
|
||||
class StateMessage extends StatelessWidget {
|
||||
final Event event;
|
||||
const StateMessage(this.event, {Key? key}) : super(key: key);
|
||||
const StateMessage(this.event, {super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import 'image_bubble.dart';
|
|||
class Sticker extends StatefulWidget {
|
||||
final Event event;
|
||||
|
||||
const Sticker(this.event, {Key? key}) : super(key: key);
|
||||
const Sticker(this.event, {super.key});
|
||||
|
||||
@override
|
||||
StickerState createState() => StickerState();
|
||||
|
|
|
|||
|
|
@ -12,8 +12,8 @@ class VerificationRequestContent extends StatelessWidget {
|
|||
const VerificationRequestContent({
|
||||
required this.event,
|
||||
required this.timeline,
|
||||
Key? key,
|
||||
}) : super(key: key);
|
||||
super.key,
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ import '../../../utils/error_reporter.dart';
|
|||
|
||||
class EventVideoPlayer extends StatefulWidget {
|
||||
final Event event;
|
||||
const EventVideoPlayer(this.event, {Key? key}) : super(key: key);
|
||||
const EventVideoPlayer(this.event, {super.key});
|
||||
|
||||
@override
|
||||
EventVideoPlayerState createState() => EventVideoPlayerState();
|
||||
|
|
|
|||
|
|
@ -44,8 +44,8 @@ class InputBar extends StatelessWidget {
|
|||
this.autofocus,
|
||||
this.textInputAction,
|
||||
this.readOnly = false,
|
||||
Key? key,
|
||||
}) : super(key: key);
|
||||
super.key,
|
||||
});
|
||||
|
||||
List<Map<String, String?>> getSuggestions(String text) {
|
||||
if (controller!.selection.baseOffset !=
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ import 'package:fluffychat/utils/url_launcher.dart';
|
|||
class PinnedEvents extends StatelessWidget {
|
||||
final ChatController controller;
|
||||
|
||||
const PinnedEvents(this.controller, {Key? key}) : super(key: key);
|
||||
const PinnedEvents(this.controller, {super.key});
|
||||
|
||||
Future<void> _displayPinnedEventsDialog(
|
||||
BuildContext context,
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import '../../config/themes.dart';
|
|||
class ReactionsPicker extends StatelessWidget {
|
||||
final ChatController controller;
|
||||
|
||||
const ReactionsPicker(this.controller, {Key? key}) : super(key: key);
|
||||
const ReactionsPicker(this.controller, {super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
|
|
|||
|
|
@ -15,8 +15,8 @@ import 'events/audio_player.dart';
|
|||
class RecordingDialog extends StatefulWidget {
|
||||
static const String recordingFileType = 'm4a';
|
||||
const RecordingDialog({
|
||||
Key? key,
|
||||
}) : super(key: key);
|
||||
super.key,
|
||||
});
|
||||
|
||||
@override
|
||||
RecordingDialogState createState() => RecordingDialogState();
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import 'events/reply_content.dart';
|
|||
|
||||
class ReplyDisplay extends StatelessWidget {
|
||||
final ChatController controller;
|
||||
const ReplyDisplay(this.controller, {Key? key}) : super(key: key);
|
||||
const ReplyDisplay(this.controller, {super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import 'package:fluffychat/widgets/matrix.dart';
|
|||
|
||||
class SeenByRow extends StatelessWidget {
|
||||
final ChatController controller;
|
||||
const SeenByRow(this.controller, {Key? key}) : super(key: key);
|
||||
const SeenByRow(this.controller, {super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
|
@ -38,14 +38,13 @@ class SeenByRow extends StatelessWidget {
|
|||
? seenByUsers.sublist(0, maxAvatars)
|
||||
: seenByUsers)
|
||||
.map(
|
||||
(user) => Avatar(
|
||||
mxContent: user.avatarUrl,
|
||||
name: user.calcDisplayname(),
|
||||
size: 16,
|
||||
fontSize: 9,
|
||||
),
|
||||
)
|
||||
.toList(),
|
||||
(user) => Avatar(
|
||||
mxContent: user.avatarUrl,
|
||||
name: user.calcDisplayname(),
|
||||
size: 16,
|
||||
fontSize: 9,
|
||||
),
|
||||
),
|
||||
if (seenByUsers.length > maxAvatars)
|
||||
SizedBox(
|
||||
width: 16,
|
||||
|
|
|
|||
|
|
@ -15,8 +15,8 @@ class SendFileDialog extends StatefulWidget {
|
|||
const SendFileDialog({
|
||||
required this.room,
|
||||
required this.files,
|
||||
Key? key,
|
||||
}) : super(key: key);
|
||||
super.key,
|
||||
});
|
||||
|
||||
@override
|
||||
SendFileDialogState createState() => SendFileDialogState();
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@ class SendLocationDialog extends StatefulWidget {
|
|||
|
||||
const SendLocationDialog({
|
||||
required this.room,
|
||||
Key? key,
|
||||
}) : super(key: key);
|
||||
super.key,
|
||||
});
|
||||
|
||||
@override
|
||||
SendLocationDialogState createState() => SendLocationDialogState();
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import 'events/image_bubble.dart';
|
|||
class StickerPickerDialog extends StatefulWidget {
|
||||
final Room room;
|
||||
|
||||
const StickerPickerDialog({required this.room, Key? key}) : super(key: key);
|
||||
const StickerPickerDialog({required this.room, super.key});
|
||||
|
||||
@override
|
||||
StickerPickerDialogState createState() => StickerPickerDialogState();
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import 'chat.dart';
|
|||
|
||||
class TombstoneDisplay extends StatelessWidget {
|
||||
final ChatController controller;
|
||||
const TombstoneDisplay(this.controller, {Key? key}) : super(key: key);
|
||||
const TombstoneDisplay(this.controller, {super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import 'package:fluffychat/widgets/matrix.dart';
|
|||
|
||||
class TypingIndicators extends StatelessWidget {
|
||||
final ChatController controller;
|
||||
const TypingIndicators(this.controller, {Key? key}) : super(key: key);
|
||||
const TypingIndicators(this.controller, {super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue