For #25808: Handle a11y obtain() methods deprecations.

This commit is contained in:
mcarare 2022-07-04 17:56:16 +03:00 committed by mergify[bot]
parent 8638fa3ba3
commit 0189958bff
3 changed files with 50 additions and 15 deletions

View File

@ -334,9 +334,12 @@ class AddonsManagementFragment : Fragment(R.layout.fragment_add_ons_management)
}
private fun announceForAccessibility(announcementText: CharSequence) {
val event = AccessibilityEvent.obtain(
AccessibilityEvent.TYPE_ANNOUNCEMENT,
)
val event = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
AccessibilityEvent(AccessibilityEvent.TYPE_ANNOUNCEMENT)
} else {
@Suppress("DEPRECATION")
AccessibilityEvent.obtain(AccessibilityEvent.TYPE_ANNOUNCEMENT)
}
binding?.addonProgressOverlay?.overlayCardView?.onInitializeAccessibilityEvent(event)
event.text.add(announcementText)

View File

@ -68,7 +68,18 @@ fun View.updateAccessibilityCollectionItemInfo(
info: AccessibilityNodeInfo,
) {
super.onInitializeAccessibilityNodeInfo(host, info)
info.collectionItemInfo =
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
info.collectionItemInfo =
AccessibilityNodeInfo.CollectionItemInfo(
rowIndex,
rowSpan,
columnIndex,
columnSpan,
false,
isSelected,
)
} else {
@Suppress("DEPRECATION")
AccessibilityNodeInfo.CollectionItemInfo.obtain(
rowIndex,
rowSpan,
@ -77,6 +88,7 @@ fun View.updateAccessibilityCollectionItemInfo(
false,
isSelected,
)
}
}
}
}
@ -94,11 +106,20 @@ fun View.updateAccessibilityCollectionInfo(
info: AccessibilityNodeInfo,
) {
super.onInitializeAccessibilityNodeInfo(host, info)
info.collectionInfo = AccessibilityNodeInfo.CollectionInfo.obtain(
rowCount,
columnCount,
false,
)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
info.collectionInfo = AccessibilityNodeInfo.CollectionInfo(
rowCount,
columnCount,
false,
)
} else {
@Suppress("DEPRECATION")
info.collectionInfo = AccessibilityNodeInfo.CollectionInfo.obtain(
rowCount,
columnCount,
false,
)
}
}
}
}

View File

@ -22,6 +22,7 @@ package org.mozilla.fenix.settings
import android.content.Context
import android.content.res.TypedArray
import android.os.Build
import android.os.Parcel
import android.os.Parcelable
import android.util.AttributeSet
@ -369,12 +370,22 @@ class TextPercentageSeekBarPreference @JvmOverloads constructor(
super.onInitializeAccessibilityNodeInfo(host, info)
val initialInfo = info.rangeInfo
info.rangeInfo = initialInfo?.let {
AccessibilityNodeInfo.RangeInfo.obtain(
RANGE_TYPE_PERCENT,
MIN_VALUE.toFloat(),
SEEK_BAR_MAX.toFloat(),
convertCurrentValue(it.current),
)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
AccessibilityNodeInfo.RangeInfo(
RANGE_TYPE_PERCENT,
MIN_VALUE.toFloat(),
SEEK_BAR_MAX.toFloat(),
convertCurrentValue(it.current),
)
} else {
@Suppress("DEPRECATION")
AccessibilityNodeInfo.RangeInfo.obtain(
RANGE_TYPE_PERCENT,
MIN_VALUE.toFloat(),
SEEK_BAR_MAX.toFloat(),
convertCurrentValue(it.current),
)
}
}
}
},