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:
@@ -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));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user