Rumahjo-Android-APP/lib/app/routes.dart

252 lines
10 KiB
Dart
Raw Normal View History

2024-09-07 00:58:50 +00:00
import 'package:ebroker/Ui/screens/Dashboard/dashbord.dart';
import 'package:ebroker/Ui/screens/Personalized/personalized_property_screen.dart';
import 'package:ebroker/Ui/screens/home/view_most_liked_properties.dart';
import 'package:ebroker/Ui/screens/home/view_nearby_properties.dart';
import 'package:ebroker/Ui/screens/map/choose_location_map.dart';
import 'package:ebroker/Ui/screens/map/property_map_screen.dart';
import 'package:ebroker/Ui/screens/project/create/add_project_details.dart';
import 'package:ebroker/Ui/screens/project/create/add_project_meta_details.dart';
import 'package:ebroker/Ui/screens/project/create/manage_floor_plans.dart';
import 'package:ebroker/Ui/screens/project/view/project_details_screen.dart';
import 'package:ebroker/Ui/screens/project/view/project_list_screen.dart';
import 'package:ebroker/Ui/screens/proprties/AddProperyScreens/select_outdoor_facility.dart';
import 'package:ebroker/data/cubits/project/all_projects_screen.dart';
import 'package:ebroker/exports/main_export.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import '../Ui/screens/Advertisement/create_advertisement_screen.dart';
import '../Ui/screens/Advertisement/my_advertisment_screen.dart';
import '../Ui/screens/Articles/article_details.dart';
import '../Ui/screens/Articles/articles_screen.dart';
import '../Ui/screens/Converter/area_converter.dart';
import '../Ui/screens/auth/login_screen.dart';
import '../Ui/screens/favorites_screen.dart';
import '../Ui/screens/filter_screen.dart';
import '../Ui/screens/home/category_list.dart';
import '../Ui/screens/home/change_language_screen.dart';
import '../Ui/screens/home/search_screen.dart';
import '../Ui/screens/home/view_most_viewed_properties.dart';
import '../Ui/screens/home/view_promoted_properties.dart';
import '../Ui/screens/main_activity.dart';
import '../Ui/screens/onboarding/onboarding_screen.dart';
import '../Ui/screens/proprties/AddProperyScreens/add_property_details.dart';
import '../Ui/screens/proprties/AddProperyScreens/select_type_of_property.dart';
import '../Ui/screens/proprties/AddProperyScreens/set_property_parameters.dart';
import '../Ui/screens/proprties/properties_list.dart';
import '../Ui/screens/proprties/property_details.dart';
import '../Ui/screens/settings/contact_us.dart';
import '../Ui/screens/settings/notification_detail.dart';
import '../Ui/screens/settings/notifications.dart';
import '../Ui/screens/settings/profile_setting.dart';
import '../Ui/screens/splash_screen.dart';
import '../Ui/screens/subscription/packages_list.dart';
import '../Ui/screens/subscription/subscribe_screen.dart';
import '../Ui/screens/subscription/transaction_history_screen.dart';
import '../Ui/screens/userprofile/edit_profile.dart';
import '../Ui/screens/widgets/AnimatedRoutes/blur_page_route.dart';
import '../Ui/screens/widgets/maintenance_mode.dart';
import '../sandBox/playground.dart';
import '../utils/DeepLink/nativeDeepLinkManager.dart';
import '../utils/ui_utils.dart';
class Routes {
//private constructor
Routes._();
static const splash = 'splash';
static const onboarding = 'onboarding';
static const login = 'login';
static const completeProfile = 'complete_profile';
static const main = 'main';
static const home = 'Home';
static const addProperty = 'addProperty';
static const waitingScreen = 'waitingScreen';
static const categories = 'Categories';
static const addresses = 'address';
static const chooseAdrs = 'chooseAddress';
static const propertiesList = 'propertiesList';
static const propertyDetails = 'PropertyDetails';
static const contactUs = 'ContactUs';
static const profileSettings = 'profileSettings';
static const myEnquiry = 'MyEnquiry';
static const filterScreen = 'filterScreen';
static const notificationPage = 'notificationpage';
static const notificationDetailPage = 'notificationdetailpage';
static const addPropertyScreenRoute = 'addPropertyScreenRoute';
static const articlesScreenRoute = 'articlesScreenRoute';
static const subscriptionPackageListRoute = 'subscriptionPackageListRoute';
static const subscriptionScreen = 'subscriptionScreen';
static const maintenanceMode = '/maintenanceMode';
static const favoritesScreen = '/favoritescreen';
static const createAdvertismentScreenRoute = '/createAdvertisment';
static const promotedPropertiesScreen = '/promotedPropertiesScreen';
static const mostLikedPropertiesScreen = '/mostLikedPropertiesScreen';
static const mostViewedPropertiesScreen = '/mostViewedPropertiesScreen';
static const articleDetailsScreenRoute = '/articleDetailsScreenRoute';
static const areaConvertorScreen = '/areaCalculatorScreen';
static const languageListScreenRoute = '/languageListScreenRoute';
static const searchScreenRoute = '/searchScreenRoute';
static const chooseLocaitonMap = '/chooseLocationMap';
static const propertyMapScreen = '/propertyMap';
static const dashboard = '/dashboard';
static const myAdvertisment = '/myAdvertisment';
static const transactionHistory = '/transactionHistory';
static const nearbyAllProperties = '/nearbyAllProperties';
static const personalizedPropertyScreen = '/personalizedPropertyScreen';
static const allProjectsScreen = '/allProjectsScreen';
///Project section routes
static const String addProjectDetails = "/addProjectDetails";
static const String projectMetaDataScreens = "/projectMetaDataScreens";
static const String manageFloorPlansScreen = "/manageFloorPlansScreen";
///Add property screens
static const selectPropertyTypeScreen = '/selectPropertyType';
static const addPropertyDetailsScreen = '/addPropertyDetailsScreen';
static const setPropertyParametersScreen = '/setPropertyParametersScreen';
static const selectOutdoorFacility = '/selectOutdoorFacility';
///View project
static const projectDetailsScreen = '/projectDetailsScreen';
static const projectListScreen = '/projectListScreen';
//Sandbox[test]
static const playground = 'playground';
static String currentRoute = splash;
static String previousCustomerRoute = splash;
static Route<dynamic>? onGenerateRouted(RouteSettings routeSettings) {
previousCustomerRoute = currentRoute;
currentRoute = routeSettings.name ?? "";
///This is to prevent infinity loading while login browser
if (routeSettings.name!.contains("/link?")) {
return null;
}
switch (routeSettings.name) {
case "":
return null;
case splash:
return BlurredRouter(builder: ((context) => const SplashScreen()));
case onboarding:
return CupertinoPageRoute(
builder: ((context) => const OnboardingScreen()));
case main:
return MainActivity.route(routeSettings);
case login:
return LoginScreen.route(routeSettings);
case completeProfile:
return UserProfileScreen.route(routeSettings);
case categories:
return CategoryList.route(routeSettings);
case maintenanceMode:
return MaintenanceMode.route(routeSettings);
case languageListScreenRoute:
return LanguagesListScreen.route(routeSettings);
case propertiesList:
return PropertiesList.route(routeSettings);
case propertyDetails:
return PropertyDetails.route(routeSettings);
case contactUs:
return ContactUs.route(routeSettings);
case profileSettings:
return ProfileSettings.route(routeSettings);
case filterScreen:
return FilterScreen.route(routeSettings);
case notificationPage:
return Notifications.route(routeSettings);
case notificationDetailPage:
return NotificationDetail.route(routeSettings);
case chooseLocaitonMap:
return ChooseLocationMap.route(routeSettings);
case articlesScreenRoute:
return ArticlesScreen.route(routeSettings);
case mostLikedPropertiesScreen:
return MostLikedPropertiesScreen.route(routeSettings);
case areaConvertorScreen:
return AreaCalculator.route(routeSettings);
case articleDetailsScreenRoute:
return ArticleDetails.route(routeSettings);
case subscriptionPackageListRoute:
return SubscriptionPackageListScreen.route(routeSettings);
case subscriptionScreen:
return SubscriptionScreen.route(routeSettings);
case favoritesScreen:
return FavoritesScreen.route(routeSettings);
case createAdvertismentScreenRoute:
return CreateAdvertisementScreen.route(routeSettings);
case promotedPropertiesScreen:
return PromotedPropertiesScreen.route(routeSettings);
case mostViewedPropertiesScreen:
return MostViewedPropertiesScreen.route(routeSettings);
case selectPropertyTypeScreen:
return SelectPropertyType.route(routeSettings);
case transactionHistory:
return TransactionHistory.route(routeSettings);
case myAdvertisment:
return MyAdvertismentScreen.route(routeSettings);
case personalizedPropertyScreen:
return PersonalizedPropertyScreen.route(routeSettings);
case dashboard:
return DashboardScreen.route(routeSettings);
case addPropertyDetailsScreen:
return AddPropertyDetails.route(routeSettings);
case setPropertyParametersScreen:
return SetProeprtyParametersScreen.route(routeSettings);
case searchScreenRoute:
return SearchScreen.route(routeSettings);
case propertyMapScreen:
return PropertyMapScreen.route(routeSettings);
case nearbyAllProperties:
return NearbyAllPropertiesScreen.route(routeSettings);
case selectOutdoorFacility:
return SelectOutdoorFacility.route(routeSettings);
case addProjectDetails:
return AddProjectDetails.route(routeSettings);
case projectMetaDataScreens:
return ProjectMetaDetails.route(routeSettings);
case projectDetailsScreen:
return ProjectDetailsScreen.route(routeSettings);
case manageFloorPlansScreen:
return ManageFloorPlansScreen.route(routeSettings);
case projectListScreen:
return ProjectListScreen.route(routeSettings);
case allProjectsScreen:
return AllProjectsScreen.route(routeSettings);
case playground:
return PlayGround.route(routeSettings);
default:
if (routeSettings.name!.contains(AppSettings.shareNavigationWebUrl)) {
return NativeLinkWidget.render(routeSettings);
}
return BlurredRouter(
builder: ((context) => Scaffold(
body: Center(
child: Text(
UiUtils.translate(context, "pageNotFoundErrorMsg"),
),
),
)),
);
}
}
}