diff options
author | 2020-03-19 17:55:00 -0700 | |
---|---|---|
committer | 2020-03-20 08:24:44 -0700 | |
commit | 902d3d9e481657de2b148acb09dd2040ed2a207c (patch) | |
tree | b1a89c6bf3e7081a5e07d73729a11a68829f0da4 | |
parent | bfadf609caa642212df8b59b72a1a1b48b810eba (diff) |
Accessibility, remove double tap to activate for last breadcrumb
Test: atest DocumentsUiGoogleTests
Bug: 151582491
Change-Id: Ie45de68c8b6040872be044d427c3b774b50e2280
3 files changed, 55 insertions, 16 deletions
diff --git a/src/com/android/documentsui/BreadcrumbHolder.java b/src/com/android/documentsui/BreadcrumbHolder.java new file mode 100644 index 000000000..68c0e6a0e --- /dev/null +++ b/src/com/android/documentsui/BreadcrumbHolder.java @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.documentsui; + +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.recyclerview.widget.RecyclerView; + +/** Recycler view holding the horizontal breadcrumb. */ +public final class BreadcrumbHolder extends RecyclerView.ViewHolder { + + protected TextView mTitle; + protected ImageView mArrow; + protected int mDefaultTextColor; + protected boolean mLast; + + public BreadcrumbHolder(View itemView) { + super(itemView); + mTitle = itemView.findViewById(R.id.breadcrumb_text); + mArrow = itemView.findViewById(R.id.breadcrumb_arrow); + mDefaultTextColor = mTitle.getTextColors().getDefaultColor(); + mLast = false; + } + + public boolean isLast() { + return mLast; + } + + public void setLast(boolean isLast) { + mLast = isLast; + } +} diff --git a/src/com/android/documentsui/HorizontalBreadcrumb.java b/src/com/android/documentsui/HorizontalBreadcrumb.java index bb7fa01b3..d5987e142 100644 --- a/src/com/android/documentsui/HorizontalBreadcrumb.java +++ b/src/com/android/documentsui/HorizontalBreadcrumb.java @@ -24,8 +24,6 @@ import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -191,6 +189,7 @@ public final class HorizontalBreadcrumb extends RecyclerView implements Breadcru holder.mArrow.setVisibility(isLast ? View.GONE : View.VISIBLE); holder.itemView.setOnKeyListener(mClickListener); + holder.setLast(isLast); } private DocumentInfo getItem(int position) { @@ -211,20 +210,6 @@ public final class HorizontalBreadcrumb extends RecyclerView implements Breadcru } } - private static class BreadcrumbHolder extends RecyclerView.ViewHolder { - - protected TextView mTitle; - protected ImageView mArrow; - protected int mDefaultTextColor; - - public BreadcrumbHolder(View itemView) { - super(itemView); - mTitle = itemView.findViewById(R.id.breadcrumb_text); - mArrow = itemView.findViewById(R.id.breadcrumb_arrow); - mDefaultTextColor = mTitle.getTextColors().getDefaultColor(); - } - } - private static final class ClickListener extends GestureDetector implements OnItemTouchListener { diff --git a/src/com/android/documentsui/dirlist/AccessibilityEventRouter.java b/src/com/android/documentsui/dirlist/AccessibilityEventRouter.java index 42130cc65..f235159ed 100644 --- a/src/com/android/documentsui/dirlist/AccessibilityEventRouter.java +++ b/src/com/android/documentsui/dirlist/AccessibilityEventRouter.java @@ -27,6 +27,8 @@ import androidx.core.view.accessibility.AccessibilityNodeInfoCompat.Accessibilit import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerViewAccessibilityDelegate; +import com.android.documentsui.BreadcrumbHolder; + import java.util.function.Function; /** @@ -67,6 +69,10 @@ public class AccessibilityEventRouter extends RecyclerViewAccessibilityDelegate if (((DocumentHolder) holder).getItemDetails() != null) { addAction(info); } + } else if (holder instanceof BreadcrumbHolder) { + if (!((BreadcrumbHolder) holder).isLast()) { + addAction(info); + } } else { addAction(info); } |