summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/view/View.java15
1 files changed, 12 insertions, 3 deletions
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index febd2e2efdac..7d823b1c100d 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -11939,13 +11939,22 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
@NonNull
List<Rect> collectPreferKeepClearRects() {
ListenerInfo info = mListenerInfo;
- final List<Rect> list = new ArrayList<>();
+ boolean keepBoundsClear =
+ (info != null && info.mPreferKeepClear) || mPreferKeepClearForFocus;
+ boolean hasCustomKeepClearRects = info != null && info.mKeepClearRects != null;
+
+ if (!keepBoundsClear && !hasCustomKeepClearRects) {
+ return Collections.emptyList();
+ } else if (keepBoundsClear && !hasCustomKeepClearRects) {
+ return Collections.singletonList(new Rect(0, 0, getWidth(), getHeight()));
+ }
- if ((info != null && info.mPreferKeepClear) || mPreferKeepClearForFocus) {
+ final List<Rect> list = new ArrayList<>();
+ if (keepBoundsClear) {
list.add(new Rect(0, 0, getWidth(), getHeight()));
}
- if (info != null && info.mKeepClearRects != null) {
+ if (hasCustomKeepClearRects) {
list.addAll(info.mKeepClearRects);
}