using GMCabsDriverAssistant.Services;
|
|
using GMCabsDriverAssistant.Utils;
|
|
|
|
namespace GMCabsDriverAssistantSolution.Views;
|
|
|
|
public partial class PermissionCheckPage : ContentPage
|
|
{
|
|
bool isFirstTime = true;
|
|
|
|
public PermissionCheckPage()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
[Obsolete]
|
|
protected async override void OnAppearing()
|
|
{
|
|
base.OnAppearing();
|
|
isFirstTime = Preferences.Get("isFirstTime", true);
|
|
var status = await Permissions.CheckStatusAsync<Permissions.LocationAlways>();
|
|
if (status == PermissionStatus.Granted)
|
|
{
|
|
Preferences.Set(SecureStorageData.IsLocationPermitted, true);
|
|
}
|
|
else
|
|
{
|
|
Preferences.Set(SecureStorageData.IsLocationPermitted, false);
|
|
}
|
|
if (Device.RuntimePlatform == Device.Android)
|
|
{
|
|
if (DependencyService.Get<IBatteryInfo>().CheckIsIgnoringBatteryOptimizations())
|
|
{
|
|
Preferences.Set(SecureStorageData.IsBatteryOptimizationDisabled, true);
|
|
}
|
|
else
|
|
{
|
|
Preferences.Set(SecureStorageData.IsBatteryOptimizationDisabled, false);
|
|
}
|
|
}
|
|
if ((Preferences.Get(SecureStorageData.IsLocationPermitted, false)) || !string.IsNullOrWhiteSpace(Preferences.Get(SecureStorageData.Token, "")))
|
|
{
|
|
if (Device.RuntimePlatform == Device.Android && Preferences.Get(SecureStorageData.IsBatteryOptimizationDisabled, false))
|
|
{
|
|
await ShowSplashScreen();
|
|
}
|
|
else if (Device.RuntimePlatform == Device.iOS)
|
|
{
|
|
await ShowSplashScreen();
|
|
}
|
|
}
|
|
}
|
|
|
|
public void OnPermissionCheckClicked(object sender, EventArgs e)
|
|
{
|
|
//Navigation.ShowPopup(new AppPermissiontSetDialogPage(this, Constant.FROM_PERMISSION_PAGE));
|
|
/*if (!isFirstTime)
|
|
{
|
|
Navigation.ShowPopup(new LocationNotSetDialogPage(this));
|
|
}
|
|
else
|
|
{
|
|
Preferences.Set("isFirstTime", false);
|
|
var status = await OnLocationCheck();
|
|
if (status == PermissionStatus.Granted)
|
|
{
|
|
await ShowSplashScreen();
|
|
}
|
|
}*/
|
|
}
|
|
public async Task<PermissionStatus> OnLocationCheck()
|
|
{
|
|
|
|
var status = await Permissions.CheckStatusAsync<Permissions.LocationAlways>();
|
|
if (status == PermissionStatus.Granted)
|
|
return status;
|
|
|
|
try
|
|
{
|
|
if (DeviceInfo.Platform == DevicePlatform.Android && int.Parse(DeviceInfo.VersionString) >= 12)
|
|
{
|
|
|
|
|
|
bool answer = await DisplayAlert("Location", "Please allow your location permission from setting Page and Select 'All the time'", "YES", "NO");
|
|
if (answer)
|
|
AppInfo.ShowSettingsUI();
|
|
|
|
}
|
|
else
|
|
{
|
|
if (DeviceInfo.Platform == DevicePlatform.iOS && status == PermissionStatus.Denied)
|
|
{
|
|
// Prompt the user to turn on in settings
|
|
// On iOS once a permission has been denied it may not be requested again from the application
|
|
// Navigation.ShowPopup(new LocationNotSetDialogPage(this));
|
|
return status;
|
|
}
|
|
status = await Permissions.RequestAsync<Permissions.LocationAlways>();
|
|
if (status == PermissionStatus.Granted)
|
|
{
|
|
return status;
|
|
}
|
|
if (!Permissions.ShouldShowRationale<Permissions.LocationAlways>())
|
|
{
|
|
bool answer = await DisplayAlert("Location", "Please allow your location permission from setting Page", "YES", "NO");
|
|
if (answer)
|
|
AppInfo.ShowSettingsUI();
|
|
}
|
|
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
|
|
}
|
|
return status;
|
|
}
|
|
private async Task ShowSplashScreen()
|
|
{
|
|
await Shell.Current.GoToAsync($"//{nameof(SplashPage)}");
|
|
}
|
|
}
|