diff --git a/lib/globals.dart b/lib/globals.dart index cceb71f..03050e3 100644 --- a/lib/globals.dart +++ b/lib/globals.dart @@ -11,9 +11,13 @@ final getIt = GetIt.instance; String randomId() => const Uuid().v4().toString(); -final platformHasCamera = Platform.isIOS || Platform.isAndroid; +final platformIsMobile = Platform.isIOS || Platform.isAndroid; -final useImagePicker = kIsWeb || Platform.isAndroid || Platform.isIOS; +final platformHasCamera = platformIsMobile; + +final platformIsDesktop = !platformIsMobile; + +final useImagePicker = kIsWeb || platformIsMobile; const usePhpDebugging = false; diff --git a/lib/screens/notifications_screen.dart b/lib/screens/notifications_screen.dart index 9bb5b05..712af08 100644 --- a/lib/screens/notifications_screen.dart +++ b/lib/screens/notifications_screen.dart @@ -3,7 +3,9 @@ import 'package:logging/logging.dart'; import 'package:provider/provider.dart'; import '../controls/app_bottom_nav_bar.dart'; +import '../controls/linear_status_indicator.dart'; import '../controls/notifications_control.dart'; +import '../controls/padding.dart'; import '../controls/responsive_max_width.dart'; import '../controls/standard_app_drawer.dart'; import '../controls/standard_appbar.dart'; @@ -36,10 +38,11 @@ class NotificationsScreen extends StatelessWidget { managerResult.match(onSuccess: (manager) { final notifications = manager.notifications; actions = [ - StatusAndRefreshButton( - valueListenable: nss.notificationsUpdateStatus, - refreshFunction: () async => update(manager), - ), + if (platformIsDesktop) + StatusAndRefreshButton( + valueListenable: nss.notificationsUpdateStatus, + refreshFunction: () async => update(manager), + ), IconButton( onPressed: () async => _clearAllNotifications(context, manager), icon: const Icon(Icons.cleaning_services), @@ -52,11 +55,21 @@ class NotificationsScreen extends StatelessWidget { update(manager); return; }, - child: const Center( + child: Center( child: Column( - children: [ - Center(child: Text('No notifications')), - ], + mainAxisAlignment: MainAxisAlignment.center, + children: nss.notificationsUpdateStatus.value + ? [ + const Center(child: Text('Loading Notifications')), + ] + : [ + const Center(child: Text('No notifications')), + const VerticalPadding(), + ElevatedButton( + onPressed: () => update(manager), + child: const Text('Load Notifications'), + ) + ], )), ); } else { @@ -131,7 +144,16 @@ class NotificationsScreen extends StatelessWidget { actions: actions, ), drawer: const StandardAppDrawer(), - body: body, + body: Center( + child: Column( + children: [ + StandardLinearProgressIndicator(nss.notificationsUpdateStatus), + Expanded( + child: ResponsiveMaxWidth(child: body), + ), + ], + ), + ), bottomNavigationBar: const AppBottomNavBar( currentButton: NavBarButtons.notifications, ),