This commit is contained in:
2026-07-27 21:32:03 +02:00
parent 160b4e4cda
commit 77c1747b40
23 changed files with 1392 additions and 87 deletions
+36 -8
View File
@@ -1,23 +1,51 @@
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:kooltab2/theme.dart';
import 'package:kooltab2/utils/app_update_util.dart';
class KoolTabApp extends StatelessWidget {
const KoolTabApp({
super.key,
required this.router,
});
class KoolTabApp extends StatefulWidget {
const KoolTabApp({super.key, required this.router});
final GoRouter router;
@override
State<KoolTabApp> createState() => _KoolTabAppState();
}
class _KoolTabAppState extends State<KoolTabApp> {
@override
void initState() {
super.initState();
_checkForUpdates();
}
Future<void> _checkForUpdates() async {
final updater = AppUpdateUtil(serverUrl: "http://localhost:3000/");
try {
final update = await updater.checkForUpdate();
if (update == null) {
return;
}
debugPrint("Update available: ${update.version}");
// TODO:
// Show update dialog here
} catch (e) {
debugPrint("Update check failed: $e");
}
}
@override
Widget build(BuildContext context) {
return MaterialApp.router(
title: 'KoolTab',
debugShowCheckedModeBanner: false,
routerConfig: router,
// theme: lightTheme,
routerConfig: widget.router,
theme: darkTheme,
);
}
}
}
+10
View File
@@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:kooltab2/views/settings_view.dart';
import '../viewmodels/pin_lock_view_model.dart';
import '../views/bar_screen_view.dart';
@@ -31,6 +32,10 @@ GoRouter createAppRouter(PinLockViewModel pinLockViewModel) {
return null;
},
routes: [
GoRoute(
path: '/',
redirect: (context, state) => '/bar'
),
GoRoute(
path: '/lock',
builder: (context, state) => PinEntryView(
@@ -67,6 +72,11 @@ GoRouter createAppRouter(PinLockViewModel pinLockViewModel) {
path: '/history',
builder: (context, state) => const HistoryScreenView(),
),
GoRoute(
path: '/settings',
builder: (context, state) => const SettingsScreenView(),
),
],
);
}