diff --git a/assets/images/background.png b/assets/images/background.png
new file mode 100644
index 0000000..c0ea624
Binary files /dev/null and b/assets/images/background.png differ
diff --git a/lib/src/app.dart b/lib/src/app.dart
index d9132c9..de2ad7d 100644
--- a/lib/src/app.dart
+++ b/lib/src/app.dart
@@ -19,6 +19,8 @@
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
+import 'package:shared_preferences/shared_preferences.dart';
+import 'package:steamwar_multitool/src/screens/display/display.dart';
import 'package:steamwar_multitool/src/screens/event/event.dart';
import 'package:steamwar_multitool/src/screens/event/event_fights_graph.dart';
@@ -53,7 +55,26 @@ final _routes = GoRouter(
}
return EventfightsGraph(eventId);
}),
+ GoRoute(
+ path: "/display/:eventId",
+ builder: (context, state) {
+ final eventId = int.tryParse(state.params['eventId']!);
+ if (eventId == null) {
+ context.go("/");
+ return const SizedBox();
+ }
+ final group = state.queryParams['group'];
+ return DisplayScreen(eventId, group);
+ }),
],
+ redirect: (context, state) async {
+ if (state.queryParams.containsKey("key")) {
+ final key = state.queryParams["key"]!;
+ final prefs = await SharedPreferences.getInstance();
+ prefs.setString("key", key);
+ return state.location.replaceAll("key=$key", "");
+ }
+ },
initialLocation: "/login",
);
diff --git a/lib/src/screens/display/display.dart b/lib/src/screens/display/display.dart
new file mode 100644
index 0000000..76fa3a9
--- /dev/null
+++ b/lib/src/screens/display/display.dart
@@ -0,0 +1,266 @@
+/*
+ * This file is a part of the SteamWar software.
+ *
+ * Copyright (C) 2023 SteamWar.de-Serverteam
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
+
+import 'package:flutter/material.dart';
+import 'package:flutter_hooks/flutter_hooks.dart';
+import 'package:hooks_riverpod/hooks_riverpod.dart';
+import 'package:intl/intl.dart';
+import 'package:steamwar_multitool/src/provider/events.dart';
+import 'package:steamwar_multitool/src/types/types.dart';
+
+class DisplayScreen extends HookConsumerWidget {
+ final int eventId;
+ final String? group;
+
+ const DisplayScreen(this.eventId, this.group, {Key? key}) : super(key: key);
+
+ @override
+ Widget build(BuildContext context, WidgetRef ref) {
+ final eventFuture = useMemoized(() => ref
+ .watch(eventRepositoryProvider.future)
+ .then((value) => value.getEvent(eventId)));
+
+ return FutureBuilder(
+ future: eventFuture,
+ builder: (context, snapshot) {
+ if (snapshot.hasError) {
+ return Scaffold(
+ appBar: AppBar(
+ title: const Text('Error'),
+ ),
+ body: Center(
+ child: Text('Error: ${snapshot.error}'),
+ ),
+ );
+ }
+ if (!snapshot.hasData) {
+ return Scaffold(
+ appBar: AppBar(
+ title: const Text('Loading'),
+ ),
+ body: const Center(
+ child: CircularProgressIndicator(),
+ ),
+ );
+ }
+ final eventData = snapshot.data as EventExtended;
+
+ return DisplayScreenLoaded(
+ eventData,
+ group,
+ );
+ },
+ );
+ }
+}
+
+class DisplayScreenLoaded extends HookConsumerWidget {
+ final EventExtended eventData;
+ final String? group;
+ const DisplayScreenLoaded(this.eventData, this.group, {Key? key})
+ : super(key: key);
+
+ @override
+ Widget build(BuildContext context, WidgetRef ref) {
+ final nextFight = useMemoized(() {
+ final fights = eventData.fights;
+ if (fights.isEmpty) {
+ return null;
+ }
+ final now = DateTime.now();
+ final nextFight = fights.firstWhere(
+ (element) => element.start.isAfter(now) && element.group == group);
+ return nextFight;
+ });
+
+ return Theme(
+ data: ThemeData.dark(useMaterial3: true),
+ child: Scaffold(
+ backgroundColor: Colors.blue,
+ body: Stack(
+ children: [
+ Image.asset(
+ "images/background.png",
+ fit: BoxFit.cover,
+ height: double.infinity,
+ width: double.infinity,
+ ),
+ Column(
+ mainAxisSize: MainAxisSize.max,
+ children: [
+ const SizedBox(height: 8),
+ SizedBox(
+ width: double.infinity,
+ child: Card(
+ margin: const EdgeInsets.all(8),
+ child: Column(
+ children: [
+ Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: Center(
+ child: Text(
+ 'SteamWar.de - ${eventData.event.name}',
+ style: const TextStyle(fontSize: 24))),
+ ),
+ ],
+ )),
+ ),
+ Expanded(
+ child: FightList(
+ eventData.fights
+ .where(
+ (element) => group == null || element.group == group)
+ .toList(),
+ )),
+ if (nextFight != null)
+ SizedBox(
+ width: double.infinity,
+ child: Card(
+ margin: const EdgeInsets.all(8),
+ child: Column(
+ children: [
+ Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: Center(
+ child: Text(
+ 'Nächster Kampf: ${kTimeFormat.format(nextFight.start)} - ${nextFight.blueTeam.name} vs. ${nextFight.redTeam.name}',
+ style: const TextStyle(fontSize: 24))),
+ ),
+ ],
+ )),
+ ),
+ ],
+ ),
+ ],
+ ),
+ ),
+ );
+ }
+}
+
+final kTimeFormat = DateFormat('HH:mm');
+
+class FightList extends HookConsumerWidget {
+ final List fights;
+ const FightList(this.fights, {Key? key}) : super(key: key);
+
+ @override
+ Widget build(BuildContext context, WidgetRef ref) {
+ final scrollController = useScrollController();
+
+ void launchScroller() {
+ Future.delayed(const Duration(seconds: 5), () async {
+ var npos;
+ if (scrollController.position.maxScrollExtent ==
+ scrollController.offset) {
+ npos = 0.0;
+ } else {
+ npos = scrollController.offset + 300;
+ }
+ await scrollController.animateTo(
+ npos,
+ curve: Curves.easeOut,
+ duration: const Duration(seconds: 2),
+ );
+ launchScroller();
+ });
+ }
+
+ useMemoized(launchScroller);
+
+ return LayoutBuilder(builder: (context, layout) {
+ return SingleChildScrollView(
+ controller: scrollController,
+ child: Column(
+ children: fights.map((fight) {
+ return Card(
+ margin: const EdgeInsets.all(8),
+ child: Row(
+ children: [
+ const SizedBox(width: 8),
+ Chip(label: Text(kTimeFormat.format(fight.start))),
+ const SizedBox(width: 16),
+ Chip(
+ label: Text(fight.blueTeam.kuerzel,
+ style: TextStyle(
+ color: fight.blueTeam.color.computeLuminance() > 0.5
+ ? Colors.black
+ : Colors.white)),
+ backgroundColor: fight.blueTeam.color,
+ ),
+ const SizedBox(width: 8),
+ Text(fight.blueTeam.name,
+ style: const TextStyle(fontSize: 24)),
+ const SizedBox(width: 8),
+ const Text("vs.", style: TextStyle(fontSize: 20)),
+ const SizedBox(width: 8),
+ Chip(
+ label: Text(fight.redTeam.kuerzel,
+ style: TextStyle(
+ color: fight.redTeam.color.computeLuminance() > 0.5
+ ? Colors.black
+ : Colors.white)),
+ backgroundColor: fight.redTeam.color,
+ ),
+ const SizedBox(width: 8),
+ Text(fight.redTeam.name,
+ style: const TextStyle(fontSize: 24)),
+ const Spacer(),
+ if (fight.score == 0) const Icon(Icons.access_time, size: 24),
+ if (fight.score == 1 || fight.score == 2)
+ Chip(
+ label: Row(
+ children: [
+ Icon(Icons.military_tech,
+ size: 24,
+ color: fight.winner.color.computeLuminance() > 0.5
+ ? Colors.black
+ : Colors.white),
+ const SizedBox(width: 8),
+ Text(fight.winner.kuerzel,
+ style: TextStyle(
+ color: fight.winner.color.computeLuminance() >
+ 0.5
+ ? Colors.black
+ : Colors.white)),
+ ],
+ ),
+ backgroundColor: fight.winner.color,
+ ),
+ if (fight.score == 3)
+ Chip(
+ label: Row(
+ children: const [
+ Icon(Icons.handshake, size: 24, color: Colors.black),
+ SizedBox(width: 8),
+ Text("Draw", style: TextStyle(color: Colors.black)),
+ ],
+ ),
+ backgroundColor: Colors.grey[100],
+ ),
+ const SizedBox(width: 8),
+ ],
+ ),
+ );
+ }).toList(),
+ ),
+ );
+ });
+ }
+}
diff --git a/lib/src/screens/event/components/dialogs/edit_fight.dart b/lib/src/screens/event/components/dialogs/edit_fight.dart
index a30df0e..8351b24 100644
--- a/lib/src/screens/event/components/dialogs/edit_fight.dart
+++ b/lib/src/screens/event/components/dialogs/edit_fight.dart
@@ -180,7 +180,7 @@ class EditEventFightDialog extends HookConsumerWidget {
Navigator.of(context).pop();
},
child: const Text("Cancel")),
- TextButton(
+ ElevatedButton(
onPressed: () async {
var nav = Navigator.of(context);
final repo = await ref.read(eventRepositoryProvider.future);
diff --git a/lib/src/screens/event/components/fight_list.dart b/lib/src/screens/event/components/fight_list.dart
index 782d998..3ae5667 100644
--- a/lib/src/screens/event/components/fight_list.dart
+++ b/lib/src/screens/event/components/fight_list.dart
@@ -137,7 +137,7 @@ class EventFightList extends HookConsumerWidget {
},
child: const Text("Cancel"),
),
- TextButton(
+ ElevatedButton(
onPressed: () async {
final selectedFights = fights.value
.where((element) => selected.value
@@ -262,7 +262,7 @@ class EventFightList extends HookConsumerWidget {
},
child: const Text("Cancel"),
),
- TextButton(
+ ElevatedButton(
onPressed: () async {
final repo = await ref
.read(eventRepositoryProvider.future);
diff --git a/lib/src/screens/event/components/loaded_event.dart b/lib/src/screens/event/components/loaded_event.dart
index d1ebb5e..e699c82 100644
--- a/lib/src/screens/event/components/loaded_event.dart
+++ b/lib/src/screens/event/components/loaded_event.dart
@@ -279,6 +279,7 @@ class LoadedEventScreen extends HookConsumerWidget {
Padding(
padding: const EdgeInsets.all(8.0),
child: Chip(
+ side: const BorderSide(color: Colors.transparent),
label: Text(team.name,
style: TextStyle(
color: team.color.computeLuminance() > 0.5
diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift
index 287b6a9..724bb2a 100644
--- a/macos/Flutter/GeneratedPluginRegistrant.swift
+++ b/macos/Flutter/GeneratedPluginRegistrant.swift
@@ -5,7 +5,7 @@
import FlutterMacOS
import Foundation
-import shared_preferences_macos
+import shared_preferences_foundation
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
diff --git a/pubspec.lock b/pubspec.lock
index 0ecb465..c89678f 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -5,203 +5,232 @@ packages:
dependency: transitive
description:
name: _fe_analyzer_shared
- url: "https://pub.dartlang.org"
+ sha256: "0c80aeab9bc807ab10022cd3b2f4cf2ecdf231949dc1ddd9442406a003f19201"
+ url: "https://pub.dev"
source: hosted
- version: "50.0.0"
+ version: "52.0.0"
analyzer:
dependency: transitive
description:
name: analyzer
- url: "https://pub.dartlang.org"
+ sha256: cd8ee83568a77f3ae6b913a36093a1c9b1264e7cb7f834d9ddd2311dade9c1f4
+ url: "https://pub.dev"
source: hosted
- version: "5.2.0"
+ version: "5.4.0"
args:
dependency: transitive
description:
name: args
- url: "https://pub.dartlang.org"
+ sha256: "139d809800a412ebb26a3892da228b2d0ba36f0ef5d9a82166e5e52ec8d61611"
+ url: "https://pub.dev"
source: hosted
- version: "2.3.1"
+ version: "2.3.2"
async:
dependency: transitive
description:
name: async
- url: "https://pub.dartlang.org"
+ sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0
+ url: "https://pub.dev"
source: hosted
- version: "2.9.0"
+ version: "2.10.0"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
- url: "https://pub.dartlang.org"
+ sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
+ url: "https://pub.dev"
source: hosted
- version: "2.1.0"
+ version: "2.1.1"
build:
dependency: transitive
description:
name: build
- url: "https://pub.dartlang.org"
+ sha256: "3fbda25365741f8251b39f3917fb3c8e286a96fd068a5a242e11c2012d495777"
+ url: "https://pub.dev"
source: hosted
version: "2.3.1"
build_config:
dependency: transitive
description:
name: build_config
- url: "https://pub.dartlang.org"
+ sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1
+ url: "https://pub.dev"
source: hosted
version: "1.1.1"
build_daemon:
dependency: transitive
description:
name: build_daemon
- url: "https://pub.dartlang.org"
+ sha256: "6bc5544ea6ce4428266e7ea680e945c68806c4aae2da0eb5e9ccf38df8d6acbf"
+ url: "https://pub.dev"
source: hosted
version: "3.1.0"
build_resolvers:
dependency: transitive
description:
name: build_resolvers
- url: "https://pub.dartlang.org"
+ sha256: "7c35a3a7868626257d8aee47b51c26b9dba11eaddf3431117ed2744951416aab"
+ url: "https://pub.dev"
source: hosted
version: "2.1.0"
build_runner:
dependency: "direct dev"
description:
name: build_runner
- url: "https://pub.dartlang.org"
+ sha256: b0a8a7b8a76c493e85f1b84bffa0588859a06197863dba8c9036b15581fd9727
+ url: "https://pub.dev"
source: hosted
version: "2.3.3"
build_runner_core:
dependency: transitive
description:
name: build_runner_core
- url: "https://pub.dartlang.org"
+ sha256: "14febe0f5bac5ae474117a36099b4de6f1dbc52df6c5e55534b3da9591bf4292"
+ url: "https://pub.dev"
source: hosted
version: "7.2.7"
built_collection:
dependency: transitive
description:
name: built_collection
- url: "https://pub.dartlang.org"
+ sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100"
+ url: "https://pub.dev"
source: hosted
version: "5.1.1"
built_value:
dependency: transitive
description:
name: built_value
- url: "https://pub.dartlang.org"
+ sha256: "169565c8ad06adb760c3645bf71f00bff161b00002cace266cad42c5d22a7725"
+ url: "https://pub.dev"
source: hosted
- version: "8.4.2"
+ version: "8.4.3"
characters:
dependency: transitive
description:
name: characters
- url: "https://pub.dartlang.org"
+ sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c
+ url: "https://pub.dev"
source: hosted
version: "1.2.1"
checked_yaml:
dependency: transitive
description:
name: checked_yaml
- url: "https://pub.dartlang.org"
+ sha256: "3d1505d91afa809d177efd4eed5bb0eb65805097a1463abdd2add076effae311"
+ url: "https://pub.dev"
source: hosted
- version: "2.0.1"
+ version: "2.0.2"
clock:
dependency: transitive
description:
name: clock
- url: "https://pub.dartlang.org"
+ sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
+ url: "https://pub.dev"
source: hosted
version: "1.1.1"
code_builder:
dependency: transitive
description:
name: code_builder
- url: "https://pub.dartlang.org"
+ sha256: "0d43dd1288fd145de1ecc9a3948ad4a6d5a82f0a14c4fdd0892260787d975cbe"
+ url: "https://pub.dev"
source: hosted
version: "4.4.0"
collection:
dependency: transitive
description:
name: collection
- url: "https://pub.dartlang.org"
+ sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0
+ url: "https://pub.dev"
source: hosted
- version: "1.16.0"
+ version: "1.17.0"
convert:
dependency: transitive
description:
name: convert
- url: "https://pub.dartlang.org"
+ sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592"
+ url: "https://pub.dev"
source: hosted
version: "3.1.1"
crypto:
dependency: transitive
description:
name: crypto
- url: "https://pub.dartlang.org"
+ sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67
+ url: "https://pub.dev"
source: hosted
version: "3.0.2"
csv:
dependency: "direct main"
description:
name: csv
- url: "https://pub.dartlang.org"
+ sha256: "18aef53ab72181a0b5384562d18c8cbd57e941e24cb8e54eb41409d3d8abdc6d"
+ url: "https://pub.dev"
source: hosted
version: "5.0.1"
cupertino_icons:
dependency: "direct main"
description:
name: cupertino_icons
- url: "https://pub.dartlang.org"
+ sha256: e35129dc44c9118cee2a5603506d823bab99c68393879edb440e0090d07586be
+ url: "https://pub.dev"
source: hosted
version: "1.0.5"
dart_style:
dependency: transitive
description:
name: dart_style
- url: "https://pub.dartlang.org"
+ sha256: "7a03456c3490394c8e7665890333e91ae8a49be43542b616e414449ac358acd4"
+ url: "https://pub.dev"
source: hosted
version: "2.2.4"
dio:
dependency: "direct main"
description:
name: dio
- url: "https://pub.dartlang.org"
+ sha256: "7d328c4d898a61efc3cd93655a0955858e29a0aa647f0f9e02d59b3bb275e2e8"
+ url: "https://pub.dev"
source: hosted
version: "4.0.6"
equatable:
dependency: transitive
description:
name: equatable
- url: "https://pub.dartlang.org"
+ sha256: c2b87cb7756efdf69892005af546c56c0b5037f54d2a88269b4f347a505e3ca2
+ url: "https://pub.dev"
source: hosted
version: "2.0.5"
fake_async:
dependency: transitive
description:
name: fake_async
- url: "https://pub.dartlang.org"
+ sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
+ url: "https://pub.dev"
source: hosted
version: "1.3.1"
ffi:
dependency: transitive
description:
name: ffi
- url: "https://pub.dartlang.org"
+ sha256: a38574032c5f1dd06c4aee541789906c12ccaab8ba01446e800d9c5b79c4a978
+ url: "https://pub.dev"
source: hosted
version: "2.0.1"
file:
dependency: transitive
description:
name: file
- url: "https://pub.dartlang.org"
+ sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d"
+ url: "https://pub.dev"
source: hosted
version: "6.1.4"
fixnum:
dependency: transitive
description:
name: fixnum
- url: "https://pub.dartlang.org"
+ sha256: "04be3e934c52e082558cc9ee21f42f5c1cd7a1262f4c63cd0357c08d5bba81ec"
+ url: "https://pub.dev"
source: hosted
version: "1.0.1"
flutter:
@@ -213,21 +242,24 @@ packages:
dependency: "direct main"
description:
name: flutter_hooks
- url: "https://pub.dartlang.org"
+ sha256: "2b202559a4ed3656bbb7aae9d8b335fb0037b23acc7ae3f377d1ba0b95c21aec"
+ url: "https://pub.dev"
source: hosted
version: "0.18.5+1"
flutter_lints:
dependency: "direct dev"
description:
name: flutter_lints
- url: "https://pub.dartlang.org"
+ sha256: aeb0b80a8b3709709c9cc496cdc027c5b3216796bc0af0ce1007eaf24464fd4c
+ url: "https://pub.dev"
source: hosted
version: "2.0.1"
flutter_riverpod:
dependency: transitive
description:
name: flutter_riverpod
- url: "https://pub.dartlang.org"
+ sha256: "0c997763ce06359ee4686553b74def84062e9d6929ac63f61fa02465c1f8e32c"
+ url: "https://pub.dev"
source: hosted
version: "2.1.3"
flutter_test:
@@ -244,315 +276,352 @@ packages:
dependency: "direct dev"
description:
name: freezed
- url: "https://pub.dartlang.org"
+ sha256: e819441678f1679b719008ff2ff0ef045d66eed9f9ec81166ca0d9b02a187454
+ url: "https://pub.dev"
source: hosted
version: "2.3.2"
freezed_annotation:
dependency: transitive
description:
name: freezed_annotation
- url: "https://pub.dartlang.org"
+ sha256: aeac15850ef1b38ee368d4c53ba9a847e900bb2c53a4db3f6881cbb3cb684338
+ url: "https://pub.dev"
source: hosted
version: "2.2.0"
frontend_server_client:
dependency: transitive
description:
name: frontend_server_client
- url: "https://pub.dartlang.org"
+ sha256: "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612"
+ url: "https://pub.dev"
source: hosted
version: "3.2.0"
glob:
dependency: transitive
description:
name: glob
- url: "https://pub.dartlang.org"
+ sha256: "4515b5b6ddb505ebdd242a5f2cc5d22d3d6a80013789debfbda7777f47ea308c"
+ url: "https://pub.dev"
source: hosted
version: "2.1.1"
go_router:
dependency: "direct main"
description:
name: go_router
- url: "https://pub.dartlang.org"
+ sha256: f611d4396469c46db1c61e934a86e2a590ce02de2a6050d01f677879ce151f4a
+ url: "https://pub.dev"
source: hosted
- version: "6.0.0"
+ version: "6.0.1"
graphs:
dependency: transitive
description:
name: graphs
- url: "https://pub.dartlang.org"
+ sha256: f9e130f3259f52d26f0cfc0e964513796dafed572fa52e45d2f8d6ca14db39b2
+ url: "https://pub.dev"
source: hosted
version: "2.2.0"
grouped_list:
dependency: "direct main"
description:
name: grouped_list
- url: "https://pub.dartlang.org"
+ sha256: fef106470186081c32636aa055492eee7fc7fe8bf0921a48d31ded24821af19f
+ url: "https://pub.dev"
source: hosted
version: "5.1.2"
hooks_riverpod:
dependency: "direct main"
description:
name: hooks_riverpod
- url: "https://pub.dartlang.org"
+ sha256: "71695b2e1dfc22a39f1f9c67b798f8f8f1521f2d0349817d13ccdd5c4cd7acba"
+ url: "https://pub.dev"
source: hosted
version: "2.1.3"
http_multi_server:
dependency: transitive
description:
name: http_multi_server
- url: "https://pub.dartlang.org"
+ sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b"
+ url: "https://pub.dev"
source: hosted
version: "3.2.1"
http_parser:
dependency: transitive
description:
name: http_parser
- url: "https://pub.dartlang.org"
+ sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b"
+ url: "https://pub.dev"
source: hosted
version: "4.0.2"
intl:
dependency: "direct main"
description:
name: intl
- url: "https://pub.dartlang.org"
+ sha256: a3715e3bc90294e971cb7dc063fbf3cd9ee0ebf8604ffeafabd9e6f16abbdbe6
+ url: "https://pub.dev"
source: hosted
version: "0.18.0"
io:
dependency: transitive
description:
name: io
- url: "https://pub.dartlang.org"
+ sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e"
+ url: "https://pub.dev"
source: hosted
- version: "1.0.3"
+ version: "1.0.4"
js:
dependency: transitive
description:
name: js
- url: "https://pub.dartlang.org"
+ sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7"
+ url: "https://pub.dev"
source: hosted
- version: "0.6.4"
+ version: "0.6.5"
json_annotation:
dependency: "direct main"
description:
name: json_annotation
- url: "https://pub.dartlang.org"
+ sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317
+ url: "https://pub.dev"
source: hosted
- version: "4.7.0"
+ version: "4.8.0"
json_serializable:
dependency: "direct dev"
description:
name: json_serializable
- url: "https://pub.dartlang.org"
+ sha256: "040088d9eb2337f3a51ddabe35261e2fea1c351e3dd29d755ed1290b6b700a75"
+ url: "https://pub.dev"
source: hosted
- version: "6.5.4"
+ version: "6.6.0"
lints:
dependency: transitive
description:
name: lints
- url: "https://pub.dartlang.org"
+ sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593"
+ url: "https://pub.dev"
source: hosted
version: "2.0.1"
logging:
dependency: transitive
description:
name: logging
- url: "https://pub.dartlang.org"
+ sha256: c0bbfe94d46aedf9b8b3e695cf3bd48c8e14b35e3b2c639e0aa7755d589ba946
+ url: "https://pub.dev"
source: hosted
version: "1.1.0"
matcher:
dependency: transitive
description:
name: matcher
- url: "https://pub.dartlang.org"
+ sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72"
+ url: "https://pub.dev"
source: hosted
- version: "0.12.12"
+ version: "0.12.13"
material_color_utilities:
dependency: transitive
description:
name: material_color_utilities
- url: "https://pub.dartlang.org"
+ sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724
+ url: "https://pub.dev"
source: hosted
- version: "0.1.5"
+ version: "0.2.0"
meta:
dependency: transitive
description:
name: meta
- url: "https://pub.dartlang.org"
+ sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42"
+ url: "https://pub.dev"
source: hosted
version: "1.8.0"
mime:
dependency: transitive
description:
name: mime
- url: "https://pub.dartlang.org"
+ sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e
+ url: "https://pub.dev"
source: hosted
- version: "1.0.3"
+ version: "1.0.4"
package_config:
dependency: transitive
description:
name: package_config
- url: "https://pub.dartlang.org"
+ sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd"
+ url: "https://pub.dev"
source: hosted
version: "2.1.0"
path:
dependency: transitive
description:
name: path
- url: "https://pub.dartlang.org"
+ sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b
+ url: "https://pub.dev"
source: hosted
version: "1.8.2"
path_provider_linux:
dependency: transitive
description:
name: path_provider_linux
- url: "https://pub.dartlang.org"
+ sha256: ab0987bf95bc591da42dffb38c77398fc43309f0b9b894dcc5d6f40c4b26c379
+ url: "https://pub.dev"
source: hosted
version: "2.1.7"
path_provider_platform_interface:
dependency: transitive
description:
name: path_provider_platform_interface
- url: "https://pub.dartlang.org"
+ sha256: f0abc8ebd7253741f05488b4813d936b4d07c6bae3e86148a09e342ee4b08e76
+ url: "https://pub.dev"
source: hosted
version: "2.0.5"
path_provider_windows:
dependency: transitive
description:
name: path_provider_windows
- url: "https://pub.dartlang.org"
+ sha256: bcabbe399d4042b8ee687e17548d5d3f527255253b4a639f5f8d2094a9c2b45c
+ url: "https://pub.dev"
source: hosted
version: "2.1.3"
platform:
dependency: transitive
description:
name: platform
- url: "https://pub.dartlang.org"
+ sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76"
+ url: "https://pub.dev"
source: hosted
version: "3.1.0"
platform_info:
dependency: transitive
description:
name: platform_info
- url: "https://pub.dartlang.org"
+ sha256: "012e73712166cf0b56d3eb95c0d33491f56b428c169eca385f036448474147e4"
+ url: "https://pub.dev"
source: hosted
version: "3.2.0"
plugin_platform_interface:
dependency: transitive
description:
name: plugin_platform_interface
- url: "https://pub.dartlang.org"
+ sha256: dbf0f707c78beedc9200146ad3cb0ab4d5da13c246336987be6940f026500d3a
+ url: "https://pub.dev"
source: hosted
version: "2.1.3"
pool:
dependency: transitive
description:
name: pool
- url: "https://pub.dartlang.org"
+ sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a"
+ url: "https://pub.dev"
source: hosted
version: "1.5.1"
process:
dependency: transitive
description:
name: process
- url: "https://pub.dartlang.org"
+ sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09"
+ url: "https://pub.dev"
source: hosted
version: "4.2.4"
pub_semver:
dependency: transitive
description:
name: pub_semver
- url: "https://pub.dartlang.org"
+ sha256: "307de764d305289ff24ad257ad5c5793ce56d04947599ad68b3baa124105fc17"
+ url: "https://pub.dev"
source: hosted
version: "2.1.3"
pubspec_parse:
dependency: transitive
description:
name: pubspec_parse
- url: "https://pub.dartlang.org"
+ sha256: "75f6614d6dde2dc68948dffbaa4fe5dae32cd700eb9fb763fe11dfb45a3c4d0a"
+ url: "https://pub.dev"
source: hosted
version: "1.2.1"
quiver:
dependency: transitive
description:
name: quiver
- url: "https://pub.dartlang.org"
+ sha256: b1c1ac5ce6688d77f65f3375a9abb9319b3cb32486bdc7a1e0fdf004d7ba4e47
+ url: "https://pub.dev"
source: hosted
version: "3.2.1"
riverpod:
dependency: transitive
description:
name: riverpod
- url: "https://pub.dartlang.org"
+ sha256: "0f43c64f1f79c2112c843305a879a746587fb7c1e388f1d4717737796756e2c4"
+ url: "https://pub.dev"
source: hosted
version: "2.1.3"
shared_preferences:
dependency: "direct main"
description:
name: shared_preferences
- url: "https://pub.dartlang.org"
+ sha256: "5949029e70abe87f75cfe59d17bf5c397619c4b74a099b10116baeb34786fad9"
+ url: "https://pub.dev"
source: hosted
- version: "2.0.15"
+ version: "2.0.17"
shared_preferences_android:
dependency: transitive
description:
name: shared_preferences_android
- url: "https://pub.dartlang.org"
+ sha256: "955e9736a12ba776bdd261cf030232b30eadfcd9c79b32a3250dd4a494e8c8f7"
+ url: "https://pub.dev"
source: hosted
- version: "2.0.14"
- shared_preferences_ios:
+ version: "2.0.15"
+ shared_preferences_foundation:
dependency: transitive
description:
- name: shared_preferences_ios
- url: "https://pub.dartlang.org"
+ name: shared_preferences_foundation
+ sha256: "1ffa239043ab8baf881ec3094a3c767af9d10399b2839020b9e4d44c0bb23951"
+ url: "https://pub.dev"
source: hosted
- version: "2.1.1"
+ version: "2.1.2"
shared_preferences_linux:
dependency: transitive
description:
name: shared_preferences_linux
- url: "https://pub.dartlang.org"
+ sha256: f8ea038aa6da37090093974ebdcf4397010605fd2ff65c37a66f9d28394cb874
+ url: "https://pub.dev"
source: hosted
- version: "2.1.2"
- shared_preferences_macos:
- dependency: transitive
- description:
- name: shared_preferences_macos
- url: "https://pub.dartlang.org"
- source: hosted
- version: "2.0.4"
+ version: "2.1.3"
shared_preferences_platform_interface:
dependency: transitive
description:
name: shared_preferences_platform_interface
- url: "https://pub.dartlang.org"
+ sha256: da9431745ede5ece47bc26d5d73a9d3c6936ef6945c101a5aca46f62e52c1cf3
+ url: "https://pub.dev"
source: hosted
version: "2.1.0"
shared_preferences_web:
dependency: transitive
description:
name: shared_preferences_web
- url: "https://pub.dartlang.org"
+ sha256: a4b5bc37fe1b368bbc81f953197d55e12f49d0296e7e412dfe2d2d77d6929958
+ url: "https://pub.dev"
source: hosted
version: "2.0.4"
shared_preferences_windows:
dependency: transitive
description:
name: shared_preferences_windows
- url: "https://pub.dartlang.org"
+ sha256: "5eaf05ae77658d3521d0e993ede1af962d4b326cd2153d312df716dc250f00c9"
+ url: "https://pub.dev"
source: hosted
- version: "2.1.2"
+ version: "2.1.3"
shelf:
dependency: transitive
description:
name: shelf
- url: "https://pub.dartlang.org"
+ sha256: c24a96135a2ccd62c64b69315a14adc5c3419df63b4d7c05832a346fdb73682c
+ url: "https://pub.dev"
source: hosted
version: "1.4.0"
shelf_web_socket:
dependency: transitive
description:
name: shelf_web_socket
- url: "https://pub.dartlang.org"
+ sha256: a988c0e8d8ffbdb8a28aa7ec8e449c260f3deb808781fe1284d22c5bba7156e8
+ url: "https://pub.dev"
source: hosted
version: "1.0.3"
sky_engine:
@@ -564,135 +633,154 @@ packages:
dependency: transitive
description:
name: source_gen
- url: "https://pub.dartlang.org"
+ sha256: "2d79738b6bbf38a43920e2b8d189e9a3ce6cc201f4b8fc76be5e4fe377b1c38d"
+ url: "https://pub.dev"
source: hosted
version: "1.2.6"
source_helper:
dependency: transitive
description:
name: source_helper
- url: "https://pub.dartlang.org"
+ sha256: "3b67aade1d52416149c633ba1bb36df44d97c6b51830c2198e934e3fca87ca1f"
+ url: "https://pub.dev"
source: hosted
version: "1.3.3"
source_span:
dependency: transitive
description:
name: source_span
- url: "https://pub.dartlang.org"
+ sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
+ url: "https://pub.dev"
source: hosted
- version: "1.9.0"
+ version: "1.9.1"
stack_trace:
dependency: transitive
description:
name: stack_trace
- url: "https://pub.dartlang.org"
+ sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
+ url: "https://pub.dev"
source: hosted
- version: "1.10.0"
+ version: "1.11.0"
state_notifier:
dependency: transitive
description:
name: state_notifier
- url: "https://pub.dartlang.org"
+ sha256: "8fe42610f179b843b12371e40db58c9444f8757f8b69d181c97e50787caed289"
+ url: "https://pub.dev"
source: hosted
version: "0.7.2+1"
stream_channel:
dependency: transitive
description:
name: stream_channel
- url: "https://pub.dartlang.org"
+ sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
+ url: "https://pub.dev"
source: hosted
- version: "2.1.0"
+ version: "2.1.1"
stream_transform:
dependency: transitive
description:
name: stream_transform
- url: "https://pub.dartlang.org"
+ sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f"
+ url: "https://pub.dev"
source: hosted
version: "2.1.0"
string_scanner:
dependency: transitive
description:
name: string_scanner
- url: "https://pub.dartlang.org"
+ sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
+ url: "https://pub.dev"
source: hosted
- version: "1.1.1"
+ version: "1.2.0"
term_glyph:
dependency: transitive
description:
name: term_glyph
- url: "https://pub.dartlang.org"
+ sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
+ url: "https://pub.dev"
source: hosted
version: "1.2.1"
test_api:
dependency: transitive
description:
name: test_api
- url: "https://pub.dartlang.org"
+ sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206
+ url: "https://pub.dev"
source: hosted
- version: "0.4.12"
+ version: "0.4.16"
timing:
dependency: transitive
description:
name: timing
- url: "https://pub.dartlang.org"
+ sha256: "70a3b636575d4163c477e6de42f247a23b315ae20e86442bebe32d3cabf61c32"
+ url: "https://pub.dev"
source: hosted
- version: "1.0.0"
+ version: "1.0.1"
typed_data:
dependency: transitive
description:
name: typed_data
- url: "https://pub.dartlang.org"
+ sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5"
+ url: "https://pub.dev"
source: hosted
version: "1.3.1"
vector_math:
dependency: transitive
description:
name: vector_math
- url: "https://pub.dartlang.org"
+ sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
+ url: "https://pub.dev"
source: hosted
- version: "2.1.2"
+ version: "2.1.4"
watcher:
dependency: transitive
description:
name: watcher
- url: "https://pub.dartlang.org"
+ sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0"
+ url: "https://pub.dev"
source: hosted
version: "1.0.2"
web_socket_channel:
dependency: transitive
description:
name: web_socket_channel
- url: "https://pub.dartlang.org"
+ sha256: ca49c0bc209c687b887f30527fb6a9d80040b072cc2990f34b9bec3e7663101b
+ url: "https://pub.dev"
source: hosted
- version: "2.2.0"
+ version: "2.3.0"
win32:
dependency: transitive
description:
name: win32
- url: "https://pub.dartlang.org"
+ sha256: c9ebe7ee4ab0c2194e65d3a07d8c54c5d00bb001b76081c4a04cdb8448b59e46
+ url: "https://pub.dev"
source: hosted
version: "3.1.3"
xdg_directories:
dependency: transitive
description:
name: xdg_directories
- url: "https://pub.dartlang.org"
+ sha256: bd512f03919aac5f1313eb8249f223bacf4927031bf60b02601f81f687689e86
+ url: "https://pub.dev"
source: hosted
- version: "0.2.0+2"
+ version: "0.2.0+3"
xterm:
dependency: "direct main"
description:
name: xterm
- url: "https://pub.dartlang.org"
+ sha256: "990286eead883ff5ad9b8ea7674183dced2fe5421771e95ce32cbaa9117d24d8"
+ url: "https://pub.dev"
source: hosted
version: "3.4.0"
yaml:
dependency: transitive
description:
name: yaml
- url: "https://pub.dartlang.org"
+ sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370"
+ url: "https://pub.dev"
source: hosted
version: "3.1.1"
sdks:
- dart: ">=2.18.1 <3.0.0"
+ dart: ">=2.18.1 <4.0.0"
flutter: ">=3.3.0"
diff --git a/pubspec.yaml b/pubspec.yaml
index 3bede96..5a3a8ca 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -16,7 +16,7 @@ dependencies:
cupertino_icons: ^1.0.2
flutter_hooks: ^0.18.5+1
hooks_riverpod: ^2.0.2
- json_annotation: '>=4.7.0 <4.8.0'
+ json_annotation: ^4.8.0
shared_preferences: ^2.0.15
xterm: ^3.4.0
dio: ^4.0.6
@@ -37,3 +37,5 @@ dev_dependencies:
flutter:
uses-material-design: true
+ assets:
+ - assets/