summaryrefslogtreecommitdiff
path: root/core/java/android/view/ViewGroup.java
diff options
context:
space:
mode:
authorsergeyv <sergeyv@google.com>2016-03-29 20:27:44 -0700
committersergeyv <sergeyv@google.com>2016-03-30 14:20:09 -0700
commitb37d44e26778bcaeb02a9b73997ffcb97ff7328f (patch)
tree2731138260c777911a46eb0aa8da83150ac8f822 /core/java/android/view/ViewGroup.java
parent12bf75f35406f49ab531a9bea9847663ef20d62e (diff)
Hide children in ViewGroup.createSnaphost via internal flag and add test for
it. bug:27747923 Change-Id: I079b52b176b920bfa4c6749be31fbcd96a4dc42c
Diffstat (limited to 'core/java/android/view/ViewGroup.java')
-rw-r--r--core/java/android/view/ViewGroup.java12
1 files changed, 9 insertions, 3 deletions
diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java
index 816d9c48539e..ae9edc93d6b8 100644
--- a/core/java/android/view/ViewGroup.java
+++ b/core/java/android/view/ViewGroup.java
@@ -3251,8 +3251,11 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
}
}
+ /**
+ * @hide
+ */
@Override
- Bitmap createSnapshot(Bitmap.Config quality, int backgroundColor, boolean skipChildren) {
+ public Bitmap createSnapshot(Bitmap.Config quality, int backgroundColor, boolean skipChildren) {
int count = mChildrenCount;
int[] visibilities = null;
@@ -3262,7 +3265,8 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
View child = getChildAt(i);
visibilities[i] = child.getVisibility();
if (visibilities[i] == View.VISIBLE) {
- child.setVisibility(INVISIBLE);
+ child.mViewFlags = (child.mViewFlags & ~View.VISIBILITY_MASK)
+ | (View.INVISIBLE & View.VISIBILITY_MASK);
}
}
}
@@ -3271,7 +3275,9 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
if (skipChildren) {
for (int i = 0; i < count; i++) {
- getChildAt(i).setVisibility(visibilities[i]);
+ View child = getChildAt(i);
+ child.mViewFlags = (child.mViewFlags & ~View.VISIBILITY_MASK)
+ | (visibilities[i] & View.VISIBILITY_MASK);
}
}