import 'dart:developer'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:hmg_qline/constants/app_constants.dart'; import 'package:hmg_qline/utilities/enums.dart'; import 'package:hmg_qline/view_models/screen_config_view_model.dart'; import 'package:hmg_qline/views/common_widgets/app_texts_widget.dart'; import 'package:hmg_qline/views/view_helpers/size_config.dart'; Widget getWeatherWidget(ScreenConfigViewModel screenConfigViewModel) { if (screenConfigViewModel.weathersWidgetModel.maxTemp == null || screenConfigViewModel.weathersWidgetModel.minTemp == null || screenConfigViewModel.weathersWidgetModel.iconPhrase == null) { return const SizedBox.shrink(); } return Container( height: (screenConfigViewModel.globalConfigurationsModel.orientationTypeEnum == ScreenOrientationEnum.portraitUp || screenConfigViewModel.globalConfigurationsModel.orientationTypeEnum == ScreenOrientationEnum.portraitDown) ? SizeConfig.getHeightMultiplier() * 2 : SizeConfig.getHeightMultiplier() * 0.9, padding: const EdgeInsets.symmetric(vertical: 10, horizontal: 10), margin: const EdgeInsets.symmetric(vertical: 10, horizontal: 10), decoration: AppColors.configWidgetDecoration, child: Directionality( textDirection: screenConfigViewModel.globalConfigurationsModel.textDirection, child: Row( crossAxisAlignment: CrossAxisAlignment.center, children: [ Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.center, children: [ AppText( screenConfigViewModel.globalConfigurationsModel.weatherText, color: Colors.grey, fontSize: SizeConfig.getWidthMultiplier() * 2, fontFamily: screenConfigViewModel.globalConfigurationsModel.screenLanguageEnum == LanguageEnum.arabic ? AppStrings.fontNameCairo : AppStrings.fontNamePoppins, ), AppText( "${screenConfigViewModel.globalConfigurationsModel.maxText}: ${screenConfigViewModel.weathersWidgetModel.maxTemp}°C , ${screenConfigViewModel.globalConfigurationsModel.minText}: ${screenConfigViewModel.weathersWidgetModel.minTemp}°C", fontSize: SizeConfig.getWidthMultiplier() * 3, fontHeight: 1, fontFamily: screenConfigViewModel.globalConfigurationsModel.screenLanguageEnum == LanguageEnum.arabic ? AppStrings.fontNameCairo : AppStrings.fontNamePoppins, ), ], ), const SizedBox(width: 15), SvgPicture.asset( screenConfigViewModel.weathersWidgetModel.weatherIconPath ?? AppAssets.weatherIcon, height: SizeConfig.getHeightMultiplier() * 0.5, ), ], ), ), ); } Widget getPrayerWidget(ScreenConfigViewModel screenConfigViewModel) { if (screenConfigViewModel.nextPrayerToShowWithTime.isEmpty) { return const SizedBox.shrink(); } return SizedBox( child: Container( height: (screenConfigViewModel.globalConfigurationsModel.orientationTypeEnum == ScreenOrientationEnum.portraitUp || screenConfigViewModel.globalConfigurationsModel.orientationTypeEnum == ScreenOrientationEnum.portraitDown) ? SizeConfig.getHeightMultiplier() * 2 : SizeConfig.getHeightMultiplier() * 0.9, padding: const EdgeInsets.symmetric(vertical: 10, horizontal: 10), margin: const EdgeInsets.symmetric(vertical: 10, horizontal: 10), decoration: AppColors.configWidgetDecoration, child: Directionality( textDirection: screenConfigViewModel.globalConfigurationsModel.textDirection, child: Row( crossAxisAlignment: CrossAxisAlignment.center, children: [ Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.center, children: [ AppText( screenConfigViewModel.globalConfigurationsModel.nextPrayerText, color: Colors.grey, fontSize: SizeConfig.getWidthMultiplier() * 1.5, fontFamily: screenConfigViewModel.globalConfigurationsModel.screenLanguageEnum == LanguageEnum.arabic ? AppStrings.fontNameCairo : AppStrings.fontNamePoppins, ), AppText( screenConfigViewModel.nextPrayerToShowWithTime, fontSize: SizeConfig.getWidthMultiplier() * 3, fontHeight: 1, fontFamily: screenConfigViewModel.globalConfigurationsModel.screenLanguageEnum == LanguageEnum.arabic ? AppStrings.fontNameCairo : AppStrings.fontNamePoppins, ), ], ), const SizedBox(width: 15), SvgPicture.asset( AppAssets.mosqueIcon, height: SizeConfig.getWidthMultiplier() * 7, ), ], ), ), ), ); } int getFlexForScreenTypes(ScreenConfigViewModel screenConfigVM) { int flex = 1; if (screenConfigVM.currentScreenTypeEnum == ScreenTypeEnum.roomLevelScreen) { if (screenConfigVM.globalConfigurationsModel.orientationTypeEnum == ScreenOrientationEnum.portraitUp || screenConfigVM.globalConfigurationsModel.orientationTypeEnum == ScreenOrientationEnum.portraitDown) { flex = 2; } else { flex = 3; } } else { if (screenConfigVM.globalConfigurationsModel.orientationTypeEnum == ScreenOrientationEnum.portraitUp || screenConfigVM.globalConfigurationsModel.orientationTypeEnum == ScreenOrientationEnum.portraitDown) { flex = 2; } else { flex = 1; } } return flex; } Widget counterNoText(int counterNo) { return AppText( "${AppStrings.counterNo}$counterNo", fontFamily: AppStrings.fontNamePoppins, textAlign: TextAlign.center, fontWeight: FontWeight.bold, color: Colors.transparent, fontSize: SizeConfig.getWidthMultiplier() * 8, ); } Widget noPatientInQueue({required String text, required String fontName, required bool isForRoomLevel, required int counterNo}) { Widget noPatientText = Center( child: AppText( text, fontFamily: fontName, textAlign: TextAlign.center, fontSize: SizeConfig.getWidthMultiplier() * 9, ), ); if (isForRoomLevel) { return Column( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [counterNoText(counterNo), noPatientText, const SizedBox.shrink()], ); } else { return noPatientText; } } Widget commonSelectionCardKiosk({required ScreenConfigViewModel screenConfigViewModel, required String title, required String icon, required VoidCallback onTap}) { log("screenConfigViewModel.globalConfigurationsModel.orientationTypeEnum: ${screenConfigViewModel.globalConfigurationsModel.orientationTypeEnum}"); return InkWell( onTap: onTap, child: SizedBox( child: Container( constraints: BoxConstraints(minWidth: SizeConfig.getWidthMultiplier() * 30), padding: const EdgeInsets.all(5), margin: const EdgeInsets.all(10), decoration: AppColors.configWidgetDecoration, child: Directionality( textDirection: screenConfigViewModel.globalConfigurationsModel.textDirection, child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ SvgPicture.asset(icon, height: SizeConfig.getWidthMultiplier() * 12), const SizedBox(height: 15), AppText( title, fontSize: SizeConfig.getWidthMultiplier() * 6, fontHeight: 1, fontFamily: screenConfigViewModel.globalConfigurationsModel.screenLanguageEnum == LanguageEnum.arabic ? AppStrings.fontNameCairo : AppStrings.fontNamePoppins, ), ], ), ), ), ), ); }