Added checks for isDisclosureEnabled

faiz_disclosure
Faiz Hashmi 1 year ago
parent d77ace678d
commit b821026063

@ -92,7 +92,6 @@ class AppState {
final PostParamsModel _postParamsInitConfig = PostParamsModel(channel: 31, versionID: 8.2, mobileType: Platform.isAndroid ? "android" : "ios"); final PostParamsModel _postParamsInitConfig = PostParamsModel(channel: 31, versionID: 8.2, mobileType: Platform.isAndroid ? "android" : "ios");
void setPostParamsInitConfig() { void setPostParamsInitConfig() {
isAuthenticated = false; isAuthenticated = false;
isLogged = false; isLogged = false;
@ -194,4 +193,8 @@ class AppState {
} }
bool cancelRequestTrancsection = true; bool cancelRequestTrancsection = true;
bool isDisclosureEnabled = true;
set setIsDisclosureEnabled(v) => isDisclosureEnabled = v;
} }

@ -471,6 +471,8 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
? const OffersShimmerWidget() ? const OffersShimmerWidget()
: InkWell( : InkWell(
onTap: () { onTap: () {
if (AppState().isDisclosureEnabled) return;
navigateToDetails(data.getOffersList[index]); navigateToDetails(data.getOffersList[index]);
}, },
child: SizedBox( child: SizedBox(
@ -488,10 +490,11 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
), ),
border: Border.all(color: MyColors.lightGreyE3Color, width: 1), border: Border.all(color: MyColors.lightGreyE3Color, width: 1),
), ),
child: ClipRRect( child: Stack(
borderRadius: const BorderRadius.all( fit: StackFit.expand,
Radius.circular(50), children: [
), ClipRRect(
borderRadius: const BorderRadius.all(Radius.circular(50)),
child: Hero( child: Hero(
tag: "ItemImage" + data.getOffersList[index].offersDiscountId.toString()!, tag: "ItemImage" + data.getOffersList[index].offersDiscountId.toString()!,
transitionOnUserGestures: true, transitionOnUserGestures: true,
@ -501,6 +504,20 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
), ),
), ),
), ),
if (AppState().isDisclosureEnabled) ...[
Container(
width: double.infinity,
height: double.infinity,
decoration: BoxDecoration(borderRadius: BorderRadius.circular(100), color: Colors.grey.withOpacity(0.6)),
child: const Icon(
Icons.lock_outline,
color: MyColors.grey57Color,
size: 40,
),
),
]
],
),
), ),
4.height, 4.height,
Expanded( Expanded(
@ -601,7 +618,7 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
BottomNavigationBarItem( BottomNavigationBarItem(
icon: SvgPicture.asset( icon: SvgPicture.asset(
"assets/icons/create_req.svg", "assets/icons/create_req.svg",
color: currentIndex == 1 ? MyColors.grey3AColor : MyColors.grey98Color, color: AppState().isDisclosureEnabled ? MyColors.greyC4Color : (currentIndex == 1 ? MyColors.grey3AColor : MyColors.grey98Color),
).paddingAll(4), ).paddingAll(4),
label: LocaleKeys.mowadhafhiRequest.tr(), label: LocaleKeys.mowadhafhiRequest.tr(),
), ),
@ -611,7 +628,7 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
children: [ children: [
SvgPicture.asset( SvgPicture.asset(
"assets/icons/work_list.svg", "assets/icons/work_list.svg",
color: currentIndex == 2 ? MyColors.grey3AColor : MyColors.grey98Color, color: AppState().isDisclosureEnabled ? MyColors.greyC4Color : (currentIndex == 2 ? MyColors.grey3AColor : MyColors.grey98Color),
).paddingAll(4), ).paddingAll(4),
Consumer<DashboardProviderModel>( Consumer<DashboardProviderModel>(
builder: (BuildContext cxt, DashboardProviderModel data, Widget? child) { builder: (BuildContext cxt, DashboardProviderModel data, Widget? child) {
@ -637,7 +654,7 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
BottomNavigationBarItem( BottomNavigationBarItem(
icon: SvgPicture.asset( icon: SvgPicture.asset(
"assets/icons/item_for_sale.svg", "assets/icons/item_for_sale.svg",
color: currentIndex == 3 ? MyColors.grey3AColor : MyColors.grey98Color, color: AppState().isDisclosureEnabled ? MyColors.greyC4Color : (currentIndex == 3 ? MyColors.grey3AColor : MyColors.grey98Color),
).paddingAll(4), ).paddingAll(4),
label: LocaleKeys.itemsForSale.tr(), label: LocaleKeys.itemsForSale.tr(),
), ),
@ -647,13 +664,15 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
children: [ children: [
SvgPicture.asset( SvgPicture.asset(
"assets/icons/chat/chat.svg", "assets/icons/chat/chat.svg",
color: !checkIfPrivilegedForChat() color: AppState().isDisclosureEnabled
? MyColors.greyC4Color
: (!checkIfPrivilegedForChat()
? MyColors.lightGreyE3Color ? MyColors.lightGreyE3Color
: currentIndex == 4 : currentIndex == 4
? MyColors.grey3AColor ? MyColors.grey3AColor
: cProvider.disbaleChatForThisUser : cProvider.disbaleChatForThisUser
? MyColors.lightGreyE3Color ? MyColors.lightGreyE3Color
: MyColors.grey98Color, : MyColors.grey98Color),
).paddingAll(4), ).paddingAll(4),
Consumer<ChatProviderModel>( Consumer<ChatProviderModel>(
builder: (BuildContext cxt, ChatProviderModel data, Widget? child) { builder: (BuildContext cxt, ChatProviderModel data, Widget? child) {
@ -681,10 +700,14 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
unselectedLabelStyle: const TextStyle(fontSize: 10, color: MyColors.grey98Color, fontWeight: FontWeight.w600), unselectedLabelStyle: const TextStyle(fontSize: 10, color: MyColors.grey98Color, fontWeight: FontWeight.w600),
type: BottomNavigationBarType.fixed, type: BottomNavigationBarType.fixed,
selectedItemColor: MyColors.grey3AColor, selectedItemColor: MyColors.grey3AColor,
unselectedItemColor: AppState().isDisclosureEnabled ? MyColors.greyC4Color : null,
backgroundColor: MyColors.backgroundColor, backgroundColor: MyColors.backgroundColor,
selectedIconTheme: const IconThemeData(color: MyColors.grey3AColor, size: 28), selectedIconTheme: const IconThemeData(color: MyColors.grey3AColor, size: 28),
unselectedIconTheme: const IconThemeData(color: MyColors.grey98Color, size: 28), unselectedIconTheme: const IconThemeData(color: MyColors.grey98Color, size: 28),
onTap: (int index) { onTap: (int index) {
if (AppState().isDisclosureEnabled) {
return;
}
if (index == 1) { if (index == 1) {
Navigator.pushNamed(context, AppRoutes.mowadhafhi); Navigator.pushNamed(context, AppRoutes.mowadhafhi);
} else if (index == 2) { } else if (index == 2) {

@ -2,6 +2,7 @@ import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
import 'package:mohem_flutter_app/app_state/app_state.dart'; import 'package:mohem_flutter_app/app_state/app_state.dart';
import 'package:mohem_flutter_app/classes/colors.dart';
import 'package:mohem_flutter_app/config/routes.dart'; import 'package:mohem_flutter_app/config/routes.dart';
import 'package:mohem_flutter_app/extensions/string_extensions.dart'; import 'package:mohem_flutter_app/extensions/string_extensions.dart';
import 'package:mohem_flutter_app/extensions/widget_extensions.dart'; import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
@ -14,6 +15,16 @@ import 'package:provider/provider.dart';
class MenusWidget extends StatelessWidget { class MenusWidget extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
Widget disabledWidget = Container(
width: double.infinity,
height: double.infinity,
decoration: BoxDecoration(borderRadius: BorderRadius.circular(10), color: Colors.grey.withOpacity(0.6)),
child: const Icon(
Icons.lock_outline,
color: MyColors.grey57Color,
size: 40,
),
);
List<int> namesColor = [0xff125765, 0xff239D8F, 0xff2BB8A8, 0xff1D92AA]; List<int> namesColor = [0xff125765, 0xff239D8F, 0xff2BB8A8, 0xff1D92AA];
return Consumer<DashboardProviderModel>( return Consumer<DashboardProviderModel>(
@ -29,7 +40,9 @@ class MenusWidget extends StatelessWidget {
? MenuShimmer().onPress(() { ? MenuShimmer().onPress(() {
data.fetchWorkListCounter(context, showLoading: true); data.fetchWorkListCounter(context, showLoading: true);
}) })
: Container( : Stack(
children: [
Container(
decoration: BoxDecoration( decoration: BoxDecoration(
color: Color(namesColor[0]), color: Color(namesColor[0]),
borderRadius: BorderRadius.circular(10), borderRadius: BorderRadius.circular(10),
@ -49,14 +62,22 @@ class MenusWidget extends StatelessWidget {
) )
], ],
).paddingOnly(left: 10, right: 10, bottom: 6, top: 6), ).paddingOnly(left: 10, right: 10, bottom: 6, top: 6),
),
if (AppState().isDisclosureEnabled) ...[disabledWidget]
],
).onPress(() { ).onPress(() {
if (AppState().isDisclosureEnabled) {
return;
}
Navigator.pushNamed(context, AppRoutes.workList); Navigator.pushNamed(context, AppRoutes.workList);
}), }),
data.isMissingSwipeLoading data.isMissingSwipeLoading
? MenuShimmer().onPress(() { ? MenuShimmer().onPress(() {
data.fetchWorkListCounter(context); data.fetchWorkListCounter(context);
}) })
: Container( : Stack(
children: [
Container(
decoration: BoxDecoration( decoration: BoxDecoration(
color: Color(namesColor[1]), color: Color(namesColor[1]),
borderRadius: BorderRadius.circular(10), borderRadius: BorderRadius.circular(10),
@ -76,14 +97,22 @@ class MenusWidget extends StatelessWidget {
) )
], ],
).paddingOnly(left: 10, right: 10, bottom: 6, top: 6), ).paddingOnly(left: 10, right: 10, bottom: 6, top: 6),
),
if (AppState().isDisclosureEnabled) ...[disabledWidget]
],
).onPress(() { ).onPress(() {
if (AppState().isDisclosureEnabled) {
return;
}
Navigator.pushNamed(context, AppRoutes.dynamicScreen, arguments: DynamicListViewParams(LocaleKeys.missingSwipes.tr(), "HMG_OTL_MISSING_SWIPE_EIT_SS")); Navigator.pushNamed(context, AppRoutes.dynamicScreen, arguments: DynamicListViewParams(LocaleKeys.missingSwipes.tr(), "HMG_OTL_MISSING_SWIPE_EIT_SS"));
}), }),
data.isLeaveTicketBalanceLoading data.isLeaveTicketBalanceLoading
? MenuShimmer().onPress(() { ? MenuShimmer().onPress(() {
data.fetchWorkListCounter(context); data.fetchWorkListCounter(context);
}) })
: Container( : Stack(
children: [
Container(
decoration: BoxDecoration( decoration: BoxDecoration(
color: Color(namesColor[2]), color: Color(namesColor[2]),
borderRadius: BorderRadius.circular(10), borderRadius: BorderRadius.circular(10),
@ -103,14 +132,22 @@ class MenusWidget extends StatelessWidget {
) )
], ],
).paddingOnly(left: 10, right: 10, bottom: 6, top: 6), ).paddingOnly(left: 10, right: 10, bottom: 6, top: 6),
),
if (AppState().isDisclosureEnabled) ...[disabledWidget]
],
).onPress(() { ).onPress(() {
if (AppState().isDisclosureEnabled) {
return;
}
Navigator.pushNamed(context, AppRoutes.leaveBalance); Navigator.pushNamed(context, AppRoutes.leaveBalance);
}), }),
data.isLeaveTicketBalanceLoading data.isLeaveTicketBalanceLoading
? MenuShimmer().onPress(() { ? MenuShimmer().onPress(() {
data.fetchWorkListCounter(context); data.fetchWorkListCounter(context);
}) })
: Container( : Stack(
children: [
Container(
decoration: BoxDecoration( decoration: BoxDecoration(
color: Color(namesColor[3]), color: Color(namesColor[3]),
borderRadius: BorderRadius.circular(10), borderRadius: BorderRadius.circular(10),
@ -130,8 +167,14 @@ class MenusWidget extends StatelessWidget {
) )
], ],
).paddingOnly(left: 10, right: 10, bottom: 6, top: 6), ).paddingOnly(left: 10, right: 10, bottom: 6, top: 6),
),
if (AppState().isDisclosureEnabled) ...[disabledWidget]
],
).onPress( ).onPress(
() { () {
if (AppState().isDisclosureEnabled) {
return;
}
Navigator.pushNamed(context, AppRoutes.dynamicScreen, arguments: DynamicListViewParams(LocaleKeys.ticketBalance.tr(), "HMG_TKT_NEW_EIT_SS")); Navigator.pushNamed(context, AppRoutes.dynamicScreen, arguments: DynamicListViewParams(LocaleKeys.ticketBalance.tr(), "HMG_TKT_NEW_EIT_SS"));
}, },
) )

@ -1,7 +1,10 @@
import 'dart:developer';
import 'package:easy_localization/src/public_ext.dart'; import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
import 'package:mohem_flutter_app/app_state/app_state.dart'; import 'package:mohem_flutter_app/app_state/app_state.dart';
import 'package:mohem_flutter_app/classes/colors.dart';
import 'package:mohem_flutter_app/config/routes.dart'; import 'package:mohem_flutter_app/config/routes.dart';
import 'package:mohem_flutter_app/extensions/int_extensions.dart'; import 'package:mohem_flutter_app/extensions/int_extensions.dart';
import 'package:mohem_flutter_app/extensions/string_extensions.dart'; import 'package:mohem_flutter_app/extensions/string_extensions.dart';
@ -49,11 +52,14 @@ class ServicesWidget extends StatelessWidget {
padding: const EdgeInsets.only(left: 21, right: 21, top: 13, bottom: 13), padding: const EdgeInsets.only(left: 21, right: 21, top: 13, bottom: 13),
scrollDirection: Axis.horizontal, scrollDirection: Axis.horizontal,
itemBuilder: (cxt, index) { itemBuilder: (cxt, index) {
log("data.homeMenus![parentIndex].menuEntiesList[index].prompt: ${data.homeMenus![parentIndex].menuEntiesList[index].prompt}");
return AspectRatio( return AspectRatio(
aspectRatio: 105 / 105, aspectRatio: 105 / 105,
child: data.isServicesMenusLoading child: data.isServicesMenusLoading
? ServicesMenuShimmer() ? ServicesMenuShimmer()
: Container( : Stack(
children: [
Container(
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white, color: Colors.white,
borderRadius: BorderRadius.circular(15), borderRadius: BorderRadius.circular(15),
@ -69,9 +75,7 @@ class ServicesWidget extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
SvgPicture.asset(AppState().isArabic(context) SvgPicture.asset(AppState().isArabic(context) ? getMenuIconAr(data.homeMenus![parentIndex].menuEntiesList[index].prompt!) : getMenuIconEn(data.homeMenus![parentIndex].menuEntiesList[index].prompt!)),
? getMenuIconAr(data.homeMenus![parentIndex].menuEntiesList[index].prompt!)
: getMenuIconEn(data.homeMenus![parentIndex].menuEntiesList[index].prompt!)),
Row( Row(
crossAxisAlignment: CrossAxisAlignment.end, crossAxisAlignment: CrossAxisAlignment.end,
children: [ children: [
@ -83,7 +87,24 @@ class ServicesWidget extends StatelessWidget {
) )
], ],
).paddingOnly(left: 10, right: 10, bottom: 10, top: 12), ).paddingOnly(left: 10, right: 10, bottom: 10, top: 12),
),
if (AppState().isDisclosureEnabled && (parentIndex == 0 && index != 0) || (parentIndex > 0)) ...[
Container(
width: double.infinity,
height: double.infinity,
decoration: BoxDecoration(borderRadius: BorderRadius.circular(15), color: Colors.grey.withOpacity(0.6)),
child: const Icon(
Icons.lock_outline,
color: MyColors.grey57Color,
size: 40,
),
),
]
],
).onPress(() { ).onPress(() {
if (AppState().isDisclosureEnabled && (parentIndex == 0 && index != 0) || (parentIndex > 0)) {
return;
}
handleOnPress(context, data.homeMenus![parentIndex].menuEntiesList[index]); handleOnPress(context, data.homeMenus![parentIndex].menuEntiesList[index]);
}), }),
); );
@ -220,8 +241,7 @@ class ServicesWidget extends StatelessWidget {
Navigator.pushNamed(context, AppRoutes.monthlyPaySlip); Navigator.pushNamed(context, AppRoutes.monthlyPaySlip);
} }
} else { } else {
List<GetMenuEntriesList> _menuList = List<GetMenuEntriesList> _menuList = pro.getMenuEntriesList?.where((element) => element.parentMenuName == menuEntry.menuName && (element.menuEntryType == "FUNCTION" || element.menuEntryType == "MENU")).toList() ?? [];
pro.getMenuEntriesList?.where((element) => element.parentMenuName == menuEntry.menuName && (element.menuEntryType == "FUNCTION" || element.menuEntryType == "MENU")).toList() ?? [];
Navigator.pushNamed(context, AppRoutes.servicesMenuListScreen, arguments: ServicesMenuListScreenParams(menuEntry.prompt!, _menuList.isEmpty ? menuList : _menuList)); Navigator.pushNamed(context, AppRoutes.servicesMenuListScreen, arguments: ServicesMenuListScreenParams(menuEntry.prompt!, _menuList.isEmpty ? menuList : _menuList));
} }
return; return;

Loading…
Cancel
Save