diff --git a/api/test-current.txt b/api/test-current.txt index 254fc15a4cbfc..c1f1bb6999c59 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -1036,6 +1036,10 @@ package android.view.autofill { package android.widget { + public abstract class AbsListView extends android.widget.AdapterView implements android.widget.Filter.FilterListener android.text.TextWatcher android.view.ViewTreeObserver.OnGlobalLayoutListener android.view.ViewTreeObserver.OnTouchModeChangeListener { + method public final boolean shouldDrawSelector(); + } + public class CalendarView extends android.widget.FrameLayout { method public boolean getBoundsForDate(long, android.graphics.Rect); } diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java index 6bee58f96f8a6..3f0d006e49cf4 100644 --- a/core/java/android/widget/AbsListView.java +++ b/core/java/android/widget/AbsListView.java @@ -19,6 +19,7 @@ package android.widget; import android.annotation.ColorInt; import android.annotation.DrawableRes; import android.annotation.NonNull; +import android.annotation.TestApi; import android.content.Context; import android.content.Intent; import android.content.res.Configuration; @@ -2744,13 +2745,21 @@ public abstract class AbsListView extends AdapterView implements Te } private void drawSelector(Canvas canvas) { - if (!mSelectorRect.isEmpty()) { + if (shouldDrawSelector()) { final Drawable selector = mSelector; selector.setBounds(mSelectorRect); selector.draw(canvas); } } + /** + * @hide + */ + @TestApi + public final boolean shouldDrawSelector() { + return !mSelectorRect.isEmpty(); + } + /** * Controls whether the selection highlight drawable should be drawn on top of the item or * behind it.