From 9bef54f4aaaf83038c62760255bb790a9a7630e5 Mon Sep 17 00:00:00 2001 From: Andrey Epin Date: Wed, 31 Aug 2022 19:27:26 -0700 Subject: [PATCH] Fix direct share target cells's visibility MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Due to incorrect initialization of the visibility status array, direct share target cells were never truly set invisible (they were not visible due to lack of content) and thus were iterated over by a keyboard navigation. Because those “invisible” items overlapped with other, visible, elements, it created an effect of a correct keyboard navigation but incorrect target launching. Fix: 244476932 Test: Manual testing, debugging. Change-Id: Ic413948fea94aa6c658fad12fe81be2783b5f509 --- core/java/com/android/internal/app/ChooserActivity.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/java/com/android/internal/app/ChooserActivity.java b/core/java/com/android/internal/app/ChooserActivity.java index fbabf52d096ec..2578d14185b6b 100644 --- a/core/java/com/android/internal/app/ChooserActivity.java +++ b/core/java/com/android/internal/app/ChooserActivity.java @@ -141,6 +141,7 @@ import java.lang.annotation.RetentionPolicy; import java.net.URISyntaxException; import java.text.Collator; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; @@ -3693,6 +3694,7 @@ public class ChooserActivity extends ResolverActivity implements this.mRows = rows; this.mCellCountPerRow = cellCountPerRow; this.mCellVisibility = new boolean[rows.size() * cellCountPerRow]; + Arrays.fill(mCellVisibility, true); this.mListAdapterSupplier = listAdapterSupplier; }