From 98888a32f0dca7e08b8444c3178a519304830740 Mon Sep 17 00:00:00 2001 From: FaizHashmiCS22 Date: Mon, 9 Oct 2023 16:25:25 +0300 Subject: [PATCH] Updated Design for Info Widgets and RssFeed --- assets/icons/cloudy.svg | 34 ++- assets/icons/cold.svg | 2 +- assets/icons/hot.svg | 2 +- assets/icons/mosque.svg | 2 +- assets/icons/rainy.svg | 2 +- assets/icons/sunny.svg | 2 +- assets/icons/weather.svg | 2 +- assets/icons/windy.svg | 2 +- lib/core/api.dart | 2 +- lib/core/config/config.dart | 20 ++ .../response_models/call_config_model.dart | 54 +++-- lib/header/app_header.dart | 165 +++++++------ lib/home/app_provider.dart | 10 +- lib/home/home_screen.dart | 217 +++++++++++++++--- lib/home/priority_calls_components.dart | 12 + lib/main.dart | 2 +- lib/utils/signalR_utils.dart | 1 - pubspec.lock | 16 ++ pubspec.yaml | 1 + 19 files changed, 387 insertions(+), 161 deletions(-) diff --git a/assets/icons/cloudy.svg b/assets/icons/cloudy.svg index b1f6b7e..56a61b4 100644 --- a/assets/icons/cloudy.svg +++ b/assets/icons/cloudy.svg @@ -1 +1,33 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/icons/cold.svg b/assets/icons/cold.svg index 06b4b0b..83e9fa7 100644 --- a/assets/icons/cold.svg +++ b/assets/icons/cold.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/hot.svg b/assets/icons/hot.svg index 1fedcc1..1d0ac71 100644 --- a/assets/icons/hot.svg +++ b/assets/icons/hot.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/mosque.svg b/assets/icons/mosque.svg index 2eded13..3f66f4c 100644 --- a/assets/icons/mosque.svg +++ b/assets/icons/mosque.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/rainy.svg b/assets/icons/rainy.svg index c3ce867..6f1146d 100644 --- a/assets/icons/rainy.svg +++ b/assets/icons/rainy.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/sunny.svg b/assets/icons/sunny.svg index a84bc71..3409534 100644 --- a/assets/icons/sunny.svg +++ b/assets/icons/sunny.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/weather.svg b/assets/icons/weather.svg index 8c0ac78..a0f43ce 100644 --- a/assets/icons/weather.svg +++ b/assets/icons/weather.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/icons/windy.svg b/assets/icons/windy.svg index 9e12431..586ab91 100644 --- a/assets/icons/windy.svg +++ b/assets/icons/windy.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/lib/core/api.dart b/lib/core/api.dart index 8df4e3b..a8b346b 100644 --- a/lib/core/api.dart +++ b/lib/core/api.dart @@ -26,7 +26,7 @@ class API { static getCallRequestInfoByClinicInfo(String deviceIp, {required Function(List, List, CallConfig callConfig) onSuccess, required Function(dynamic) onFailure}) async { final body = {"ipAdress": deviceIp, "apiKey": apiKey}; - bool isDevMode = false; + bool isDevMode = true; if (isDevMode) { var callPatients = PatientTicketModel.testCallPatients; CallConfig callConfig = CallConfig.testCallConfig; diff --git a/lib/core/config/config.dart b/lib/core/config/config.dart index 9018879..0501049 100644 --- a/lib/core/config/config.dart +++ b/lib/core/config/config.dart @@ -19,6 +19,7 @@ class AppGlobal { // static Color appRedColor = const Color(0xFFD02127); // static Color appGreenColor = const Color(0xFF359846); static Color appTextColor = const Color(0xFF2B353E); + static Color appRssFeed = const Color(0x3A1E2326); //TextColors static Color nebulizationColor = const Color(0xFF3C86D0); @@ -46,4 +47,23 @@ class AppGlobal { static String rainIcon = "assets/icons/rainy.svg"; static String sunnyIcon = "assets/icons/sunny.svg"; static String windIcon = "assets/icons/windy.svg"; + + //Decoartion + + static BoxDecoration configWidgetDecoration = BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(12), + boxShadow: [ + BoxShadow( + color: Colors.grey.withOpacity(0.2), + blurRadius: 4, + offset: const Offset(4, 4), // Shadow position + ), + BoxShadow( + color: Colors.grey.withOpacity(0.2), + blurRadius: 4, + offset: const Offset(-4, -4), // Shadow position + ), + ], + ); } diff --git a/lib/core/response_models/call_config_model.dart b/lib/core/response_models/call_config_model.dart index 946d55e..4e8768c 100644 --- a/lib/core/response_models/call_config_model.dart +++ b/lib/core/response_models/call_config_model.dart @@ -38,6 +38,7 @@ class CallConfig { late String callForText; late String currentServeText; late String nextPrayerText; + late String weatherText; late String minText; late String maxText; late String fajrText; @@ -78,6 +79,7 @@ class CallConfig { this.callForText = "", this.currentServeText = "Current Serving", this.nextPrayerText = "Next Prayer", + this.weatherText = "Weather", this.minText = "Min", this.maxText = "Max", this.fajrText = "Fajar", @@ -117,10 +119,12 @@ class CallConfig { queueNoText = json['queueNoText']; callForText = json['callForText']; nextPrayerText = json['nextPrayerText']; + weatherText = json['weatherText'] ?? "Weather"; maxText = json['maxText']; - fajrText = json['fajrText']; + minText = json['minText']; + fajrText = json['fajarText']; dhuhrText = json['dhuhrText']; - asrText = json['asrText']; + asrText = json['asarText']; maghribText = json['maghribText']; ishaText = json['ishaText']; currentServeText = json['currentServeText']; @@ -137,9 +141,9 @@ class CallConfig { "id": 1, "globalClinicPrefixReq": true, "clinicPrefixReq": true, - "concurrentCallDelaySec": 2, - "voiceType": 2, - "voiceTypeText": "Female", + "concurrentCallDelaySec": 1, + "voiceType": 1, + "voiceTypeText": "Male", "screenLanguage": 1, "screenLanguageText": "English", "voiceLanguage": 1, @@ -149,27 +153,33 @@ class CallConfig { "prioritySMS": 2, "priorityWhatsApp": 3, "priorityEmail": 1, - "textDirection": 2, - "vitalSignText": "Call For VitalSign", - "doctorText": "دعوة للحصول على علامة حيوية", - // "doctorText": "Call For Doctor", - "procedureText": "Call For Procedure", - "vaccinationText": "Call For Vaccination", - "nebulizationText": "Call For Nebulization", - "roomText": "غرفة", - // "roomText": "Room", - "queueNoText": "رقم الانتظار", - "callForText": "يدعو إلى", + "textDirection": 1, + "vitalSignText": "VitalSign", + "doctorText": "Doctor", + "procedureText": "Procedure", + "vaccinationText": "Vaccination", + "nebulizationText": "Nebulization", + "callForVitalSignText": "Call For VitalSign", + "callForDoctorText": "Call For Doctor", + "callForProcedureText": "Call For Procedure", + "callForVaccinationText": "Call For Vaccination", + "callForNebulizationText": "Call For Nebulization", + "roomText": "Room", + "queueNoText": "Queue No", + "callForText": "Call For", "currentServeText": "Current Serving", - "callTypeVitalSignText": "علامة حيوية", - "callTypeDoctorText": "طبيب", - "callTypeProcedureText": "إجراء", - "callTypeVaccinationText": "تلقيح", - "callTypeNebulizationText": "الإرذاذ", + "maxText": "Max", + "minText": "Min", + "nextPrayerText": "Next Prayer", + "fajarText": "Fajar", + "dhuhrText": "Dhuhr", + "asarText": "Asar", + "maghribText": "Maghrib", + "ishaText": "Isha", "createdBy": 101, "createdOn": "2023-08-08T00:00:00", "editedBy": 101, - "editedOn": "2023-09-26T16:30:41.92" + "editedOn": "2023-10-08T10:07:12.5" }; static CallConfig testCallConfig = CallConfig.fromJson(data); diff --git a/lib/header/app_header.dart b/lib/header/app_header.dart index f204c41..cff0392 100644 --- a/lib/header/app_header.dart +++ b/lib/header/app_header.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; +import 'package:marquee/marquee.dart'; import 'package:provider/provider.dart'; import 'package:queuing_system/core/config/config.dart'; import 'package:queuing_system/core/config/size_config.dart'; @@ -10,104 +11,96 @@ import 'package:queuing_system/widget/data_display/app_texts_widget.dart'; class AppHeader extends StatelessWidget with PreferredSizeWidget { const AppHeader({Key? key}) : super(key: key); - getWeatherIcon() {} + // + // Widget getWeatherWidget() { + // return Consumer(builder: (BuildContext context, AppProvider appProvider, Widget? child) { + // if (appProvider.currentWeathersWidgetModel.maxTemp == null || appProvider.currentWeathersWidgetModel.minTemp == null || appProvider.currentWeathersWidgetModel.iconPhrase == null) { + // return const SizedBox.shrink(); + // } + // return Directionality( + // textDirection: appProvider.patientCallConfigurations.textDirection, + // child: Row( + // children: [ + // SvgPicture.asset( + // appProvider.currentWeathersWidgetModel.weatherIconPath ?? AppGlobal.weatherIcon, + // height: SizeConfig.getHeightMultiplier() * 2.5, + // color: Colors.white, + // ), + // const SizedBox(width: 10), + // Padding( + // padding: const EdgeInsets.only(top: 15), + // child: AppText( + // "${appProvider.patientCallConfigurations.maxText}: ${appProvider.currentWeathersWidgetModel.maxTemp}°C , ${appProvider.patientCallConfigurations.minText}: ${appProvider.currentWeathersWidgetModel.minTemp}°C", + // color: Colors.white, + // fontSize: SizeConfig.getHeightMultiplier() * 1.3, + // ), + // ), + // ], + // ), + // ); + // }); + // } + // + // Widget getPrayerWidget() { + // return Consumer(builder: (BuildContext context, AppProvider appProvider, Widget? child) { + // if (appProvider.nextPrayerToShowWithTime.isEmpty) { + // return const SizedBox.shrink(); + // } + // return Directionality( + // textDirection: appProvider.patientCallConfigurations.textDirection, + // // textDirection: appProvider.patientCallConfigurations.textDirection, + // child: Row( + // children: [ + // SvgPicture.asset( + // AppGlobal.mosqueIcon, + // height: SizeConfig.getHeightMultiplier() * 2.5, + // color: Colors.white, + // ), + // const SizedBox(width: 10), + // Padding( + // padding: const EdgeInsets.only(top: 15), + // child: AppText( + // "${appProvider.patientCallConfigurations.nextPrayerText}: ${appProvider.nextPrayerToShowWithTime}", + // color: Colors.white, + // fontSize: SizeConfig.getHeightMultiplier() * 1.3, + // ), + // ), + // ], + // ), + // ); + // }); + // } - Widget getWeatherWidget() { - return Consumer(builder: (BuildContext context, AppProvider appProvider, Widget? child) { - if (appProvider.currentWeathersWidgetModel.maxTemp == null || appProvider.currentWeathersWidgetModel.minTemp == null || appProvider.currentWeathersWidgetModel.iconPhrase == null) { - return const SizedBox.shrink(); - } - return Directionality( + + @override + Widget build(BuildContext context) { + AppProvider appProvider = context.read(); + // return SizedBox(); + return Container( + height: 100, + padding: const EdgeInsets.only(left: 20, right: 20), + decoration: BoxDecoration(color: AppGlobal.vitalSignColor), + child: Directionality( textDirection: appProvider.patientCallConfigurations.textDirection, child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, children: [ - SvgPicture.asset( - appProvider.currentWeathersWidgetModel.weatherIconPath ?? AppGlobal.weatherIcon, - height: SizeConfig.getHeightMultiplier() * 2.5, - color: Colors.white, - ), - const SizedBox(width: 10), - Padding( - padding: const EdgeInsets.only(top: 15), + InkWell( + onTap: () {}, child: AppText( - "${appProvider.patientCallConfigurations.maxText}: ${appProvider.currentWeathersWidgetModel.maxTemp}°C , ${appProvider.patientCallConfigurations.minText}: ${appProvider.currentWeathersWidgetModel.minTemp}°C", + appProvider.patientCallConfigurations.currentServeText, color: Colors.white, - fontSize: SizeConfig.getHeightMultiplier() * 1.3, ), ), - ], - ), - ); - }); - } - - Widget getPrayerWidget() { - return Consumer(builder: (BuildContext context, AppProvider appProvider, Widget? child) { - if (appProvider.nextPrayerToShowWithTime.isEmpty) { - return const SizedBox.shrink(); - } - return Directionality( - textDirection: appProvider.patientCallConfigurations.textDirection, - child: Row( - children: [ + // getPrayerWidget(), + // getWeatherWidget(), SvgPicture.asset( - AppGlobal.mosqueIcon, - height: SizeConfig.getHeightMultiplier() * 2.5, - color: Colors.white, - ), - const SizedBox(width: 10), - Padding( - padding: const EdgeInsets.only(top: 15), - child: AppText( - "Next Prayer: ${appProvider.nextPrayerToShowWithTime}", - color: Colors.white, - fontSize: SizeConfig.getHeightMultiplier() * 1.3, - ), + "assets/images/hmglogo.svg", + height: Utils.getHeight() * 0.5, ), ], ), - ); - }); - } - - @override - Widget build(BuildContext context) { - AppProvider appProvider = context.read(); - return Container( - padding: const EdgeInsets.only( - left: 0, - right: 5, - ), - decoration: BoxDecoration(color: AppGlobal.vitalSignColor, border: const Border(bottom: BorderSide(color: Color(0xFFEFEFEF)))), - child: Container( - height: 100, - padding: const EdgeInsets.only( - left: 20, - right: 20, - bottom: 0, - ), - child: Directionality( - textDirection: appProvider.patientCallConfigurations.textDirection, - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - InkWell( - onTap: () {}, - child: AppText( - appProvider.patientCallConfigurations.currentServeText, - color: Colors.white, - ), - ), - getPrayerWidget(), - getWeatherWidget(), - SvgPicture.asset( - "assets/images/hmglogo.svg", - height: Utils.getHeight() * 0.5, - ), - ], - ), - ), ), ); } diff --git a/lib/home/app_provider.dart b/lib/home/app_provider.dart index c52e6ae..e4dbe4a 100644 --- a/lib/home/app_provider.dart +++ b/lib/home/app_provider.dart @@ -107,31 +107,31 @@ class AppProvider extends ChangeNotifier { final current = DateTime.now(); if (DateTime.fromMillisecondsSinceEpoch(currentPrayersWidgetModel.fajr!).isAfter(current)) { final namazTime = DateFormat('hh:mm a').format(DateTime.fromMillisecondsSinceEpoch(currentPrayersWidgetModel.fajr!)); - nextPrayerToShowWithTime = "${patientCallConfigurations.fajrText} ($namazTime)"; + nextPrayerToShowWithTime = "${patientCallConfigurations.fajrText} at $namazTime"; notifyListeners(); return; } if (DateTime.fromMillisecondsSinceEpoch(currentPrayersWidgetModel.dhuhr!).isAfter(current)) { final namazTime = DateFormat('hh:mm a').format(DateTime.fromMillisecondsSinceEpoch(currentPrayersWidgetModel.dhuhr!)); - nextPrayerToShowWithTime = "${patientCallConfigurations.dhuhrText} ($namazTime)"; + nextPrayerToShowWithTime = "${patientCallConfigurations.dhuhrText} at $namazTime"; notifyListeners(); return; } if (DateTime.fromMillisecondsSinceEpoch(currentPrayersWidgetModel.asr!).isAfter(current)) { final namazTime = DateFormat('hh:mm a').format(DateTime.fromMillisecondsSinceEpoch(currentPrayersWidgetModel.asr!)); - nextPrayerToShowWithTime = "${patientCallConfigurations.asrText} ($namazTime)"; + nextPrayerToShowWithTime = "${patientCallConfigurations.asrText} at $namazTime"; notifyListeners(); return; } if (DateTime.fromMillisecondsSinceEpoch(currentPrayersWidgetModel.maghrib!).isAfter(current)) { final namazTime = DateFormat('hh:mm a').format(DateTime.fromMillisecondsSinceEpoch(currentPrayersWidgetModel.maghrib!)); - nextPrayerToShowWithTime = "${patientCallConfigurations.maghribText} ($namazTime)"; + nextPrayerToShowWithTime = "${patientCallConfigurations.maghribText} at $namazTime"; notifyListeners(); return; } if (DateTime.fromMillisecondsSinceEpoch(currentPrayersWidgetModel.isha!).isAfter(current)) { final namazTime = DateFormat('hh:mm a').format(DateTime.fromMillisecondsSinceEpoch(currentPrayersWidgetModel.isha!)); - nextPrayerToShowWithTime = "${patientCallConfigurations.ishaText} ($namazTime)"; + nextPrayerToShowWithTime = "${patientCallConfigurations.ishaText} at $namazTime"; notifyListeners(); return; } diff --git a/lib/home/home_screen.dart b/lib/home/home_screen.dart index 4c9c825..d8653b2 100644 --- a/lib/home/home_screen.dart +++ b/lib/home/home_screen.dart @@ -1,6 +1,9 @@ import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:marquee/marquee.dart'; import 'package:provider/provider.dart'; import 'package:queuing_system/core/base/app_scaffold_widget.dart'; +import 'package:queuing_system/core/config/config.dart'; import 'package:queuing_system/core/config/size_config.dart'; import 'package:queuing_system/header/app_header.dart'; import 'package:queuing_system/home/app_provider.dart'; @@ -11,6 +14,144 @@ import 'package:queuing_system/widget/data_display/app_texts_widget.dart'; class MyHomePage extends StatelessWidget { const MyHomePage({Key? key}) : super(key: key); + getWeatherWidget() { + return Consumer(builder: (BuildContext context, AppProvider appProvider, Widget? child) { + if (appProvider.currentWeathersWidgetModel.maxTemp == null || appProvider.currentWeathersWidgetModel.minTemp == null || appProvider.currentWeathersWidgetModel.iconPhrase == null) { + return const SizedBox.shrink(); + } + return Container( + constraints: BoxConstraints( + minWidth: SizeConfig.getWidthMultiplier() * 30, + minHeight: SizeConfig.getHeightMultiplier() * 5.5, + ), + padding: const EdgeInsets.symmetric(vertical: 10, horizontal: 10), + decoration: AppGlobal.configWidgetDecoration, + child: Directionality( + textDirection: appProvider.patientCallConfigurations.textDirection, + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + AppText( + appProvider.patientCallConfigurations.weatherText, + color: Colors.grey, + fontSize: SizeConfig.getWidthMultiplier() * 1.5, + ), + AppText( + // "Max: 40C , Min: 38C", + "${appProvider.patientCallConfigurations.maxText}: ${appProvider.currentWeathersWidgetModel.maxTemp}°C , ${appProvider.patientCallConfigurations.minText}: ${appProvider.currentWeathersWidgetModel.minTemp}°C", + fontSize: SizeConfig.getHeightMultiplier() * 1.3, + fontHeight: 1, + ), + ], + ), + const SizedBox(width: 15), + SvgPicture.asset( + appProvider.currentWeathersWidgetModel.weatherIconPath ?? AppGlobal.weatherIcon, + height: SizeConfig.getHeightMultiplier() * 3, + ), + ], + ), + ), + ); + }); + } + + getPrayerWidget() { + return Consumer(builder: (BuildContext context, AppProvider appProvider, Widget? child) { + if (appProvider.nextPrayerToShowWithTime.isEmpty) { + return const SizedBox.shrink(); + } + return Container( + constraints: BoxConstraints( + minWidth: SizeConfig.getWidthMultiplier() * 25, + minHeight: SizeConfig.getHeightMultiplier() * 5, + ), + padding: const EdgeInsets.symmetric(vertical: 10, horizontal: 10), + decoration: AppGlobal.configWidgetDecoration, + child: Directionality( + textDirection: appProvider.patientCallConfigurations.textDirection, + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + AppText( + appProvider.patientCallConfigurations.nextPrayerText, + color: Colors.grey, + fontSize: SizeConfig.getWidthMultiplier() * 1.5, + ), + AppText( + appProvider.nextPrayerToShowWithTime, + fontSize: SizeConfig.getHeightMultiplier() * 1.3, + fontHeight: 1, + ), + ], + ), + const SizedBox(width: 15), + SvgPicture.asset( + AppGlobal.mosqueIcon, + height: SizeConfig.getHeightMultiplier() * 3, + ), + ], + ), + ), + ); + }); + } + + getBody(AppProvider appProvider) { + return Column( + children: [ + const SizedBox(height: 12), + Expanded( + flex: 1, + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 40), + child: Row( + children: [ + getWeatherWidget(), + const SizedBox(width: 35), + getPrayerWidget(), + ], + ), + )), + const SizedBox(height: 20), + Expanded( + flex: 9, + child: dataContent(appProvider: appProvider), + ), + ], + ); + } + + Widget getRSSFeedWidget() { + return Container( + // height: 35, + // decoration: const BoxDecoration( + // color: Color(0x3A1E2326), + // ), + padding: const EdgeInsets.symmetric(horizontal: 10), + child: Marquee( + text: 'Nullam porta dui nec lectus rhoncus sagittis. Cras vitae elit quam. Donec pretium tortor urna, sed fermentum dolor scelerisque vel. Vivamus pretium ut leo eget fermentum.', + style: TextStyle(fontWeight: FontWeight.w500, fontSize: SizeConfig.getHeightMultiplier() * 2), + scrollAxis: Axis.horizontal, + crossAxisAlignment: CrossAxisAlignment.center, + blankSpace: 20.0, + velocity: 100.0, + pauseAfterRound: const Duration(seconds: 1), + startPadding: 10.0, + accelerationDuration: const Duration(seconds: 1), + accelerationCurve: Curves.linear, + decelerationDuration: const Duration(milliseconds: 500), + decelerationCurve: Curves.easeOut, + ), + ); + } + @override Widget build(BuildContext context) { final appProvider = context.watch(); @@ -18,49 +159,51 @@ class MyHomePage extends StatelessWidget { return AppScaffold( appProvider: appProvider, appBar: const AppHeader(), - body: dataContent(appProvider: appProvider), + body: getBody(appProvider), bottomNavigationBar: Container( - color: Colors.grey.withOpacity(0.1), - height: Utils.getHeight(), - width: double.infinity, - child: Row( - crossAxisAlignment: CrossAxisAlignment.center, - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Row( - children: [ - const SizedBox(width: 20), - Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - InkWell( - onTap: () async { - // await context.read().callPatientsAPI(); - }, - child: AppText( - "Powered By", - fontSize: SizeConfig.getWidthMultiplier() * 2.6, - fontFamily: 'Poppins-Medium.ttf', + color: Colors.grey.withOpacity(0.1), + height: Utils.getHeight() * 0.8, + width: double.infinity, + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + const SizedBox(width: 20), + Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + InkWell( + onTap: () async { + await context.read().callPatientsAPI(); + }, + child: AppText( + "Powered By", + fontSize: SizeConfig.getWidthMultiplier() * 2.6, + fontFamily: 'Poppins-Medium.ttf', + ), ), - ), - Text(appProvider.currentDeviceIp, style: TextStyle(fontWeight: FontWeight.w500, fontSize: SizeConfig.getWidthMultiplier() * 2.2)), - ], - ), - const SizedBox(width: 10), - Image.asset( - "assets/images/cloud_logo.png", - height: SizeConfig.getHeightMultiplier() * 4, - ), - ], - ), - ], - ), - ), + Text(appProvider.currentDeviceIp, style: TextStyle(fontWeight: FontWeight.w500, fontSize: SizeConfig.getWidthMultiplier() * 2.2)), + ], + ), + const SizedBox(width: 10), + Image.asset( + "assets/images/cloud_logo.png", + height: SizeConfig.getHeightMultiplier() * 4, + ), + ], + ), + Expanded(child: getRSSFeedWidget()) + ], + )), ); } Widget dataContent({required AppProvider appProvider}) { - // appProvider.voiceCallPatientTicket(appProvider.patientTickets.first); + // if (true) { + // return qamarsBirthdayWidget(); + // } if (appProvider.patientTickets.isEmpty) { // No Patient in Queue return noPatientInQueue(); diff --git a/lib/home/priority_calls_components.dart b/lib/home/priority_calls_components.dart index cee5eba..296d6ec 100644 --- a/lib/home/priority_calls_components.dart +++ b/lib/home/priority_calls_components.dart @@ -159,6 +159,18 @@ Widget noPatientInQueue() { ); } +Widget qamarsBirthdayWidget() { + return Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + AppText("Happy Birthday", fontFamily: 'Poppins-SemiBold.ttf', fontSize: SizeConfig.getWidthMultiplier() * 15), + Center( + child: AppText("Syed Qamar 🎉", fontFamily: 'Poppins-SemiBold.ttf', fontSize: SizeConfig.getWidthMultiplier() * 11), + ), + ], + ); +} + Widget priorityTicketsWithSideList({required List tickets, required CallConfig callConfig}) { final priorityTickets = tickets.sublist(0, 3); final otherTickets = tickets.sublist(3, tickets.length); diff --git a/lib/main.dart b/lib/main.dart index c601b79..eaea716 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -45,7 +45,7 @@ class MyApp extends StatelessWidget { dividerColor: Colors.grey[350], colorScheme: ColorScheme.fromSwatch(primarySwatch: Colors.grey).copyWith(background: const Color.fromRGBO(255, 255, 255, 1)), ), - home: const MyHomePage(), + home: MyHomePage(), debugShowCheckedModeBanner: false, )); }); diff --git a/lib/utils/signalR_utils.dart b/lib/utils/signalR_utils.dart index 5e87e9f..46a7b76 100644 --- a/lib/utils/signalR_utils.dart +++ b/lib/utils/signalR_utils.dart @@ -23,7 +23,6 @@ class SignalRHelper { // String hubBaseURL = "https://vcallapi.hmg.com/PatientCallingHub?IPAddress=10.10.14.20"; // "https://VCallApi.hmg.com/WebRTCHub?source=mobile&username=2001273"; - String msg = "Awaiting Patients Arrival"; HubConnection? connection; startSignalRConnection(String deviceIp, diff --git a/pubspec.lock b/pubspec.lock index ffbeefe..17d4c9f 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -105,6 +105,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.5" + fading_edge_scrollview: + dependency: transitive + description: + name: fading_edge_scrollview + sha256: c25c2231652ce774cc31824d0112f11f653881f43d7f5302c05af11942052031 + url: "https://pub.dev" + source: hosted + version: "3.0.0" fake_async: dependency: transitive description: @@ -256,6 +264,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.2.0" + marquee: + dependency: "direct main" + description: + name: marquee + sha256: "4b5243d2804373bdc25fc93d42c3b402d6ec1f4ee8d0bb72276edd04ae7addb8" + url: "https://pub.dev" + source: hosted + version: "2.2.3" matcher: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index a7e65a1..e3636e9 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -46,6 +46,7 @@ dependencies: #signalr core signalr_core: ^1.1.1 intl: ^0.18.1 + marquee: ^2.2.3