50 lines
1.3 KiB
Dart
50 lines
1.3 KiB
Dart
import 'package:flutter/material.dart';
|
|
|
|
import 'config/settings.dart';
|
|
import 'export/csv_exporter.dart';
|
|
import 'layout/layout_controller.dart';
|
|
import 'session/session_controller.dart';
|
|
import 'ui/app_scope.dart';
|
|
import 'ui/tab_scaffold.dart';
|
|
|
|
class TelemetryApp extends StatelessWidget {
|
|
const TelemetryApp({
|
|
super.key,
|
|
required this.session,
|
|
required this.layout,
|
|
required this.settings,
|
|
required this.exporter,
|
|
});
|
|
|
|
final SessionController session;
|
|
final LayoutController layout;
|
|
final Settings settings;
|
|
final CsvExporter exporter;
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return ListenableBuilder(
|
|
listenable: settings,
|
|
builder: (_, __) => MaterialApp(
|
|
title: 'Telemetry Monitor',
|
|
theme: ThemeData(
|
|
useMaterial3: true,
|
|
colorSchemeSeed: Colors.blueGrey,
|
|
),
|
|
darkTheme: ThemeData(
|
|
useMaterial3: true,
|
|
colorSchemeSeed: Colors.blueGrey,
|
|
brightness: Brightness.dark,
|
|
),
|
|
themeMode: settings.darkMode ? ThemeMode.dark : ThemeMode.light,
|
|
home: AppScope(
|
|
session: session,
|
|
layout: layout,
|
|
settings: settings,
|
|
exporter: exporter,
|
|
child: const TabScaffold(),
|
|
),
|
|
),
|
|
);
|
|
}
|
|
} |