Skip to content

Commit

Permalink
For mozilla-mobile#9794: Announce installing state for screen readers
Browse files Browse the repository at this point in the history
  • Loading branch information
mcarare committed Apr 22, 2020
1 parent 70755ad commit 778fd91
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 0 deletions.
Expand Up @@ -8,6 +8,7 @@ import android.content.Context
import android.os.Bundle
import android.view.Gravity
import android.view.View
import android.view.accessibility.AccessibilityEvent
import androidx.core.content.res.ResourcesCompat
import androidx.core.view.isVisible
import androidx.fragment.app.Fragment
Expand All @@ -16,6 +17,7 @@ import androidx.navigation.Navigation
import androidx.recyclerview.widget.LinearLayoutManager
import kotlinx.android.synthetic.main.fragment_add_ons_management.*
import kotlinx.android.synthetic.main.fragment_add_ons_management.view.*
import kotlinx.android.synthetic.main.overlay_add_on_progress.view.*
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Dispatchers.IO
Expand All @@ -33,6 +35,7 @@ import mozilla.components.support.ktx.kotlinx.coroutines.flow.ifChanged
import org.mozilla.fenix.R
import org.mozilla.fenix.ext.components
import org.mozilla.fenix.ext.getRootView
import org.mozilla.fenix.ext.settings
import org.mozilla.fenix.ext.showToolbar
import org.mozilla.fenix.theme.ThemeManager

Expand Down Expand Up @@ -196,6 +199,11 @@ class AddonsManagementFragment : Fragment(R.layout.fragment_add_ons_management),

private val onPositiveButtonClicked: ((Addon) -> Unit) = { addon ->
addonProgressOverlay?.visibility = View.VISIBLE

if (requireContext().settings().accessibilityServicesEnabled) {
announceForAccessibility(addonProgressOverlay.add_ons_overlay_text.text)
}

isInstallationInProgress = true

requireContext().components.addonManager.installAddon(
Expand Down Expand Up @@ -229,6 +237,16 @@ class AddonsManagementFragment : Fragment(R.layout.fragment_add_ons_management),
)
}

private fun announceForAccessibility(announcementText: CharSequence) {
val event = AccessibilityEvent.obtain(
AccessibilityEvent.TYPE_ANNOUNCEMENT
)
addonProgressOverlay.onInitializeAccessibilityEvent(event)
event.text.add(announcementText)
event.contentDescription = null
addonProgressOverlay.parent.requestSendAccessibilityEvent(addonProgressOverlay, event)
}

companion object {
private const val PERMISSIONS_DIALOG_FRAGMENT_TAG = "ADDONS_PERMISSIONS_DIALOG_FRAGMENT"
}
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/layout/overlay_add_on_progress.xml
Expand Up @@ -10,6 +10,7 @@
android:elevation="1dp">

<TextView
android:id="@+id/add_ons_overlay_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
Expand Down

0 comments on commit 778fd91

Please sign in to comment.