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.
 

220 lines
9.3 KiB

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