summaryrefslogtreecommitdiffstats
path: root/core/java/com/android
diff options
context:
space:
mode:
authorAdam Powell <adamp@google.com>2015-05-15 13:39:22 -0700
committerAdam Powell <adamp@google.com>2015-05-15 13:59:40 -0700
commitc9f2293471155b8cc56ba18c98325b3893dd659d (patch)
tree75a5b20ca79c902ddc5a16f1a6e003b2785baeb5 /core/java/com/android
parentebb1d76e32535df04be5baab72fc067decf8ee15 (diff)
downloadframeworks_base-c9f2293471155b8cc56ba18c98325b3893dd659d.zip
frameworks_base-c9f2293471155b8cc56ba18c98325b3893dd659d.tar.gz
frameworks_base-c9f2293471155b8cc56ba18c98325b3893dd659d.tar.bz2
Preserve ResolverDrawerLayout fully collapsed state across relayout
Fix a bug where a relayout that grows the size of ResolverDrawerLayout content would cause it to get stuck in a half-collapsed state. This could also lead to janky touch interaction behavior in onStopNestedScroll as it animates to the fully open/closed state after clicking in a descendant list. Bug 21202727 Change-Id: I5f0a8b19fc079c57fcf2be7c6fa7627b1cb12a3c
Diffstat (limited to 'core/java/com/android')
-rw-r--r--core/java/com/android/internal/widget/ResolverDrawerLayout.java9
1 files changed, 8 insertions, 1 deletions
diff --git a/core/java/com/android/internal/widget/ResolverDrawerLayout.java b/core/java/com/android/internal/widget/ResolverDrawerLayout.java
index 01e835b..be727f1 100644
--- a/core/java/com/android/internal/widget/ResolverDrawerLayout.java
+++ b/core/java/com/android/internal/widget/ResolverDrawerLayout.java
@@ -661,13 +661,20 @@ public class ResolverDrawerLayout extends ViewGroup {
}
}
+ final int oldCollapsibleHeight = mCollapsibleHeight;
mCollapsibleHeight = Math.max(0,
heightUsed - alwaysShowHeight - getMaxCollapsedHeight());
mUncollapsibleHeight = heightUsed - mCollapsibleHeight;
if (isLaidOut()) {
final boolean isCollapsedOld = mCollapseOffset != 0;
- mCollapseOffset = Math.min(mCollapseOffset, mCollapsibleHeight);
+ if (oldCollapsibleHeight < mCollapsibleHeight
+ && mCollapseOffset == oldCollapsibleHeight) {
+ // Stay closed even at the new height.
+ mCollapseOffset = mCollapsibleHeight;
+ } else {
+ mCollapseOffset = Math.min(mCollapseOffset, mCollapsibleHeight);
+ }
final boolean isCollapsedNew = mCollapseOffset != 0;
if (isCollapsedOld != isCollapsedNew) {
notifyViewAccessibilityStateChangedIfNeeded(