Expose selector draw condition for test
There is no other way for a test to inspect whether the selector drawable will be drawn or not. This adds a hidden test api to expose it Bug: 67881712 Test: AbsListViewTest#testSelectorOnScreen Change-Id: I3b6d25a0c8cb0c5f6c8bfc45eaa2660caa133b7d
This commit is contained in:
@@ -1037,6 +1037,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);
|
||||
}
|
||||
|
||||
@@ -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<ListAdapter> 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.
|
||||
|
||||
Reference in New Issue
Block a user