using GMCabsDriverAssistant.Models; using GMCabsDriverAssistant.Services; using GMCabsDriverAssistant.Utils; using GMCabsDriverAssistantSolution.Styles; using Plugin.FirebasePushNotification; using Plugin.SimpleAudioPlayer; using System.Diagnostics; namespace GMCabsDriverAssistantSolution; public partial class App : Application { private static SQLiteDatabaseService database; public static SQLiteDatabaseService Database { get { if (database == null) { string databasePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "AvailableBooking.db3"); database = new SQLiteDatabaseService(databasePath); } return database; } } public App() { InitializeComponent(); dictionary.MergedDictionaries.Add(PhoneLayoutStyle.SharedInstance); MainPage = new AppShell(); } [Obsolete] protected override async void OnStart() { try { ShareConstant.IsInForeground = true; Preferences.Set(SecureStorageData.InitLaunched, ""); CrossFirebasePushNotification.Current.Subscribe("all"); CrossFirebasePushNotification.Current.OnTokenRefresh += (s, e) => { Debug.WriteLine($"Token: {e.Token}"); }; Debug.WriteLine($"TOKEN: {CrossFirebasePushNotification.Current.Token}"); CrossFirebasePushNotification.Current.OnNotificationReceived += (s, e) => { try { Debug.WriteLine("Received"); if (e.Data.ContainsKey("category")) { if (e.Data["category"].ToString().Equals("BookingCancelled")) { Device.BeginInvokeOnMainThread(() => { CancelledBookingResponseDto cancelledBookingResponseDto = new CancelledBookingResponseDto(); cancelledBookingResponseDto.PickUPAddress = e.Data["fromAddress"].ToString(); cancelledBookingResponseDto.DropUpAddress = e.Data["toAddress"].ToString(); MessagingCenter.Send(this, nameof(App), cancelledBookingResponseDto); if (Device.RuntimePlatform == Device.iOS) { if (ShareConstant.IsInForeground) { var player = CrossSimpleAudioPlayer.Current; player.Load("system.wav"); player.Play(); } } }); } else if (e.Data["category"].ToString().Equals("BookingClearAccepted")) { Device.BeginInvokeOnMainThread(() => { MessagingCenter.Send(this, "ClearAcceptance", string.Empty); }); } else if (e.Data["category"].ToString().Equals("CouponRedeemed")) { Device.BeginInvokeOnMainThread(() => { CouponDto coupon = new CouponDto(); coupon.Id = e.Data["couponid"].ToString(); coupon.Status = e.Data["status"].ToString(); MessagingCenter.Send(this, nameof(App), coupon); }); } else if (e.Data["category"].ToString().Equals("NotificationAvailable")) { Device.BeginInvokeOnMainThread(() => { NotificationDto notification = new NotificationDto(); notification.Id = e.Data["id"].ToString(); notification.Subject = e.Data["subject"].ToString(); notification.Body = e.Data["notification_body"].ToString(); MessagingCenter.Send(this, nameof(App), notification); if (Device.RuntimePlatform == Device.iOS) { if (ShareConstant.IsInForeground) { var player = CrossSimpleAudioPlayer.Current; player.Load("system.wav"); player.Play(); } } }); } else if (e.Data["category"].ToString().Equals("IsTabletInstallation")) { Debug.WriteLine($"{e.Data["category"]}"); var istablet = Convert.ToBoolean(e.Data["istabletinstallation"].ToString()); Preferences.Set("IsTablet", istablet); MessagingCenter.Send(this, nameof(App), e.Data["category"].ToString()); } else if (e.Data["category"].ToString().Equals("DriverAlertNotification")) { Device.BeginInvokeOnMainThread(() => { Debug.WriteLine($"{e.Data["category"]}"); MessagingCenter.Send(this, nameof(App), e.Data["category"].ToString()); }); } else if (e.Data["category"].ToString().Equals("CouponAvailable")) { Device.BeginInvokeOnMainThread(() => { Debug.WriteLine($"{e.Data["category"]}"); MessagingCenter.Send(this, nameof(App), e.Data["category"].ToString()); if (Device.RuntimePlatform == Device.iOS) { if (ShareConstant.IsInForeground) { var player = CrossSimpleAudioPlayer.Current; player.Load("system.wav"); player.Play(); } } }); } else if (e.Data["category"].ToString().Equals("BookingAvailable")) { Device.BeginInvokeOnMainThread(() => { Debug.WriteLine($"{e.Data["category"]}"); MessagingCenter.Send(this, nameof(App), e.Data["category"].ToString()); if (Device.RuntimePlatform == Device.iOS) { if (ShareConstant.IsInForeground) { var player = CrossSimpleAudioPlayer.Current; player.Load("newbooking.wav"); player.Play(); } } }); } else { Device.BeginInvokeOnMainThread(() => { Debug.WriteLine($"{e.Data["category"]}"); MessagingCenter.Send(this, nameof(App), e.Data["category"].ToString()); }); } } else if (e.Data.ContainsKey("coupon_category")) { if (e.Data["coupon_category"].ToString().Equals("CouponRedeemed")) { Device.BeginInvokeOnMainThread(() => { MessagingCenter.Send(this, nameof(App), e.Data["coupon_category"].ToString()); }); } } } catch (Exception ex) { } }; } catch (Exception ex) { Debug.WriteLine($"Onstart Error Entry: {ex.StackTrace}"); } } protected override void OnSleep() { try { ShareConstant.IsInForeground = false; } catch (Exception ex) { Debug.WriteLine($"Onsleep Error Entry: {ex.StackTrace}"); } } protected override void OnResume() { try { ShareConstant.IsInForeground = true; } catch (Exception ex) { Debug.WriteLine($"OnResume Error Entry: {ex.StackTrace}"); } } }