Sharesheet - Fix portrait -> landscape switch

Calculating the reserved height was using the wrong figures. Expose
the correct reserved alwaysShow height, and use it to determine the
offset for scrolling.

Bug: 120419081
Test: manual, rotate device
Change-Id: I21fd9fa8494a258d17f6002f79967aacc0efde34
This commit is contained in:
Matt Pietal
2019-04-04 15:49:48 -04:00
parent dd07ae579c
commit 399e8c74ee
2 changed files with 10 additions and 7 deletions

View File

@@ -1808,15 +1808,17 @@ public class ChooserActivity extends ResolverActivity {
offset += lastHeight;
}
if (lastHeight != 0 && isSendAction(getTargetIntent())) {
boolean isPortrait = getResources().getConfiguration().orientation
== Configuration.ORIENTATION_PORTRAIT;
if (lastHeight != 0 && isSendAction(getTargetIntent()) && isPortrait) {
// make sure to leave room for direct share 4->8 expansion
int expansionArea =
(int) (mResolverDrawerLayout.getUncollapsibleHeight()
(int) (mResolverDrawerLayout.getAlwaysShowHeight()
/ DIRECT_SHARE_EXPANSION_RATE);
offset = Math.min(offset, bottom - top - lastHeight - expansionArea);
}
mResolverDrawerLayout.setCollapsibleHeightReserved(offset);
mResolverDrawerLayout.setCollapsibleHeightReserved(Math.min(offset, bottom - top));
});
}
}

View File

@@ -75,6 +75,7 @@ public class ResolverDrawerLayout extends ViewGroup {
private int mCollapsibleHeight;
private int mUncollapsibleHeight;
private int mAlwaysShowHeight;
/**
* The height in pixels of reserved space added to the top of the collapsed UI;
@@ -832,7 +833,7 @@ public class ResolverDrawerLayout extends ViewGroup {
}
}
final int alwaysShowHeight = heightUsed;
mAlwaysShowHeight = heightUsed;
// And now the rest.
for (int i = 0; i < childCount; i++) {
@@ -854,7 +855,7 @@ public class ResolverDrawerLayout extends ViewGroup {
final int oldCollapsibleHeight = mCollapsibleHeight;
mCollapsibleHeight = Math.max(0,
heightUsed - alwaysShowHeight - getMaxCollapsedHeight());
heightUsed - mAlwaysShowHeight - getMaxCollapsedHeight());
mUncollapsibleHeight = heightUsed - mCollapsibleHeight;
updateCollapseOffset(oldCollapsibleHeight, !isDragging());
@@ -871,8 +872,8 @@ public class ResolverDrawerLayout extends ViewGroup {
/**
* @return The space reserved by views with 'alwaysShow=true'
*/
public int getUncollapsibleHeight() {
return mUncollapsibleHeight;
public int getAlwaysShowHeight() {
return mAlwaysShowHeight;
}
@Override