|
|
@ -7,11 +7,14 @@ package org.mozilla.fenix.tabtray
|
|
|
|
import android.view.LayoutInflater
|
|
|
|
import android.view.LayoutInflater
|
|
|
|
import android.view.View
|
|
|
|
import android.view.View
|
|
|
|
import android.view.ViewGroup
|
|
|
|
import android.view.ViewGroup
|
|
|
|
|
|
|
|
import android.view.accessibility.AccessibilityNodeInfo
|
|
|
|
import androidx.core.view.isVisible
|
|
|
|
import androidx.core.view.isVisible
|
|
|
|
import androidx.recyclerview.widget.DiffUtil
|
|
|
|
import androidx.recyclerview.widget.DiffUtil
|
|
|
|
import androidx.recyclerview.widget.ListAdapter
|
|
|
|
import androidx.recyclerview.widget.ListAdapter
|
|
|
|
import androidx.recyclerview.widget.RecyclerView
|
|
|
|
import androidx.recyclerview.widget.RecyclerView
|
|
|
|
import org.mozilla.fenix.R
|
|
|
|
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.Item
|
|
|
|
import org.mozilla.fenix.tabtray.SaveToCollectionsButtonAdapter.ViewHolder
|
|
|
|
import org.mozilla.fenix.tabtray.SaveToCollectionsButtonAdapter.ViewHolder
|
|
|
|
|
|
|
|
|
|
|
@ -34,6 +37,21 @@ class SaveToCollectionsButtonAdapter(
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
override fun onBindViewHolder(holder: ViewHolder, position: Int, payloads: MutableList<Any>) {
|
|
|
|
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()) {
|
|
|
|
if (payloads.isNullOrEmpty()) {
|
|
|
|
onBindViewHolder(holder, position)
|
|
|
|
onBindViewHolder(holder, position)
|
|
|
|
return
|
|
|
|
return
|
|
|
|