pull/120/head
haroon amjad 1 month ago
parent f1004f39af
commit 3060c57201

@ -26,8 +26,8 @@ android {
applicationId = "com.ejada.hmg" applicationId = "com.ejada.hmg"
// minSdk = 24 // minSdk = 24
minSdk = 26 minSdk = 26
targetSdk = 35 targetSdk = 36
compileSdk = 35 compileSdk = 36
// targetSdk = flutter.targetSdkVersion // targetSdk = flutter.targetSdkVersion
versionCode = flutter.versionCode versionCode = flutter.versionCode
versionName = flutter.versionName versionName = flutter.versionName

@ -18,7 +18,8 @@ pluginManagement {
plugins { plugins {
id("dev.flutter.flutter-plugin-loader") version "1.0.0" id("dev.flutter.flutter-plugin-loader") version "1.0.0"
id("com.android.application") version "8.7.3" apply false // id("com.android.application") version "8.7.3" apply false
id("com.android.application") version "8.9.3" apply false
id("org.jetbrains.kotlin.android") version "2.1.0" apply false id("org.jetbrains.kotlin.android") version "2.1.0" apply false
} }

@ -703,7 +703,7 @@ var GET_PRESCRIPTION_INSTRUCTIONS_PDF = 'Services/ChatBot_Service.svc/REST/Chatb
class ApiConsts { class ApiConsts {
static const maxSmallScreen = 660; static const maxSmallScreen = 660;
static AppEnvironmentTypeEnum appEnvironmentType = AppEnvironmentTypeEnum.uat; static AppEnvironmentTypeEnum appEnvironmentType = AppEnvironmentTypeEnum.prod;
// static String baseUrl = 'https://uat.hmgwebservices.com/'; // HIS API URL UAT // static String baseUrl = 'https://uat.hmgwebservices.com/'; // HIS API URL UAT

@ -27,7 +27,7 @@ extension ResponsiveExtension on num {
double clamp; double clamp;
if (SizeUtils.deviceType == DeviceType.tablet || _isFoldable) { if (SizeUtils.deviceType == DeviceType.tablet || _isFoldable) {
// More conservative scaling for tablets and foldables // More conservative scaling for tablets and foldables
clamp = (aspectRatio > 1.5 || aspectRatio < 0.67) ? 1.4 : 1.1; clamp = (aspectRatio > 1.5 || aspectRatio < 0.67) ? 1.6 : 1.4;
} else { } else {
// Original logic for phones // Original logic for phones
clamp = (aspectRatio > 1.3 || aspectRatio < 0.77) ? 1.6 : 1.2; clamp = (aspectRatio > 1.3 || aspectRatio < 0.77) ? 1.6 : 1.2;
@ -68,7 +68,7 @@ extension ResponsiveExtension on num {
double get r { double get r {
double baseScale = (this * _screenWidth) / figmaDesignWidth; double baseScale = (this * _screenWidth) / figmaDesignWidth;
if (_isFoldable) { if (_isFoldable || isTablet) {
// Use the same logic as enhanced width for foldables // Use the same logic as enhanced width for foldables
double scale = _screenWidth / figmaDesignWidth; double scale = _screenWidth / figmaDesignWidth;
scale = scale.clamp(0.8, 1.4); scale = scale.clamp(0.8, 1.4);

@ -129,7 +129,7 @@ class AppointmentCard extends StatelessWidget {
children: [ children: [
Image.network( Image.network(
isLoading ? 'https://hmgwebservices.com/Images/MobileImages/DUBAI/unkown_female.png' : patientAppointmentHistoryResponseModel.doctorImageURL!, isLoading ? 'https://hmgwebservices.com/Images/MobileImages/DUBAI/unkown_female.png' : patientAppointmentHistoryResponseModel.doctorImageURL!,
width: 63.w, width: 63.h,
height: 63.h, height: 63.h,
fit: BoxFit.cover, fit: BoxFit.cover,
).circle(100.r).toShimmer2(isShow: isLoading), ).circle(100.r).toShimmer2(isShow: isLoading),
@ -238,7 +238,8 @@ class AppointmentCard extends StatelessWidget {
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
borderRadius: 12.r, borderRadius: 12.r,
padding: EdgeInsets.symmetric(horizontal: 10.w), padding: EdgeInsets.symmetric(horizontal: 10.w),
height: isTablet || isFoldable ? 46.h : 40.h, // height: isTablet || isFoldable ? 46.h : 40.h,
height: 40.h,
icon: AppAssets.checkmark_icon, icon: AppAssets.checkmark_icon,
iconColor: AppColors.primaryRedColor, iconColor: AppColors.primaryRedColor,
iconSize: 16.h, iconSize: 16.h,
@ -264,7 +265,7 @@ class AppointmentCard extends StatelessWidget {
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
borderRadius: 12.r, borderRadius: 12.r,
padding: EdgeInsets.symmetric(horizontal: 10.w), padding: EdgeInsets.symmetric(horizontal: 10.w),
height: isTablet || isFoldable ? 46.h : 40.h, height: 40.h,
icon: AppointmentType.getNextActionIcon(patientAppointmentHistoryResponseModel.nextAction), icon: AppointmentType.getNextActionIcon(patientAppointmentHistoryResponseModel.nextAction),
iconColor: AppointmentType.getNextActionTextColor(patientAppointmentHistoryResponseModel.nextAction), iconColor: AppointmentType.getNextActionTextColor(patientAppointmentHistoryResponseModel.nextAction),
iconSize: 15.h, iconSize: 15.h,
@ -336,7 +337,8 @@ class AppointmentCard extends StatelessWidget {
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
borderRadius: 12.r, borderRadius: 12.r,
padding: EdgeInsets.symmetric(horizontal: 10.w), padding: EdgeInsets.symmetric(horizontal: 10.w),
height: isTablet || isFoldable ? 46.h : 40.h, // height: isTablet || isFoldable ? 46.h : 40.h,
height: 40.h,
icon: AppAssets.ask_doctor_icon, icon: AppAssets.ask_doctor_icon,
iconColor: AppColors.primaryRedColor, iconColor: AppColors.primaryRedColor,
iconSize: 16.h, iconSize: 16.h,
@ -353,7 +355,7 @@ class AppointmentCard extends StatelessWidget {
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
borderRadius: 12.r, borderRadius: 12.r,
padding: EdgeInsets.symmetric(horizontal: 10.w), padding: EdgeInsets.symmetric(horizontal: 10.w),
height: isTablet || isFoldable ? 46.h : 40.h, height: 40.h,
icon: AppAssets.rebook_appointment_icon, icon: AppAssets.rebook_appointment_icon,
iconColor: AppColors.blackColor, iconColor: AppColors.blackColor,
iconSize: 16.h, iconSize: 16.h,

@ -47,7 +47,7 @@ class AppointmentDoctorCard extends StatelessWidget {
children: [ children: [
Image.network( Image.network(
patientAppointmentHistoryResponseModel.doctorImageURL!, patientAppointmentHistoryResponseModel.doctorImageURL!,
width: 63.w, width: 63.h,
height: 63.h, height: 63.h,
fit: BoxFit.cover, fit: BoxFit.cover,
).circle(100.r), ).circle(100.r),

@ -144,7 +144,7 @@ class _BookAppointmentPageState extends State<BookAppointmentPage> {
children: [ children: [
Image.network( Image.network(
myAppointmentsVM.patientMyDoctorsList[index].doctorImageURL!, myAppointmentsVM.patientMyDoctorsList[index].doctorImageURL!,
width: 64.w, width: 64.h,
height: 64.h, height: 64.h,
fit: BoxFit.cover, fit: BoxFit.cover,
).circle(100).toShimmer2(isShow: false, radius: 50.r), ).circle(100).toShimmer2(isShow: false, radius: 50.r),

@ -349,7 +349,7 @@ class FeedbackPage extends StatelessWidget {
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
borderRadius: 10.r, borderRadius: 10.r,
padding: EdgeInsets.symmetric(horizontal: 10.w), padding: EdgeInsets.symmetric(horizontal: 10.w),
height: isTablet || isFoldable ? 46.h : 40.h, height: 40.h,
icon: AppAssets.file_icon, icon: AppAssets.file_icon,
iconColor: AppColors.primaryRedColor, iconColor: AppColors.primaryRedColor,
iconSize: 16.h, iconSize: 16.h,

@ -179,7 +179,7 @@ class ServicesPage extends StatelessWidget {
SizedBox(height: 16.h), SizedBox(height: 16.h),
GridView.builder( GridView.builder(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 4, // 4 icons per row crossAxisCount: (isFoldable || isTablet) ? 6 : 4, // 4 icons per row
crossAxisSpacing: 12.w, crossAxisSpacing: 12.w,
mainAxisSpacing: 18.h, mainAxisSpacing: 18.h,
childAspectRatio: 0.8, childAspectRatio: 0.8,
@ -342,7 +342,7 @@ class ServicesPage extends StatelessWidget {
SizedBox(height: 16.h), SizedBox(height: 16.h),
GridView.builder( GridView.builder(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 4, // 4 icons per row crossAxisCount:(isFoldable || isTablet) ? 6 : 4, // 4 icons per row
crossAxisSpacing: 12.w, crossAxisSpacing: 12.w,
mainAxisSpacing: 18.h, mainAxisSpacing: 18.h,
childAspectRatio: 0.8, childAspectRatio: 0.8,

@ -478,7 +478,7 @@ class _LandingPageState extends State<LandingPage> {
padding: EdgeInsets.fromLTRB(10.h, 0, 10.h, 0), padding: EdgeInsets.fromLTRB(10.h, 0, 10.h, 0),
icon: AppAssets.add_icon, icon: AppAssets.add_icon,
iconColor: AppColors.primaryRedColor, iconColor: AppColors.primaryRedColor,
height: 46.h, height: 40.h,
), ),
], ],
), ),

@ -173,7 +173,7 @@ class MedicalFileAppointmentCard extends StatelessWidget {
backgroundColor: AppColors.secondaryLightRedColor, backgroundColor: AppColors.secondaryLightRedColor,
borderColor: AppColors.secondaryLightRedColor, borderColor: AppColors.secondaryLightRedColor,
textColor: AppColors.primaryRedColor, textColor: AppColors.primaryRedColor,
fontSize: 14, fontSize: 14.f,
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
borderRadius: 12.r, borderRadius: 12.r,
padding: EdgeInsets.symmetric(horizontal: 10.w), padding: EdgeInsets.symmetric(horizontal: 10.w),

@ -79,7 +79,6 @@ class AppRoutes {
huaweiHealthExample: (context) => HuaweiHealthExample(), huaweiHealthExample: (context) => HuaweiHealthExample(),
// //
zoomCallPage: (context) => CallScreen(),
healthCalculatorsPage: (context) => HealthCalculatorsPage() healthCalculatorsPage: (context) => HealthCalculatorsPage()
}; };

@ -218,7 +218,7 @@ class _SplashScreenState extends State<SplashPage> {
// AppSharedPreferences().setString(APP_LANGUAGE, projectProvider.isArabic ? "ar" : "en"); // AppSharedPreferences().setString(APP_LANGUAGE, projectProvider.isArabic ? "ar" : "en");
// var themeNotifier = Provider.of<ThemeNotifier>(context, listen: false); // var themeNotifier = Provider.of<ThemeNotifier>(context, listen: false);
// themeNotifier.setTheme(defaultTheme(fontName: projectProvider.isArabic ? 'Cairo' : 'Poppins')); // themeNotifier.setTheme(defaultTheme(fontName: projectProvider.isArabic ? 'Cairo' : 'Poppins'));
PushNotificationHandler().init(context); // Asyncronously // PushNotificationHandler().init(context); // Asyncronously
} }
@override @override

Loading…
Cancel
Save