You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

236 lines
12 KiB

1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
  1. using GMCabsDriverAssistantSolution.Views;
  2. using System;
  3. using System.Collections;
  4. using System.Collections.Generic;
  5. using System.Diagnostics;
  6. using System.Threading.Tasks;
  7. using Microsoft.Maui;
  8. using Microsoft.Maui.Controls;
  9. using GMCabsDriverAssistant.ViewModels;
  10. using GMCabsDriverAssistant.Services;
  11. using GMCabsDriverAssistant.Utils;
  12. using Sentry;
  13. using GMCabsDriverAssistant.Messages;
  14. namespace GMCabsDriverAssistantSolution;
  15. public partial class AppShell : Shell
  16. {
  17. #region Fields
  18. private readonly AppShellViewModel _viewModel;
  19. private string imeiNumber;
  20. private string carNumber;
  21. #endregion
  22. #region Properties
  23. #endregion
  24. #region Constructor
  25. public AppShell()
  26. {
  27. InitializeComponent();
  28. BindingContext = _viewModel = new AppShellViewModel(this);
  29. Task.Run(async () =>
  30. {
  31. string couponsPermission = await SecureStorageData.GetSecureStorage(SecureStorageData.CanViewCoupons);
  32. if (string.IsNullOrEmpty(couponsPermission)) { couponsPermission = "false"; }
  33. string settingsPermission = await SecureStorageData.GetSecureStorage(SecureStorageData.CanViewSettings);
  34. if (string.IsNullOrEmpty(settingsPermission)) { settingsPermission = "false"; }
  35. string homePermission = await SecureStorageData.GetSecureStorage(SecureStorageData.CanViewHome);
  36. if (string.IsNullOrEmpty(homePermission)) { homePermission = "true"; }
  37. _viewModel.IsVisibleDrivingLicenceScan = Preferences.Get(SecureStorageData.CanUpdateLicence, false);
  38. _viewModel.IsVisibleVoucherScan = Preferences.Get(SecureStorageData.CanScanVouchers, false);
  39. _viewModel.IsVisibleRydo = Preferences.Get(SecureStorageData.CanAcceptBookings, false);
  40. _viewModel.IsVisibleCoupons = Preferences.Get(SecureStorageData.CanViewCoupons, true);
  41. _viewModel.IsVisibleSettings = Preferences.Get(SecureStorageData.CanViewSettings, true);
  42. _viewModel.IsCanViewHome = Preferences.Get(SecureStorageData.CanViewHome, false);
  43. _viewModel.DriverName = Preferences.Get(SecureStorageData.DriverName, "");
  44. _viewModel.DriverMobileNumber = Preferences.Get("DriverMobileNumber", "");
  45. });
  46. Routing.RegisterRoute(nameof(LoginPage), typeof(LoginPage));
  47. //Routing.RegisterRoute(nameof(NewPage1), typeof(NewPage1));
  48. Routing.RegisterRoute(nameof(HomePage), typeof(HomePage));
  49. Routing.RegisterRoute(nameof(AdminPasswordPage), typeof(AdminPasswordPage));
  50. Routing.RegisterRoute(nameof(TaxiInstallPage), typeof(TaxiInstallPage));
  51. Routing.RegisterRoute(nameof(InstallCompletePage), typeof(InstallCompletePage));
  52. Routing.RegisterRoute(nameof(UserRegistrationGenerateOtpPage), typeof(UserRegistrationGenerateOtpPage));
  53. Routing.RegisterRoute(nameof(UserSignUpPage), typeof(UserSignUpPage));
  54. Routing.RegisterRoute(nameof(UserRegistrationVerifyOtpPage), typeof(UserRegistrationVerifyOtpPage));
  55. Routing.RegisterRoute(nameof(UserRegistrationUpdateDriverPinPage), typeof(UserRegistrationUpdateDriverPinPage));
  56. Routing.RegisterRoute(nameof(CouponsPage), typeof(CouponsPage));
  57. Routing.RegisterRoute(nameof(CouponsV2Page), typeof(CouponsV2Page));
  58. Routing.RegisterRoute(nameof(ScanDrivingLicencePage), typeof(ScanDrivingLicencePage));
  59. Routing.RegisterRoute(nameof(ScanVoucherPage), typeof(ScanVoucherPage));
  60. Routing.RegisterRoute(nameof(SettingsPage), typeof(SettingsPage));
  61. Routing.RegisterRoute(nameof(BookingsPage), typeof(BookingsPage));
  62. Routing.RegisterRoute(nameof(BookingDetailsPage), typeof(BookingDetailsPage));
  63. Routing.RegisterRoute(nameof(AcceptBookingPage), typeof(AcceptBookingPage));
  64. Routing.RegisterRoute(nameof(CancelledBookingPage), typeof(CancelledBookingPage));
  65. Routing.RegisterRoute(nameof(AcceptedFutureBookingsPage), typeof(AcceptedFutureBookingsPage));
  66. Routing.RegisterRoute(nameof(AcceptedFutureBookingDetailPage), typeof(AcceptedFutureBookingDetailPage));
  67. Routing.RegisterRoute(nameof(VoucherScanHistory), typeof(VoucherScanHistory));
  68. //Routing.RegisterRoute(nameof(BookingDetailsTabletPage), typeof(BookingDetailsTabletPage));
  69. //Routing.RegisterRoute(nameof(OnTripTabletPage), typeof(OnTripTabletPage));
  70. //Routing.RegisterRoute(nameof(BookingOnWayTabletPage), typeof(BookingOnWayTabletPage));
  71. Routing.RegisterRoute(nameof(PassgerCollectedPage), typeof(PassgerCollectedPage));
  72. //Routing.RegisterRoute(nameof(PassengerDroppedWithNoPaymentMethodIdNoFixedFareTablet), typeof(PassengerDroppedWithNoPaymentMethodIdNoFixedFareTablet));
  73. //Routing.RegisterRoute(nameof(PassengerDroppedWithNoPaymentMethodIdAndFixedFareTablet), typeof(PassengerDroppedWithNoPaymentMethodIdAndFixedFareTablet));
  74. //Routing.RegisterRoute(nameof(PassengerDroppedWithPaymentMethodIdAndFixedFareTablet), typeof(PassengerDroppedWithPaymentMethodIdAndFixedFareTablet));
  75. //Routing.RegisterRoute(nameof(PassengerDroppedWithPaymentMethodIdNoFixedFareTablet), typeof(PassengerDroppedWithPaymentMethodIdNoFixedFareTablet));
  76. //Routing.RegisterRoute(nameof(BookingCompletedTabletPage), typeof(BookingCompletedTabletPage));
  77. //Routing.RegisterRoute(nameof(NavigateToHomePageTablet), typeof(NavigateToHomePageTablet));
  78. //Routing.RegisterRoute(nameof(CancelledBookingTabletPage), typeof(CancelledBookingTabletPage));
  79. Routing.RegisterRoute(nameof(ImeiNumberInstallPage), typeof(ImeiNumberInstallPage));
  80. //Routing.RegisterRoute(nameof(JobHistoryTabletPage), typeof(JobHistoryTabletPage));
  81. //Routing.RegisterRoute(nameof(MyAccountTabletPage), typeof(MyAccountTabletPage));
  82. //Routing.RegisterRoute(nameof(MyShiftsTabletPage), typeof(MyShiftsTabletPage));
  83. //Routing.RegisterRoute(nameof(AcceptedFutureBookingsTabletPage), typeof(AcceptedFutureBookingsTabletPage));
  84. //Routing.RegisterRoute(nameof(AcceptedFutureBookingTabletDetailPage), typeof(AcceptedFutureBookingTabletDetailPage));
  85. //if (!Preferences.ContainsKey(Constants.VoucherScanUseFrontCamera))
  86. //{
  87. // Preferences.Set(Constants.VoucherScanUseFrontCamera, true);
  88. //}
  89. imeiNumber = Preferences.Get("imeiNumber", null);
  90. carNumber = Preferences.Get("carNumber", null);
  91. var isTablet = Preferences.Get("IsTablet", false);
  92. //homePageTabletFlyout.IsVisible = true;
  93. //homePageFlyout.IsVisible = true;
  94. if (isTablet && !string.IsNullOrWhiteSpace(imeiNumber) && !string.IsNullOrWhiteSpace(carNumber))
  95. {
  96. ICollection<ResourceDictionary> collection = Application.Current.Resources.MergedDictionaries;
  97. if (collection != null)
  98. {
  99. collection.Clear();
  100. //collection.Add(new TabletLayoutStyle());
  101. }
  102. }
  103. //if (Device.RuntimePlatform == Device.Android && isTablet && !string.IsNullOrWhiteSpace(imeiNumber) && !string.IsNullOrWhiteSpace(carNumber))
  104. //{
  105. // homePageTabletFlyout.IsVisible = true;
  106. // homePageFlyout.IsVisible = false;
  107. // _viewModel.IsVisibleCoupons = false;
  108. // _viewModel.IsVisibleSettings = false;
  109. // _viewModel.IsCanViewHome = false;
  110. // _viewModel.IsVisibleJobHistory = true;
  111. // _viewModel.IsVisibleRydo = true;
  112. // _viewModel.IsVisibleMyShifts = true;
  113. // _viewModel.IsVisibleMyAccount = true;
  114. //}
  115. //else
  116. //{
  117. // _viewModel.IsVisibleCoupons = true;
  118. // _viewModel.IsVisibleSettings = true;
  119. // homePageTabletFlyout.IsVisible = false;
  120. // homePageFlyout.IsVisible = true;
  121. // _viewModel.IsVisibleJobHistory = false;
  122. // _viewModel.IsVisibleMyShifts = false;
  123. // _viewModel.IsVisibleMyAccount = false;
  124. //}
  125. }
  126. #endregion
  127. #region Methods
  128. [Obsolete]
  129. private async void LogoutClicked(object sender, EventArgs e)
  130. {
  131. DispatchAppComponentService.SetToInitialProperties();
  132. var imeiNumber = Preferences.Get("imeiNumber", null);
  133. var carNumber = Preferences.Get("carNumber", null);
  134. var isTablet = Preferences.Get("IsTablet", false);
  135. //if (!isTablet && Device.RuntimePlatform != Device.iOS)
  136. //{
  137. // Preferences.Set("isForeground", "NO");
  138. // DependencyService.Resolve<IForegroundService>().StopMyForegroundService();
  139. //}
  140. //else if (Device.RuntimePlatform == Device.iOS)
  141. //{
  142. // var message = new StopServiceMessage();
  143. // MessagingCenter.Send(message, "ServiceStopped");
  144. //}
  145. var token = Preferences.Get(SecureStorageData.Token, "");
  146. Debug.WriteLine("TOKEN-------------", token);
  147. var lastLatitude = Convert.ToDouble(Preferences.Get("lastLat", "0"));
  148. var lastLongitude = Convert.ToDouble(Preferences.Get("lastLng", "0"));
  149. GMCabsDriverService gmCabsDriverService = new GMCabsDriverService();
  150. await gmCabsDriverService.LogoutDriverApp(token, lastLatitude, lastLongitude);
  151. SecureStorage.RemoveAll();
  152. Preferences.Clear();
  153. Preferences.Set(SecureStorageData.Token, token);
  154. if (!string.IsNullOrWhiteSpace(imeiNumber))
  155. {
  156. Preferences.Set("imeiNumber", imeiNumber);
  157. }
  158. if (!string.IsNullOrWhiteSpace(carNumber))
  159. {
  160. Preferences.Set("carNumber", carNumber);
  161. }
  162. Preferences.Set("IsTablet", isTablet);
  163. SentrySdk.ConfigureScope(scope =>
  164. {
  165. scope.User = null;
  166. });
  167. await Current.GoToAsync($"//{nameof(LoginPage)}");
  168. }
  169. private async void Coupons_Clicked(object sender, EventArgs e)
  170. {
  171. await Current.GoToAsync($"//{nameof(HomePage)}/{nameof(CouponsPage)}");
  172. await Current.GoToAsync($"//{nameof(HomePage)}/{nameof(CouponsV2Page)}");
  173. }
  174. private async void Rydo_Clicked(object sender, EventArgs e)
  175. {
  176. //if (!string.IsNullOrEmpty(imeiNumber) && !string.IsNullOrEmpty(carNumber))
  177. //{
  178. // await Current.GoToAsync($"//{nameof(HomePageTablet)}/{nameof(AcceptedFutureBookingsTabletPage)}");
  179. //}
  180. //else
  181. //{
  182. await Current.GoToAsync($"//{nameof(HomePage)}/{nameof(AcceptedFutureBookingsPage)}");
  183. //}
  184. }
  185. private async void ScanDrivingLicence_Clicked(object sender, EventArgs e)
  186. {
  187. await Current.GoToAsync($"//{nameof(HomePage)}/{nameof(ScanDrivingLicencePage)}");
  188. }
  189. private async void ScanVoucher_Clicked(object sender, EventArgs e)
  190. {
  191. await Current.GoToAsync($"//{nameof(HomePage)}/{nameof(ScanVoucherPage)}");
  192. }
  193. private async void Settings_Clicked(object sender, EventArgs e)
  194. {
  195. await Current.GoToAsync($"//{nameof(HomePage)}/{nameof(SettingsPage)}");
  196. }
  197. //private async void JobHistory_Clicked(object sender, EventArgs e)
  198. //{
  199. // await Current.GoToAsync($"//{nameof(HomePageTablet)}/{nameof(JobHistoryTabletPage)}");
  200. //}
  201. //private async void MyAccount_Clicked(object sender, EventArgs e)
  202. //{
  203. // if (!string.IsNullOrEmpty(imeiNumber) && !string.IsNullOrEmpty(carNumber))
  204. // {
  205. // await Current.GoToAsync($"//{nameof(HomePageTablet)}/{nameof(MyAccountTabletPage)}");
  206. // }
  207. // else
  208. // {
  209. // await Current.GoToAsync($"//{nameof(HomePage)}/{nameof(MyAccountTabletPage)}");
  210. // }
  211. //}
  212. //private async void MyShifts_Clicked(object sender, EventArgs e)
  213. //{
  214. // if (!string.IsNullOrEmpty(imeiNumber) && !string.IsNullOrEmpty(carNumber))
  215. // {
  216. // await Current.GoToAsync($"//{nameof(HomePageTablet)}/{nameof(MyShiftsTabletPage)}");
  217. // }
  218. // else
  219. // {
  220. // await Current.GoToAsync($"//{nameof(HomePage)}/{nameof(MyShiftsTabletPage)}");
  221. // }
  222. //}
  223. #endregion
  224. }