From 0513fe1bc01ab12c8bafd4c97bb8645484cd5fbd Mon Sep 17 00:00:00 2001 From: zaid_daoud Date: Tue, 10 Oct 2023 14:33:25 +0300 Subject: [PATCH] Fix Home App Bar --- lib/main.dart | 8 ++ .../common_widgets/app_bar/home_app_bar.dart | 76 +++++++++++-------- .../app_bar/notification_icon.dart | 36 --------- .../common_widgets/app_bar/user_image.dart | 18 ----- 4 files changed, 53 insertions(+), 85 deletions(-) delete mode 100644 lib/new_views/common_widgets/app_bar/notification_icon.dart delete mode 100644 lib/new_views/common_widgets/app_bar/user_image.dart diff --git a/lib/main.dart b/lib/main.dart index c5286619..d1ed1654 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -2,6 +2,7 @@ import 'dart:io'; import 'package:firebase_core/firebase_core.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:localization/localization.dart'; import 'package:provider/provider.dart'; @@ -27,6 +28,13 @@ void main() async { } else { await Firebase.initializeApp(); } + SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle(statusBarColor: Colors.transparent)); + + /// only portrait mode + SystemChrome.setPreferredOrientations([ + DeviceOrientation.portraitUp, + DeviceOrientation.portraitDown, + ]); runApp(ChangeNotifierProvider(create: (_) => SettingProvider(), child: const MyApp())); } diff --git a/lib/new_views/common_widgets/app_bar/home_app_bar.dart b/lib/new_views/common_widgets/app_bar/home_app_bar.dart index 36ebc3d7..212bcf5c 100644 --- a/lib/new_views/common_widgets/app_bar/home_app_bar.dart +++ b/lib/new_views/common_widgets/app_bar/home_app_bar.dart @@ -1,44 +1,58 @@ import 'package:flutter/material.dart'; -import 'package:test_sa/new_views/common_widgets/app_bar/user_image.dart'; +import 'package:test_sa/extensions/int_extensions.dart'; -import 'notification_icon.dart'; +import '../../app_style/app_color.dart'; -class HomeAppBar extends StatefulWidget implements PreferredSizeWidget { - final int notificationCount; - final String userImage; +class HomeAppBar extends StatelessWidget implements PreferredSizeWidget { final GlobalKey scaffoldKey; - const HomeAppBar({Key key, this.notificationCount, this.userImage, this.scaffoldKey}) : super(key: key); + const HomeAppBar({Key key, this.scaffoldKey}) : super(key: key); @override - State createState() => _AppBarState(); + Size get preferredSize => Size.fromHeight(60.toScreenHeight); - @override - Size get preferredSize => const Size.fromHeight(60); -} - -class _AppBarState extends State { @override Widget build(BuildContext context) { - return AppBar( - automaticallyImplyLeading: false, - elevation: 0, - title: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - InkWell( - onTap: () { - widget.scaffoldKey.currentState.openDrawer(); - }, - child: UserImage( - url: widget.userImage, - ), + return Padding( + padding: EdgeInsets.symmetric(horizontal: 16.toScreenWidth), + child: AppBar( + automaticallyImplyLeading: false, + elevation: 0, + leadingWidth: 48.toScreenWidth, + leading: InkWell( + onTap: () { + scaffoldKey.currentState.openDrawer(); + }, + child: CircleAvatar(child: Image.network("", fit: BoxFit.fill)), + ), + actions: [ + Stack( + children: [ + const Icon( + Icons.notifications, + color: AppColor.neutral20, + size: 34, ), - NotificationIcon( - notificationCount: 3, - ) + + ///TODO [zaid] : put notifications count rather than number 1 + if (1 != 0) + PositionedDirectional( + end: 0, + top: 0, + child: Container( + height: 20.toScreenWidth, + width: 20.toScreenWidth, + padding: const EdgeInsets.all(1), + decoration: BoxDecoration( + color: AppColor.red50, + borderRadius: BorderRadius.circular(10), + ), + child: Text( + (1).toString(), + style: Theme.of(context).textTheme.bodySmall?.copyWith(fontWeight: FontWeight.w500, color: AppColor.neutral30), + textAlign: TextAlign.center, + ), + ), + ), ], ), ], diff --git a/lib/new_views/common_widgets/app_bar/notification_icon.dart b/lib/new_views/common_widgets/app_bar/notification_icon.dart deleted file mode 100644 index cac4a6ae..00000000 --- a/lib/new_views/common_widgets/app_bar/notification_icon.dart +++ /dev/null @@ -1,36 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:test_sa/extensions/context_extension.dart'; - -import '../../app_style/app_color.dart'; - -class NotificationIcon extends StatelessWidget { - int notificationCount; - NotificationIcon({Key key, this.notificationCount}) : super(key: key); - - @override - Widget build(BuildContext context) { - return Stack( - children: [ - Icon(Icons.notifications, size: 36, ), - if(notificationCount != null) - Positioned( - right: 0, - child: Container( - height: 20, - width: 20, - padding: EdgeInsets.all(1), - decoration: BoxDecoration( - color: Colors.red, - borderRadius: BorderRadius.circular(10), - ), - child: Text( - notificationCount.toString(), - style: Theme.of(context).textTheme.bodyMedium?.copyWith(fontWeight: FontWeight.w500,color: AppColor.neutral30), - textAlign: TextAlign.center, - ), - ), - ) - ], - ); - } -} diff --git a/lib/new_views/common_widgets/app_bar/user_image.dart b/lib/new_views/common_widgets/app_bar/user_image.dart deleted file mode 100644 index 46f77e92..00000000 --- a/lib/new_views/common_widgets/app_bar/user_image.dart +++ /dev/null @@ -1,18 +0,0 @@ -import 'package:flutter/material.dart'; - -class UserImage extends StatelessWidget { - String url; - UserImage({Key key, @required this.url}) : super(key: key); - - @override - Widget build(BuildContext context) { - return SizedBox( - height: 48, - width: 48, - child: CircleAvatar( - //backgroundColor: Colors.transparent, - child: Image.network(url??''), - //backgroundImage: NetworkImage(url), - )); - } -}