From 6dcc026e0495847bdbcf5658fba4d7c50f910842 Mon Sep 17 00:00:00 2001 From: Sawyer Blatz Date: Wed, 20 Mar 2019 09:28:36 -0700 Subject: [PATCH] For #1072: Adds accessibility support --- .../fenix/quickactionsheet/QuickActionSheet.kt | 13 +++++++++++-- .../java/org/mozilla/fenix/utils/Settings.kt | 4 +++- ...sheet.xml => layout_quick_action_sheet.xml} | 18 +++++++++++++----- app/src/main/res/values/strings.xml | 12 ++++++++++++ 4 files changed, 39 insertions(+), 8 deletions(-) rename app/src/main/res/layout/{component_quickactionsheet.xml => layout_quick_action_sheet.xml} (88%) diff --git a/app/src/main/java/org/mozilla/fenix/quickactionsheet/QuickActionSheet.kt b/app/src/main/java/org/mozilla/fenix/quickactionsheet/QuickActionSheet.kt index 9a1dc41ee..996eadd91 100644 --- a/app/src/main/java/org/mozilla/fenix/quickactionsheet/QuickActionSheet.kt +++ b/app/src/main/java/org/mozilla/fenix/quickactionsheet/QuickActionSheet.kt @@ -15,6 +15,7 @@ import com.google.android.material.bottomsheet.BottomSheetBehavior import mozilla.components.browser.toolbar.BrowserToolbar import org.mozilla.fenix.R import android.animation.ValueAnimator +import android.view.accessibility.AccessibilityManager import androidx.interpolator.view.animation.FastOutSlowInInterpolator import org.mozilla.fenix.ext.increaseTapArea import org.mozilla.fenix.utils.Settings @@ -27,7 +28,7 @@ class QuickActionSheet @JvmOverloads constructor( ) : LinearLayout(context, attrs, defStyle, defStyleRes) { init { - inflate(getContext(), R.layout.component_quickactionsheet, this) + inflate(getContext(), R.layout.layout_quick_action_sheet, this) } fun afterInflate() { @@ -38,6 +39,7 @@ class QuickActionSheet @JvmOverloads constructor( val handle = findViewById(R.id.quick_action_sheet_handle) val linearLayout = findViewById(R.id.quick_action_sheet) val quickActionSheetBehavior = BottomSheetBehavior.from(linearLayout.parent as View) as QuickActionSheetBehavior + handle.increaseTapArea(grabHandleIncreasedTapArea) handle.setOnClickListener { bounceSheet(quickActionSheetBehavior) @@ -109,7 +111,14 @@ class QuickActionSheetBehavior( } private fun repositionQuickActionSheet(quickActionSheetContainer: NestedScrollView, toolbar: BrowserToolbar) { - state = BottomSheetBehavior.STATE_COLLAPSED + val accessibilityManager = quickActionSheetContainer.context + .getSystemService(Context.ACCESSIBILITY_SERVICE) as AccessibilityManager + + state = when (accessibilityManager.isTouchExplorationEnabled) { + true -> BottomSheetBehavior.STATE_EXPANDED + false -> BottomSheetBehavior.STATE_COLLAPSED + } + quickActionSheetContainer.translationY = (toolbar.translationY + toolbar.height * -1.0).toFloat() } } diff --git a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt index 050d17022..25745399f 100644 --- a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt +++ b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt @@ -16,6 +16,8 @@ import org.mozilla.fenix.ext.getPreferenceKey class Settings private constructor(context: Context) { companion object { + const val autoBounceMaximumCount = 2 + var instance: Settings? = null @JvmStatic @@ -40,7 +42,7 @@ class Settings private constructor(context: Context) { get() = preferences.getBoolean(appContext.getPreferenceKey(R.string.pref_key_telemetry), true) val shouldAutoBounceQuickActionSheet: Boolean - get() = autoBounceQuickActionSheetCount < 2 + get() = autoBounceQuickActionSheetCount < autoBounceMaximumCount private val autoBounceQuickActionSheetCount: Int get() = (preferences.getInt(appContext.getPreferenceKey(R.string.pref_key_bounce_quick_action), 0)) diff --git a/app/src/main/res/layout/component_quickactionsheet.xml b/app/src/main/res/layout/layout_quick_action_sheet.xml similarity index 88% rename from app/src/main/res/layout/component_quickactionsheet.xml rename to app/src/main/res/layout/layout_quick_action_sheet.xml index 803550533..825f4b0c9 100644 --- a/app/src/main/res/layout/component_quickactionsheet.xml +++ b/app/src/main/res/layout/layout_quick_action_sheet.xml @@ -35,6 +35,7 @@ android:layout_marginStart="10dp" android:layout_marginEnd="10dp" android:layout_gravity="center_vertical" + android:contentDescription="@string/quick_action_share" android:src="@drawable/quick_action_icon_share" android:background="@color/off_white"/> @@ -45,6 +46,7 @@ android:layout_marginStart="10dp" android:layout_marginEnd="10dp" android:layout_gravity="center_vertical" + android:contentDescription="@string/quick_action_screenshot" android:src="@drawable/library_icon_screenshots_circle_background" android:background="@color/off_white"/> @@ -55,6 +57,7 @@ android:layout_marginStart="10dp" android:layout_marginEnd="10dp" android:layout_gravity="center_vertical" + android:contentDescription="@string/quick_action_download" android:src="@drawable/library_icon_downloads_circle_background" android:background="@color/off_white"/> @@ -65,6 +68,7 @@ android:layout_marginStart="10dp" android:layout_marginEnd="10dp" android:layout_gravity="center_vertical" + android:contentDescription="@string/quick_action_favorite" android:src="@drawable/library_icon_favorites_circle_background" android:background="@color/off_white"/> @@ -75,6 +79,7 @@ android:layout_marginStart="10dp" android:layout_marginEnd="10dp" android:layout_gravity="center_vertical" + android:contentDescription="@string/quick_action_read" android:src="@drawable/quick_action_icon_read" android:background="@color/off_white"/> @@ -92,7 +97,7 @@ android:layout_width="0dp" android:textAlignment="center" android:textSize="12sp" - android:text="Share"/> + android:text="@string/quick_action_share"/> + android:text="@string/quick_action_screenshot"/> + android:text="@string/quick_action_download"/> + android:text="@string/quick_action_favorite"/> + + android:text="@string/quick_action_read"/> + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2582b4b92..3b7d802a9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -150,6 +150,18 @@ Fenix health report + + + Share + + Screenshot + + Download + + Favorite + + Read + Sessions