diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 01e218b..f6118da 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -2,6 +2,7 @@
package="com.cloud.solutions.mowater.ksa.customer">
+
diff --git a/lib/main.dart b/lib/main.dart
index 685d69f..6356eca 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -49,12 +49,13 @@ Future 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();
}
diff --git a/lib/views/dashboard/fragments/branches_fragment.dart b/lib/views/dashboard/fragments/branches_fragment.dart
index e993d2e..05b23dd 100644
--- a/lib/views/dashboard/fragments/branches_fragment.dart
+++ b/lib/views/dashboard/fragments/branches_fragment.dart
@@ -56,6 +56,7 @@ class BranchesFragment extends StatelessWidget {
FiltersList(
filterList: appointmentsVM.branchesCategoriesFilterOptions,
onFilterTapped: (index, selectedFilterId) => appointmentsVM.applyFilterOnBranches(index: index),
+ scrollController: appointmentsVM.branchesFilterScrollController,
),
],
16.height,
diff --git a/lib/views/dashboard/fragments/home_fragment.dart b/lib/views/dashboard/fragments/home_fragment.dart
index c099245..c6d3c6a 100644
--- a/lib/views/dashboard/fragments/home_fragment.dart
+++ b/lib/views/dashboard/fragments/home_fragment.dart
@@ -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 {
}).toList();
}
+ List _addSpecialRequestsService(List 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 {
}
// 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: [
diff --git a/lib/views/dashboard/widgets/my_services_categories_widget.dart b/lib/views/dashboard/widgets/my_services_categories_widget.dart
index f9de4a2..74ea393 100644
--- a/lib/views/dashboard/widgets/my_services_categories_widget.dart
+++ b/lib/views/dashboard/widgets/my_services_categories_widget.dart
@@ -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();
final dashboardCustomerVM = context.read();
- context.read().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();
+ 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);
+ }
});
},
);