Fixed Bugs

pull/5/head
FaizHashmi 1 month ago
parent 92c56b22a6
commit 4d8a2a1680

@ -2,6 +2,7 @@
package="com.cloud.solutions.mowater.ksa.customer">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />

@ -49,12 +49,13 @@ Future<void> main() async {
await EasyLocalization.ensureInitialized();
if (Platform.isAndroid) {
await Firebase.initializeApp(
options: const FirebaseOptions(
apiKey: 'AIzaSyD1WNNGrbBiCNvCrI31d3DV5AOgToq-Lus',
appId: '1:294636898500:android:e93b7e5d1cc15ae6b0e191',
messagingSenderId: '294636898500',
projectId: 'mowater-2c81a',
));
options: const FirebaseOptions(
apiKey: 'AIzaSyD1WNNGrbBiCNvCrI31d3DV5AOgToq-Lus',
appId: '1:294636898500:android:e93b7e5d1cc15ae6b0e191',
messagingSenderId: '294636898500',
projectId: 'mowater-2c81a',
),
);
} else {
await Firebase.initializeApp();
}

@ -56,6 +56,7 @@ class BranchesFragment extends StatelessWidget {
FiltersList(
filterList: appointmentsVM.branchesCategoriesFilterOptions,
onFilterTapped: (index, selectedFilterId) => appointmentsVM.applyFilterOnBranches(index: index),
scrollController: appointmentsVM.branchesFilterScrollController,
),
],
16.height,

@ -2,6 +2,7 @@ import 'package:car_customer_app/views/dashboard/widgets/drawer_widget.dart';
import 'package:car_customer_app/views/dashboard/widgets/my_services_categories_widget.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:mc_common_app/classes/consts.dart';
import 'package:mc_common_app/config/routes.dart';
import 'package:mc_common_app/extensions/int_extensions.dart';
import 'package:mc_common_app/extensions/string_extensions.dart';
@ -58,6 +59,25 @@ class _HomeFragmentState extends State<HomeFragment> {
}).toList();
}
List<FilterListModel> _addSpecialRequestsService(List<FilterListModel> services) {
// Create Special Requests service at index 0
final specialRequestsService = FilterListModel(
id: -1,
// Special ID to identify this custom service
title: LocaleKeys.specialRequests.tr(),
titleN: LocaleKeys.specialRequests.tr(),
iconUrl: MyAssets.icRequests,
// Same icon as bottom navbar
description: '',
descriptionN: '',
isCustom: false,
isSelected: false,
);
// Insert at index 0
return [specialRequestsService, ...services];
}
Widget _buildServicesHeader() {
if (_isSearchingServices) {
return Padding(
@ -207,8 +227,11 @@ class _HomeFragmentState extends State<HomeFragment> {
}
// Show actual data when services are available
if (appointmentVM.branchesCategoriesFilterOptions.isNotEmpty) {
// Add Special Requests service at index 0
final servicesWithSpecialRequests = _addSpecialRequestsService(appointmentVM.branchesCategoriesFilterOptions);
// Filter services based on search query
final filteredServices = _filterServices(appointmentVM.branchesCategoriesFilterOptions);
final filteredServices = _filterServices(servicesWithSpecialRequests);
return Column(
children: [

@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:mc_common_app/classes/app_state.dart';
import 'package:mc_common_app/classes/consts.dart';
import 'package:mc_common_app/extensions/int_extensions.dart';
@ -60,7 +61,11 @@ class MyServicesCategoriesWidget extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
category.isCustom ? category.iconUrl.buildNetworkImage(height: 32, width: 32, fit: BoxFit.fill) : category.iconUrl.buildNetworkImage(height: 32, width: 32, fit: BoxFit.fill),
// Special handling for Special Requests service (displays local SVG icon)
if (category.id == -1)
SvgPicture.asset(category.iconUrl, height: 32, width: 32, fit: BoxFit.fill)
else
category.iconUrl.buildNetworkImage(height: 32, width: 32, fit: BoxFit.fill),
10.height,
Flexible(
child: (isArabic ? category.titleN : category.title).toText(
@ -91,13 +96,20 @@ class MyServicesCategoriesWidget extends StatelessWidget {
],
),
).onPress(() {
final appointmentVM = context.read<AppointmentsVM>();
final dashboardCustomerVM = context.read<DashboardVmCustomer>();
context.read<DashboardVmCustomer>().onNavbarTapped(0);
dashboardCustomerVM.onNavbarTapped(0);
// Use the original index from homeCategories for filtering
int originalIndex = homeCategories.indexOf(category);
appointmentVM.applyFilterOnBranches(index: originalIndex);
// Check if this is the Special Requests service
if (category.id == -1) {
// Navigate to Requests tab (index 4)
dashboardCustomerVM.onNavbarTapped(4);
} else {
// Original behavior for other services
final appointmentVM = context.read<AppointmentsVM>();
dashboardCustomerVM.onNavbarTapped(0);
// Adjust index: subtract 1 because Special Requests was added at index 0
int originalIndex = homeCategories.indexOf(category) - 1;
appointmentVM.applyFilterOnBranches(index: originalIndex);
}
});
},
);

Loading…
Cancel
Save