Skip to content

Commit 2ad6bcf

Browse files
authored
Merge pull request #682 from rotorgames/AccessibilityUpgrade585
Update to fix exceptions when navstack is 0, also added support for modals
2 parents 6a706ee + 24aee99 commit 2ad6bcf

File tree

1 file changed

+25
-6
lines changed

1 file changed

+25
-6
lines changed

Rg.Plugins.Popup/Platforms/Android/Impl/PopupPlatformDroid.cs

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,19 @@ static void HandleAccessibilityWorkaround(PopupPage page)
5656
{
5757
if (page.AndroidTalkbackAccessibilityWorkaround)
5858
{
59-
var NavCount = XApplication.Current.MainPage.Navigation.NavigationStack.Count;
60-
Page currentPage = XApplication.Current.MainPage.Navigation.NavigationStack[NavCount - 1];
61-
currentPage.GetOrCreateRenderer().View.ImportantForAccessibility = ImportantForAccessibility.NoHideDescendants;
59+
var navCount = XApplication.Current.MainPage.Navigation.NavigationStack.Count;
60+
var modalCount = XApplication.Current.MainPage.Navigation.ModalStack.Count;
61+
XApplication.Current.MainPage.GetOrCreateRenderer().View.ImportantForAccessibility = ImportantForAccessibility.NoHideDescendants;
62+
63+
if (navCount > 0)
64+
{
65+
XApplication.Current.MainPage.Navigation.NavigationStack[navCount - 1].GetOrCreateRenderer().View.ImportantForAccessibility = ImportantForAccessibility.NoHideDescendants;
66+
}
67+
if (modalCount > 0)
68+
{
69+
XApplication.Current.MainPage.Navigation.ModalStack[modalCount - 1].GetOrCreateRenderer().View.ImportantForAccessibility = ImportantForAccessibility.NoHideDescendants;
70+
}
71+
6272
}
6373
}
6474
}
@@ -91,9 +101,18 @@ static void HandleAccessibilityWorkaround(PopupPage page)
91101
{
92102
if (page.AndroidTalkbackAccessibilityWorkaround)
93103
{
94-
var NavCount = XApplication.Current.MainPage.Navigation.NavigationStack.Count;
95-
Page currentPage = XApplication.Current.MainPage.Navigation.NavigationStack[NavCount - 1];
96-
currentPage.GetOrCreateRenderer().View.ImportantForAccessibility = ImportantForAccessibility.Auto;
104+
var navCount = XApplication.Current.MainPage.Navigation.NavigationStack.Count;
105+
var modalCount = XApplication.Current.MainPage.Navigation.ModalStack.Count;
106+
XApplication.Current.MainPage.GetOrCreateRenderer().View.ImportantForAccessibility = ImportantForAccessibility.Auto;
107+
108+
if (navCount > 0)
109+
{
110+
XApplication.Current.MainPage.Navigation.NavigationStack[navCount - 1].GetOrCreateRenderer().View.ImportantForAccessibility = ImportantForAccessibility.Auto;
111+
}
112+
if (modalCount > 0)
113+
{
114+
XApplication.Current.MainPage.Navigation.ModalStack[modalCount - 1].GetOrCreateRenderer().View.ImportantForAccessibility = ImportantForAccessibility.Auto;
115+
}
97116
}
98117
}
99118
}

0 commit comments

Comments
 (0)