- Login reworked to the Brand panel layout with a dark-theme switch; 'Scalar Presence' two-line wordmark - Android project now tracked (was gitignored); pins shared_preferences_android 2.4.27 (2.5.0 crashed with a black screen) - API base URL fixed per build (--dart-define=API_BASE_URL), no in-app server setting Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
34 lines
982 B
Dart
34 lines
982 B
Dart
import 'package:flutter/material.dart';
|
|
import 'api_service.dart';
|
|
import 'settings.dart';
|
|
import 'theme.dart';
|
|
import 'screens/auth_shell.dart';
|
|
import 'screens/login_screen.dart';
|
|
import 'screens/home_screen.dart';
|
|
|
|
Future<void> main() async {
|
|
WidgetsFlutterBinding.ensureInitialized();
|
|
final settings = Settings();
|
|
await settings.load();
|
|
if (settings.isLoggedIn && !await KeepSignedIn.wanted()) await settings.clearSession();
|
|
runApp(ScalarEssApp(settings: settings));
|
|
}
|
|
|
|
class ScalarEssApp extends StatelessWidget {
|
|
final Settings settings;
|
|
const ScalarEssApp({super.key, required this.settings});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
final api = ApiService(settings);
|
|
return MaterialApp(
|
|
title: 'Scalar Presence',
|
|
debugShowCheckedModeBanner: false,
|
|
theme: buildTheme(),
|
|
home: settings.isLoggedIn
|
|
? HomeScreen(api: api, settings: settings)
|
|
: LoginScreen(api: api, settings: settings),
|
|
);
|
|
}
|
|
}
|