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.
 

121 lines
4.0 KiB

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