Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2c134f79 authored by dakinola's avatar dakinola Committed by Daniel Akinola
Browse files

Disable Touch & Hold Switch Access Accessibility Action for MediaProjection...

Disable Touch & Hold Switch Access Accessibility Action for MediaProjection Permission Dialog Spinner

Screen share mode spinner displayed a Touch & Hold Action when selected with Switch Access, despite the action not doing anything. So we make the spinner non-long-clickable and remove the long click accessibility action, so that Switch Access will not offer Touch & Hold as a possible interaction option.

Fix: 308528499
Test: Manual testing
Flag: None
Change-Id: Iccc6bf202f36379012ed8b91e61eb8ae3cdba7af
parent c4316c09
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import android.view.View
import android.view.ViewGroup
import android.view.ViewStub
import android.view.WindowManager
import android.view.accessibility.AccessibilityNodeInfo
import android.widget.AdapterView
import android.widget.ArrayAdapter
import android.widget.ImageView
@@ -106,6 +107,19 @@ abstract class BaseMediaProjectionPermissionDialogDelegate<T : AlertDialog>(
        screenShareModeSpinner = dialog.requireViewById(R.id.screen_share_mode_spinner)
        screenShareModeSpinner.adapter = adapter
        screenShareModeSpinner.onItemSelectedListener = this

        // disable redundant Touch & Hold accessibility action for Switch Access
        screenShareModeSpinner.accessibilityDelegate =
            object : View.AccessibilityDelegate() {
                override fun onInitializeAccessibilityNodeInfo(
                    host: View,
                    info: AccessibilityNodeInfo
                ) {
                    info.removeAction(AccessibilityNodeInfo.AccessibilityAction.ACTION_LONG_CLICK)
                    super.onInitializeAccessibilityNodeInfo(host, info)
                }
            }
        screenShareModeSpinner.isLongClickable = false
    }

    override fun onItemSelected(adapterView: AdapterView<*>?, view: View, pos: Int, id: Long) {