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}");
|
|
}
|
|
}
|
|
|
|
}
|