App Permission popup Page Implemented
This commit is contained in:
		
							parent
							
								
									33ace30e6b
								
							
						
					
					
						commit
						3bb59d6ae4
					
				| @ -3,11 +3,66 @@ | ||||
|              xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" | ||||
|              x:Class="GMCabsDriverAssistantSolution.Views.AppPermissiontSetDialogPage" | ||||
|              xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit" | ||||
|                Size="300,300"> | ||||
|     <VerticalStackLayout> | ||||
|         <Label  | ||||
|             Text="AppPermissiontSetDialogPage" | ||||
|             VerticalOptions="Center"  | ||||
|             HorizontalOptions="Center" /> | ||||
|     </VerticalStackLayout> | ||||
|              Size="380,380" | ||||
|              Color="Transparent"> | ||||
|     <Frame BackgroundColor="White" CornerRadius="10"> | ||||
|         <StackLayout Orientation="Vertical"> | ||||
|             <StackLayout x:Name="PermissionAllocationLayout" VerticalOptions="StartAndExpand"> | ||||
|                 <Label Text="To get reliable bookings notifications you need to change some settings for the Driver App"  | ||||
|                        VerticalTextAlignment="Center"  | ||||
|                        VerticalOptions="CenterAndExpand"  | ||||
|                        HorizontalOptions="CenterAndExpand"  | ||||
|                        FontSize="20"  | ||||
|                        HorizontalTextAlignment="Center"  | ||||
|                        FontFamily="Bold"/> | ||||
|                 <StackLayout VerticalOptions="EndAndExpand" Margin="10,2,0,0"> | ||||
|                     <Button Text="Change" Clicked="Permission_Clicked" TextColor="White" FontSize="20" /> | ||||
|                 </StackLayout> | ||||
|             </StackLayout> | ||||
|             <StackLayout x:Name="PermissionLayout" VerticalOptions="StartAndExpand" Orientation="Vertical"> | ||||
|                 <StackLayout x:Name="LocationLayout" Orientation="Vertical" Margin="0,-40,0,0"> | ||||
|                     <Label Text="Location Tracking needs to be set to always"  | ||||
|                            VerticalTextAlignment="Center"  | ||||
|                            VerticalOptions="CenterAndExpand"  | ||||
|                            HorizontalOptions="CenterAndExpand"  | ||||
|                            FontSize="20"  | ||||
|                            HorizontalTextAlignment="Center"  | ||||
|                            FontFamily="Bold"/> | ||||
|                     <StackLayout VerticalOptions="EndAndExpand" Margin="10,2,0,0"> | ||||
|                         <Button Text="Change" Clicked="Location_Clicked" TextColor="White" FontSize="20" /> | ||||
|                     </StackLayout> | ||||
|                 </StackLayout> | ||||
|                 <StackLayout x:Name="BatteyOptimisedLayout" Orientation="Vertical" Margin="0,10,0,0"> | ||||
|                     <Label Text="You need to turn off battery optimisation for the Driver App"  | ||||
|                            VerticalTextAlignment="Center"  | ||||
|                            VerticalOptions="CenterAndExpand"  | ||||
|                            HorizontalOptions="CenterAndExpand"  | ||||
|                            FontSize="20"  | ||||
|                            HorizontalTextAlignment="Center"  | ||||
|                            FontFamily="Bold"/> | ||||
|                     <StackLayout VerticalOptions="EndAndExpand" Margin="10,2,0,0"> | ||||
|                         <!--<Button Text="Change" Clicked="Batteryoptimisation_Clicked"  TextColor="White" FontSize="20" />--> | ||||
|                         <Button Text="Change" Clicked="Batteryoptimisation_Clicked" TextColor="White" FontSize="20"></Button> | ||||
|                     </StackLayout> | ||||
|                 </StackLayout> | ||||
| 
 | ||||
|             </StackLayout> | ||||
|             <StackLayout x:Name="LocationWarningLayout" VerticalOptions="StartAndExpand"> | ||||
|                 <Label Text="If you ignore location tracking then bookings will be disabled"  | ||||
|                        VerticalTextAlignment="Center"  | ||||
|                        VerticalOptions="CenterAndExpand"  | ||||
|                        HorizontalOptions="CenterAndExpand"  | ||||
|                        FontSize="20"  | ||||
|                        HorizontalTextAlignment="Center"  | ||||
|                        FontFamily="Bold"/> | ||||
|                 <StackLayout VerticalOptions="EndAndExpand" Margin="10,2,0,0"> | ||||
|                     <Button Text="Change" Clicked="ChangeLocation_Clicked" TextColor="White" FontSize="20" /> | ||||
|                 </StackLayout> | ||||
|             </StackLayout> | ||||
| 
 | ||||
|             <StackLayout VerticalOptions="EndAndExpand" Margin="10,10,0,10"> | ||||
|                 <Button Text="Ignore" Clicked="Ignore_Clicked" TextColor="White" FontSize="20" /> | ||||
|             </StackLayout> | ||||
|         </StackLayout> | ||||
|     </Frame> | ||||
| </toolkit:Popup> | ||||
| @ -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 | ||||
| } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user