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(); if (status == PermissionStatus.Granted) { Preferences.Set(SecureStorageData.IsLocationPermitted, true); } else { Preferences.Set(SecureStorageData.IsLocationPermitted, false); } if (Device.RuntimePlatform == Device.Android) { if (DependencyService.Get().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 OnLocationCheck() { var status = await Permissions.CheckStatusAsync(); 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(); if (status == PermissionStatus.Granted) { return status; } if (!Permissions.ShouldShowRationale()) { 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)}"); } }