diff --git a/app/lib/main.dart b/app/lib/main.dart index 83e9b52..038c14c 100644 --- a/app/lib/main.dart +++ b/app/lib/main.dart @@ -9,8 +9,22 @@ import 'theme/reclaim_theme.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); - final settings = await HubSettings.load(); - final repository = await _pickRepository(settings); + // Acquiring settings + probing the hub must never prevent the + // first frame. Any failure here falls back to demo data so the + // app always paints instead of hanging on a blank page. + HubSettings settings; + EvaluationRepository repository; + try { + settings = await HubSettings.load(); + repository = await _pickRepository(settings); + } catch (_) { + settings = const HubSettings( + host: HubSettings.defaultHost, + port: HubSettings.defaultPort, + secure: false, + ); + repository = const MockRepository(); + } runApp(ReclaimApp(repository: repository, settings: settings)); }