chore: Add code lint check for unused code

This commit is contained in:
Christian Kußowski 2026-02-18 16:10:23 +01:00
commit 1896c56544
No known key found for this signature in database
GPG key ID: E067ECD60F1A0652
12 changed files with 36 additions and 352 deletions

View file

@ -1,85 +0,0 @@
import 'package:flutter/material.dart';
import 'package:matrix/matrix.dart';
import 'package:fluffychat/l10n/l10n.dart';
import 'package:fluffychat/pages/chat/add_widget_tile_view.dart';
class AddWidgetTile extends StatefulWidget {
final Room room;
const AddWidgetTile({super.key, required this.room});
@override
State<AddWidgetTile> createState() => AddWidgetTileState();
}
class AddWidgetTileState extends State<AddWidgetTile> {
final TextEditingController urlController = TextEditingController();
final TextEditingController nameController = TextEditingController();
String widgetType = 'm.etherpad';
late final bool initiallyExpanded;
String? nameError;
String? urlError;
@override
void initState() {
initiallyExpanded = widget.room.widgets.isEmpty;
super.initState();
}
void setWidgetType(String value) => setState(() => widgetType = value);
void addWidget() {
try {
nameError = null;
urlError = null;
final room = widget.room;
final name = nameController.text;
final uri = Uri.tryParse(urlController.text);
if (name.length < 3) {
setState(() {
nameError = L10n.of(context).widgetNameError;
});
return;
}
if (uri == null || uri.scheme != 'https') {
setState(() {
urlError = L10n.of(context).widgetUrlError;
});
return;
}
setState(() {});
late MatrixWidget matrixWidget;
switch (widgetType) {
case 'm.etherpad':
matrixWidget = MatrixWidget.etherpad(room, name, uri);
break;
case 'm.jitsi':
matrixWidget = MatrixWidget.jitsi(room, name, uri);
break;
case 'm.video':
matrixWidget = MatrixWidget.video(room, name, uri);
break;
default:
matrixWidget = MatrixWidget.custom(room, name, uri);
break;
}
widget.room.addWidget(matrixWidget);
Navigator.of(context).pop();
} catch (e) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text(L10n.of(context).errorAddingWidget)),
);
}
}
@override
Widget build(BuildContext context) => AddWidgetTileView(controller: this);
}

View file

@ -1,73 +0,0 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:fluffychat/l10n/l10n.dart';
import 'package:fluffychat/pages/chat/add_widget_tile.dart';
class AddWidgetTileView extends StatelessWidget {
final AddWidgetTileState controller;
const AddWidgetTileView({super.key, required this.controller});
@override
Widget build(BuildContext context) {
return ExpansionTile(
title: Text(L10n.of(context).addWidget),
leading: const Icon(Icons.add),
initiallyExpanded: controller.initiallyExpanded,
children: [
CupertinoSegmentedControl(
groupValue: controller.widgetType,
padding: const EdgeInsets.all(8),
children:
{
'm.etherpad': Text(L10n.of(context).widgetEtherpad),
'm.jitsi': Text(L10n.of(context).widgetJitsi),
'm.video': Text(L10n.of(context).widgetVideo),
'm.custom': Text(L10n.of(context).widgetCustom),
}.map(
(key, value) => MapEntry(
key,
Padding(
padding: const EdgeInsets.symmetric(horizontal: 4.0),
child: value,
),
),
),
onValueChanged: controller.setWidgetType,
),
Padding(
padding: const EdgeInsets.all(8.0),
child: TextField(
controller: controller.nameController,
autofocus: true,
decoration: InputDecoration(
prefixIcon: const Icon(Icons.label),
label: Text(L10n.of(context).widgetName),
errorText: controller.nameError,
),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: TextField(
controller: controller.urlController,
decoration: InputDecoration(
prefixIcon: const Icon(Icons.add_link),
label: Text(L10n.of(context).link),
errorText: controller.urlError,
),
),
),
OverflowBar(
children: [
TextButton(
onPressed: controller.addWidget,
child: Text(L10n.of(context).addWidget),
),
],
),
],
);
}
}