diff --git a/app/src/main/java/org/mozilla/fenix/ext/View.kt b/app/src/main/java/org/mozilla/fenix/ext/View.kt index 03a0a6258..5e33bd8f1 100644 --- a/app/src/main/java/org/mozilla/fenix/ext/View.kt +++ b/app/src/main/java/org/mozilla/fenix/ext/View.kt @@ -37,33 +37,16 @@ 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. + * Sets the new a11y parent. */ -fun View.removeChildFromAccessibilityNodeInfo(child: View) { +fun View.setNewAccessibilityParent(newParent: 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) + info?.setParent(newParent) } } } diff --git a/app/src/main/java/org/mozilla/fenix/tabtray/SaveToCollectionsButtonAdapter.kt b/app/src/main/java/org/mozilla/fenix/tabtray/SaveToCollectionsButtonAdapter.kt index 3fb44dde6..39dc062b6 100644 --- a/app/src/main/java/org/mozilla/fenix/tabtray/SaveToCollectionsButtonAdapter.kt +++ b/app/src/main/java/org/mozilla/fenix/tabtray/SaveToCollectionsButtonAdapter.kt @@ -13,8 +13,7 @@ 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.ext.setNewAccessibilityParent import org.mozilla.fenix.tabtray.SaveToCollectionsButtonAdapter.Item import org.mozilla.fenix.tabtray.SaveToCollectionsButtonAdapter.ViewHolder @@ -45,9 +44,8 @@ class SaveToCollectionsButtonAdapter( ) { super.onInitializeAccessibilityNodeInfo(host, info) info?.collectionItemInfo = null - (holder.itemView.parentForAccessibility as View).apply { - removeChildFromAccessibilityNodeInfo(holder.itemView) - (this.parentForAccessibility as View).addChildToAccessibilityNodeInfo(holder.itemView) + (holder.itemView.parentForAccessibility.parentForAccessibility as? View)?.let { + holder.itemView.setNewAccessibilityParent(it) } } }