|
|
@ -1,11 +1,149 @@ |
|
|
|
using CommunityToolkit.Maui.Views; |
|
|
|
using GMCabsDriverAssistant.Services; |
|
|
|
using GMCabsDriverAssistant.Utils; |
|
|
|
|
|
|
|
namespace GMCabsDriverAssistantSolution.Views; |
|
|
|
|
|
|
|
[XamlCompilation(XamlCompilationOptions.Compile)] |
|
|
|
public partial class AppPermissiontSetDialogPage : Popup |
|
|
|
{ |
|
|
|
public AppPermissiontSetDialogPage(Page page, string flag) |
|
|
|
{ |
|
|
|
InitializeComponent(); |
|
|
|
} |
|
|
|
#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
|
|
|
|
} |