Fix accessibility on underlying popups

This commit is contained in:
Ieuan Walker
2024-09-12 13:08:19 +01:00
committed by GitHub
parent ef3d3c3781
commit cea156ee71

View File

@@ -96,11 +96,9 @@ public class AndroidMopups : IPopupPlatform
}
int navCount = mainPage.Navigation.NavigationStack.Count;
int modalCount = mainPage.Navigation.ModalStack.Count;
if(navCount > 0)
{
var androidView = mainPage.Navigation?.NavigationStack[navCount - 1]?.Handler?.PlatformView as Android.Views.View;
var androidView = mainPage.Navigation.NavigationStack[navCount - 1]?.Handler?.PlatformView as Android.Views.View;
if(androidView is not null && androidView.ImportantForAccessibility != ImportantForAccessibility.NoHideDescendants)
{
@@ -108,16 +106,26 @@ public class AndroidMopups : IPopupPlatform
}
}
int modalCount = mainPage.Navigation.ModalStack.Count;
if(modalCount > 0)
{
var androidView = mainPage.Navigation?.ModalStack[modalCount - 1]?.Handler?.PlatformView as Android.Views.View;
var androidView = mainPage.Navigation.ModalStack[modalCount - 1]?.Handler?.PlatformView as Android.Views.View;
if(androidView is not null && androidView.ImportantForAccessibility != ImportantForAccessibility.NoHideDescendants)
{
views.Add(androidView);
}
}
var test = popup.GetType();
var popupCount = MopupService.Instance.PopupStack.Count;
if(popupCount > 1)
{
var androidView = MopupService.Instance.PopupStack[popupCount - 2]?.Handler?.PlatformView as Android.Views.View;
if(androidView is not null && androidView.ImportantForAccessibility != ImportantForAccessibility.NoHideDescendants)
{
views.Add(androidView);
}
}
accessibilityStates.Add(test, views);
}
@@ -163,4 +171,4 @@ public class AndroidMopups : IPopupPlatform
return tcs.Task;
}
}
}