From 59c93e1b23e7303567cbaa5069168331e53c9359 Mon Sep 17 00:00:00 2001 From: ashilkn Date: Wed, 24 Aug 2022 15:54:12 +0530 Subject: [PATCH] display error banners below ente logo and search icon --- lib/ui/header_error_widget.dart | 16 +--------------- lib/ui/status_bar_widget.dart | 24 ++++++++++++++++++++---- 2 files changed, 21 insertions(+), 19 deletions(-) diff --git a/lib/ui/header_error_widget.dart b/lib/ui/header_error_widget.dart index affebec2c..577d31b45 100644 --- a/lib/ui/header_error_widget.dart +++ b/lib/ui/header_error_widget.dart @@ -49,11 +49,6 @@ class HeaderErrorWidget extends StatelessWidget { ), ), const Padding(padding: EdgeInsets.all(12)), - const Divider( - thickness: 2, - height: 0, - ), - const Padding(padding: EdgeInsets.all(12)), ], ), ); @@ -93,11 +88,6 @@ class HeaderErrorWidget extends StatelessWidget { ), ), const Padding(padding: EdgeInsets.all(12)), - const Divider( - thickness: 2, - height: 0, - ), - const Padding(padding: EdgeInsets.all(12)), ], ), ); @@ -105,6 +95,7 @@ class HeaderErrorWidget extends StatelessWidget { return Center( child: Column( children: [ + const SizedBox(height: 8), Icon( Icons.error_outline, color: Colors.red[400], @@ -150,11 +141,6 @@ class HeaderErrorWidget extends StatelessWidget { ), ), const Padding(padding: EdgeInsets.all(16)), - const Divider( - thickness: 2, - height: 0, - ), - const Padding(padding: EdgeInsets.all(12)), ], ), ); diff --git a/lib/ui/status_bar_widget.dart b/lib/ui/status_bar_widget.dart index ec8926fc0..dc625338c 100644 --- a/lib/ui/status_bar_widget.dart +++ b/lib/ui/status_bar_widget.dart @@ -21,10 +21,20 @@ class StatusBarWidget extends StatefulWidget { class _StatusBarWidgetState extends State { StreamSubscription _subscription; bool _showStatus = false; + bool _showErrorBanner = false; @override void initState() { _subscription = Bus.instance.on().listen((event) { + if (event.status == SyncStatus.error) { + setState(() { + _showErrorBanner = true; + }); + } else { + setState(() { + _showErrorBanner = false; + }); + } if (event.status == SyncStatus.completedFirstGalleryImport || event.status == SyncStatus.completedBackup) { Future.delayed(const Duration(milliseconds: 2000), () { @@ -58,7 +68,11 @@ class _StatusBarWidgetState extends State { Stack( children: [ AnimatedOpacity( - opacity: _showStatus ? 0 : 1, + opacity: _showStatus + ? _showErrorBanner + ? 1 + : 0 + : 1, duration: const Duration(milliseconds: 1000), child: const BrandingWidget(), ), @@ -70,7 +84,6 @@ class _StatusBarWidgetState extends State { Positioned( right: 0, top: 0, - bottom: 0, child: FeatureFlagService.instance.enableSearchFeature() ? Container( color: Theme.of(context) @@ -79,7 +92,7 @@ class _StatusBarWidgetState extends State { height: kContainerHeight, child: const SearchIconWidget(), ) - : const SizedBox.shrink(), + : const SizedBox(height: 36, width: 48), ), ], ), @@ -135,7 +148,10 @@ class _SyncStatusWidgetState extends State { return const SizedBox.shrink(); } if (_event.status == SyncStatus.error) { - return HeaderErrorWidget(error: _event.error); + return Padding( + padding: const EdgeInsets.only(top: kContainerHeight + 8), + child: HeaderErrorWidget(error: _event.error), + ); } if (_event.status == SyncStatus.completedBackup) { return const SyncStatusCompletedWidget();