Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Gaba
fenix
Commits
c427ebf8
Commit
c427ebf8
authored
Nov 10, 2020
by
mcarare
Committed by
Mihai Adrian Carare
Nov 11, 2020
Browse files
For #16416: Remove save to collection button from tab a11y list.
parent
a8db85fc
Changes
3
Hide whitespace changes
Inline
Side-by-side
app/src/main/java/org/mozilla/fenix/ext/View.kt
View file @
c427ebf8
...
...
@@ -8,6 +8,7 @@ import android.graphics.Rect
import
android.os.Build
import
android.view.TouchDelegate
import
android.view.View
import
android.view.accessibility.AccessibilityNodeInfo
import
androidx.annotation.Dimension
import
androidx.annotation.Dimension.DP
import
androidx.annotation.VisibleForTesting
...
...
@@ -33,6 +34,38 @@ fun View.removeTouchDelegate() {
}
}
/**
* Removes a child view from accessibility node info of an accessibility parent view.
* If the child does not exist in the node, calling this has no effect.
*/
fun
View
.
removeChildFromAccessibilityNodeInfo
(
child
:
View
)
{
this
.
accessibilityDelegate
=
object
:
View
.
AccessibilityDelegate
()
{
override
fun
onInitializeAccessibilityNodeInfo
(
host
:
View
?,
info
:
AccessibilityNodeInfo
?
)
{
super
.
onInitializeAccessibilityNodeInfo
(
host
,
info
)
info
?.
removeChild
(
child
)
}
}
}
/**
* Add a child view to the accessibility node info of a view that becomes it's accessibility parent.
* If the child already exists in the node, calling this has no effect.
*/
fun
View
.
addChildToAccessibilityNodeInfo
(
child
:
View
)
{
this
.
accessibilityDelegate
=
object
:
View
.
AccessibilityDelegate
()
{
override
fun
onInitializeAccessibilityNodeInfo
(
host
:
View
?,
info
:
AccessibilityNodeInfo
?
)
{
super
.
onInitializeAccessibilityNodeInfo
(
host
,
info
)
info
?.
addChild
(
child
)
}
}
}
/**
* Fills a [Rect] with data about a view's location in the screen.
*
...
...
app/src/main/java/org/mozilla/fenix/tabtray/SaveToCollectionsButtonAdapter.kt
View file @
c427ebf8
...
...
@@ -7,11 +7,14 @@ package org.mozilla.fenix.tabtray
import
android.view.LayoutInflater
import
android.view.View
import
android.view.ViewGroup
import
android.view.accessibility.AccessibilityNodeInfo
import
androidx.core.view.isVisible
import
androidx.recyclerview.widget.DiffUtil
import
androidx.recyclerview.widget.ListAdapter
import
androidx.recyclerview.widget.RecyclerView
import
org.mozilla.fenix.R
import
org.mozilla.fenix.ext.addChildToAccessibilityNodeInfo
import
org.mozilla.fenix.ext.removeChildFromAccessibilityNodeInfo
import
org.mozilla.fenix.tabtray.SaveToCollectionsButtonAdapter.Item
import
org.mozilla.fenix.tabtray.SaveToCollectionsButtonAdapter.ViewHolder
...
...
@@ -34,6 +37,21 @@ class SaveToCollectionsButtonAdapter(
}
override
fun
onBindViewHolder
(
holder
:
ViewHolder
,
position
:
Int
,
payloads
:
MutableList
<
Any
>)
{
// remove button from node info of tabs list for a11y services,and add it to the tab tray node
holder
.
itemView
.
accessibilityDelegate
=
object
:
View
.
AccessibilityDelegate
()
{
override
fun
onInitializeAccessibilityNodeInfo
(
host
:
View
?,
info
:
AccessibilityNodeInfo
?
)
{
super
.
onInitializeAccessibilityNodeInfo
(
host
,
info
)
info
?.
collectionItemInfo
=
null
(
holder
.
itemView
.
parentForAccessibility
as
View
).
apply
{
removeChildFromAccessibilityNodeInfo
(
holder
.
itemView
)
(
this
.
parentForAccessibility
as
View
).
addChildToAccessibilityNodeInfo
(
holder
.
itemView
)
}
}
}
if
(
payloads
.
isNullOrEmpty
())
{
onBindViewHolder
(
holder
,
position
)
return
...
...
app/src/main/res/layout/tab_tray_grid_item.xml
View file @
c427ebf8
...
...
@@ -18,7 +18,6 @@ A FrameLayout here is an efficient way of having a views stack while allowing:
android:layout_height=
"202dp"
android:clipChildren=
"false"
android:clipToPadding=
"false"
android:importantForAccessibility=
"no"
android:padding=
"8dp"
>
<com.google.android.material.card.MaterialCardView
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment