diff --git a/lib/bootstrap.dart b/lib/bootstrap.dart index a02ea5e0..23dc04e2 100644 --- a/lib/bootstrap.dart +++ b/lib/bootstrap.dart @@ -178,7 +178,6 @@ Future _init( Future Function() initializer, { int? timeout, }) async { - Logger.bootstrap.warning("$name starting seconds"); final stopWatch = Stopwatch()..start(); Logger.bootstrap.info("initializing [$name]"); Future func() => timeout != null @@ -188,20 +187,13 @@ Future _init( final result = await func(); Logger.bootstrap .debug("[$name] initialized in ${stopWatch.elapsedMilliseconds}ms"); - - Logger.bootstrap.warning("$name done successfully waiting 2 seconds"); - await Future.delayed(Duration(seconds: 2)); return result; } catch (e, stackTrace) { Logger.bootstrap.error("[$name] error initializing", e, stackTrace); - Logger.bootstrap.warning("$name done with error waiting 2 seconds"); - await Future.delayed(Duration(seconds: 2)); rethrow; } finally { stopWatch.stop(); } - Logger.bootstrap.warning("$name done with unknown state waiting 2 seconds"); - await Future.delayed(Duration(seconds: 2)); } Future _safeInit( diff --git a/lib/features/deep_link/notifier/deep_link_notifier.dart b/lib/features/deep_link/notifier/deep_link_notifier.dart index f90f53e8..78392216 100644 --- a/lib/features/deep_link/notifier/deep_link_notifier.dart +++ b/lib/features/deep_link/notifier/deep_link_notifier.dart @@ -13,24 +13,21 @@ class DeepLinkNotifier extends _$DeepLinkNotifier with ProtocolListener, InfraLogger { @override Future build() async { - // if (Platform.isLinux) return null; - try { - for (final protocol in LinkParser.protocols) { - await protocolHandler.register(protocol); - } - protocolHandler.addListener(this); - ref.onDispose(() { - protocolHandler.removeListener(this); - }); + if (Platform.isLinux) return null; - final initialPayload = await protocolHandler.getInitialUrl(); - if (initialPayload != null) { - loggy.debug('initial payload: [$initialPayload]'); - final link = LinkParser.deep(initialPayload); - return link; - } - } catch (e) { - loggy.error("failed to init deeplink", e); + for (final protocol in LinkParser.protocols) { + await protocolHandler.register(protocol); + } + protocolHandler.addListener(this); + ref.onDispose(() { + protocolHandler.removeListener(this); + }); + + final initialPayload = await protocolHandler.getInitialUrl(); + if (initialPayload != null) { + loggy.debug('initial payload: [$initialPayload]'); + final link = LinkParser.deep(initialPayload); + return link; } return null; } diff --git a/lib/features/system_tray/notifier/system_tray_notifier.dart b/lib/features/system_tray/notifier/system_tray_notifier.dart index fa6915d1..f49e3e42 100644 --- a/lib/features/system_tray/notifier/system_tray_notifier.dart +++ b/lib/features/system_tray/notifier/system_tray_notifier.dart @@ -19,111 +19,107 @@ part 'system_tray_notifier.g.dart'; class SystemTrayNotifier extends _$SystemTrayNotifier with AppLogger { @override Future build() async { - if (true) return; if (!PlatformUtils.isDesktop) return; + + await trayManager.setIcon( + _trayIconPath, + isTemplate: Platform.isMacOS, + ); + if (!Platform.isLinux) await trayManager.setToolTip(Constants.appName); + + ConnectionStatus connection; try { - await trayManager.setIcon( - _trayIconPath, - isTemplate: Platform.isMacOS, - ); - if (!Platform.isLinux) await trayManager.setToolTip(Constants.appName); - - ConnectionStatus connection; - try { - connection = await ref.watch(connectionNotifierProvider.future); - } catch (e) { - loggy.warning("error getting connection status", e); - connection = const ConnectionStatus.disconnected(); - } - - final serviceMode = ref.watch(ConfigOptions.serviceMode); - - final t = ref.watch(translationsProvider); - final destinations = <(String label, String location)>[ - (t.home.pageTitle, const HomeRoute().location), - (t.proxies.pageTitle, const ProxiesRoute().location), - (t.logs.pageTitle, const LogsOverviewRoute().location), - (t.settings.pageTitle, const SettingsRoute().location), - (t.about.pageTitle, const AboutRoute().location), - ]; - - loggy.debug('updating system tray'); - - final menu = Menu( - items: [ - MenuItem( - label: t.tray.dashboard, - onClick: (_) async { - await ref.read(windowNotifierProvider.notifier).open(); - }, - ), - MenuItem.separator(), - MenuItem.checkbox( - label: switch (connection) { - Disconnected() => t.tray.status.connect, - Connecting() => t.tray.status.connecting, - Connected() => t.tray.status.disconnect, - Disconnecting() => t.tray.status.disconnecting, - }, - checked: connection.isConnected, - disabled: connection.isSwitching, - onClick: (_) async { - await ref - .read(connectionNotifierProvider.notifier) - .toggleConnection(); - }, - ), - MenuItem.submenu( - label: t.config.serviceMode, - submenu: Menu( - items: [ - ...ServiceMode.values.map( - (e) => MenuItem.checkbox( - checked: e == serviceMode, - key: e.name, - label: e.present(t), - onClick: (menuItem) async { - final newMode = ServiceMode.values.byName(menuItem.key!); - loggy.debug("switching service mode: [$newMode]"); - await ref - .read(ConfigOptions.serviceMode.notifier) - .update(newMode); - }, - ), - ), - ], - ), - ), - MenuItem.submenu( - label: t.tray.open, - submenu: Menu( - items: [ - ...destinations.map( - (e) => MenuItem( - label: e.$1, - onClick: (_) async { - await ref.read(windowNotifierProvider.notifier).open(); - ref.read(routerProvider).go(e.$2); - }, - ), - ), - ], - ), - ), - MenuItem.separator(), - MenuItem( - label: t.tray.quit, - onClick: (_) async { - return ref.read(windowNotifierProvider.notifier).quit(); - }, - ), - ], - ); - - await trayManager.setContextMenu(menu); + connection = await ref.watch(connectionNotifierProvider.future); } catch (e) { - loggy.error("error updating system tray", e); + loggy.warning("error getting connection status", e); + connection = const ConnectionStatus.disconnected(); } + + final serviceMode = ref.watch(ConfigOptions.serviceMode); + + final t = ref.watch(translationsProvider); + final destinations = <(String label, String location)>[ + (t.home.pageTitle, const HomeRoute().location), + (t.proxies.pageTitle, const ProxiesRoute().location), + (t.logs.pageTitle, const LogsOverviewRoute().location), + (t.settings.pageTitle, const SettingsRoute().location), + (t.about.pageTitle, const AboutRoute().location), + ]; + + loggy.debug('updating system tray'); + + final menu = Menu( + items: [ + MenuItem( + label: t.tray.dashboard, + onClick: (_) async { + await ref.read(windowNotifierProvider.notifier).open(); + }, + ), + MenuItem.separator(), + MenuItem.checkbox( + label: switch (connection) { + Disconnected() => t.tray.status.connect, + Connecting() => t.tray.status.connecting, + Connected() => t.tray.status.disconnect, + Disconnecting() => t.tray.status.disconnecting, + }, + checked: connection.isConnected, + disabled: connection.isSwitching, + onClick: (_) async { + await ref + .read(connectionNotifierProvider.notifier) + .toggleConnection(); + }, + ), + MenuItem.submenu( + label: t.config.serviceMode, + submenu: Menu( + items: [ + ...ServiceMode.values.map( + (e) => MenuItem.checkbox( + checked: e == serviceMode, + key: e.name, + label: e.present(t), + onClick: (menuItem) async { + final newMode = ServiceMode.values.byName(menuItem.key!); + loggy.debug("switching service mode: [$newMode]"); + await ref + .read(ConfigOptions.serviceMode.notifier) + .update(newMode); + }, + ), + ), + ], + ), + ), + MenuItem.submenu( + label: t.tray.open, + submenu: Menu( + items: [ + ...destinations.map( + (e) => MenuItem( + label: e.$1, + onClick: (_) async { + await ref.read(windowNotifierProvider.notifier).open(); + ref.read(routerProvider).go(e.$2); + }, + ), + ), + ], + ), + ), + MenuItem.separator(), + MenuItem( + label: t.tray.quit, + onClick: (_) async { + return ref.read(windowNotifierProvider.notifier).quit(); + }, + ), + ], + ); + + await trayManager.setContextMenu(menu); } static String get _trayIconPath {