using CommunityToolkit.Maui.Views;
|
|
using GMCabsDriverAssistant.Services;
|
|
using GMCabsDriverAssistant.Utils;
|
|
|
|
namespace GMCabsDriverAssistantSolution.Views;
|
|
|
|
[XamlCompilation(XamlCompilationOptions.Compile)]
|
|
public partial class AppPermissiontSetDialogPage : Popup
|
|
{
|
|
#region Fields
|
|
bool isLocationPermitted, isBatteryOptimizationDisabled;
|
|
string flag;
|
|
#endregion
|
|
#region Constructor
|
|
public AppPermissiontSetDialogPage(Page page, string flag)
|
|
{
|
|
InitializeComponent();
|
|
this.flag = flag;
|
|
isLocationPermitted = Preferences.Get(SecureStorageData.IsLocationPermitted, false);
|
|
isBatteryOptimizationDisabled = Preferences.Get(SecureStorageData.IsBatteryOptimizationDisabled, false);
|
|
PermissionAllocationLayout.IsVisible = true;
|
|
PermissionLayout.IsVisible = false;
|
|
LocationWarningLayout.IsVisible = false;
|
|
}
|
|
#endregion
|
|
|
|
#region Events
|
|
|
|
private async void Ignore_Clicked(object sender, EventArgs e)
|
|
{
|
|
if (isLocationPermitted)
|
|
{
|
|
if (flag == Constant.FROM_PERMISSION_PAGE)
|
|
{
|
|
//Dismiss(null);
|
|
Close();
|
|
await ShowSplashScreen();
|
|
}
|
|
else
|
|
{
|
|
//Dismiss(null);
|
|
Close();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (LocationWarningLayout.IsVisible)
|
|
{
|
|
if (flag == Constant.FROM_PERMISSION_PAGE)
|
|
{
|
|
//Dismiss(null);
|
|
Close();
|
|
await ShowSplashScreen();
|
|
}
|
|
else
|
|
{
|
|
//Dismiss(null);
|
|
Close();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
PermissionAllocationLayout.IsVisible = false;
|
|
PermissionLayout.IsVisible = false;
|
|
LocationWarningLayout.IsVisible = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
[Obsolete]
|
|
private void Permission_Clicked(object sender, EventArgs e)
|
|
{
|
|
PermissionAllocationLayout.IsVisible = false;
|
|
PermissionLayout.IsVisible = true;
|
|
LocationWarningLayout.IsVisible = false;
|
|
if (Device.RuntimePlatform == Device.iOS)
|
|
{
|
|
BatteyOptimisedLayout.IsVisible = false;
|
|
}
|
|
else
|
|
{
|
|
if (isLocationPermitted)
|
|
{
|
|
PermissionLayout.IsVisible = true;
|
|
LocationLayout.IsVisible = false;
|
|
}
|
|
if (isBatteryOptimizationDisabled)
|
|
{
|
|
PermissionLayout.IsVisible = true;
|
|
BatteyOptimisedLayout.IsVisible = false;
|
|
}
|
|
}
|
|
}
|
|
|
|
private async void Location_Clicked(object sender, EventArgs e)
|
|
{
|
|
//Dismiss(null);
|
|
Close();
|
|
await Permissions.RequestAsync<Permissions.LocationAlways>();
|
|
var status = await OnLocationCheck();
|
|
}
|
|
|
|
private void Batteryoptimisation_Clicked(object sender, EventArgs e)
|
|
{
|
|
//Dismiss(null);
|
|
Close();
|
|
if (!DependencyService.Get<IBatteryInfo>().CheckIsIgnoringBatteryOptimizations())
|
|
{
|
|
DependencyService.Get<IBatteryInfo>().StartSetting();
|
|
}
|
|
}
|
|
|
|
private async void ChangeLocation_Clicked(object sender, EventArgs e)
|
|
{
|
|
//Dismiss(null);
|
|
Close();
|
|
await Permissions.RequestAsync<Permissions.LocationAlways>();
|
|
var status = await OnLocationCheck();
|
|
}
|
|
#endregion
|
|
|
|
#region Methods
|
|
private async Task ShowSplashScreen()
|
|
{
|
|
await Shell.Current.GoToAsync($"//{nameof(SplashPage)}");
|
|
}
|
|
|
|
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) || DeviceInfo.Platform == DevicePlatform.iOS)
|
|
{
|
|
AppInfo.ShowSettingsUI();
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
|
|
}
|
|
return status;
|
|
}
|
|
#endregion
|
|
}
|