Merge "Fix bubble position with IME when the bubble has a custom height" into tm-dev
This commit is contained in:
@@ -112,6 +112,7 @@ public class BubbleExpandedView extends LinearLayout {
|
|||||||
private ShapeDrawable mRightPointer;
|
private ShapeDrawable mRightPointer;
|
||||||
private float mCornerRadius = 0f;
|
private float mCornerRadius = 0f;
|
||||||
private int mBackgroundColorFloating;
|
private int mBackgroundColorFloating;
|
||||||
|
private boolean mUsingMaxHeight;
|
||||||
|
|
||||||
@Nullable private Bubble mBubble;
|
@Nullable private Bubble mBubble;
|
||||||
private PendingIntent mPendingIntent;
|
private PendingIntent mPendingIntent;
|
||||||
@@ -621,6 +622,13 @@ public class BubbleExpandedView extends LinearLayout {
|
|||||||
return prevWasIntentBased != newIsIntentBased;
|
return prevWasIntentBased != newIsIntentBased;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether the bubble is using all available height to display or not.
|
||||||
|
*/
|
||||||
|
public boolean isUsingMaxHeight() {
|
||||||
|
return mUsingMaxHeight;
|
||||||
|
}
|
||||||
|
|
||||||
void updateHeight() {
|
void updateHeight() {
|
||||||
if (mExpandedViewContainerLocation == null) {
|
if (mExpandedViewContainerLocation == null) {
|
||||||
return;
|
return;
|
||||||
@@ -632,6 +640,7 @@ public class BubbleExpandedView extends LinearLayout {
|
|||||||
float height = desiredHeight == MAX_HEIGHT
|
float height = desiredHeight == MAX_HEIGHT
|
||||||
? maxHeight
|
? maxHeight
|
||||||
: Math.min(desiredHeight, maxHeight);
|
: Math.min(desiredHeight, maxHeight);
|
||||||
|
mUsingMaxHeight = height == maxHeight;
|
||||||
FrameLayout.LayoutParams lp = mIsOverflow
|
FrameLayout.LayoutParams lp = mIsOverflow
|
||||||
? (FrameLayout.LayoutParams) mOverflowView.getLayoutParams()
|
? (FrameLayout.LayoutParams) mOverflowView.getLayoutParams()
|
||||||
: (FrameLayout.LayoutParams) mTaskView.getLayoutParams();
|
: (FrameLayout.LayoutParams) mTaskView.getLayoutParams();
|
||||||
|
|||||||
@@ -2355,7 +2355,14 @@ public class BubbleStackView extends FrameLayout
|
|||||||
}
|
}
|
||||||
} else if (mPositioner.showBubblesVertically() && mIsExpanded
|
} else if (mPositioner.showBubblesVertically() && mIsExpanded
|
||||||
&& mExpandedBubble != null && mExpandedBubble.getExpandedView() != null) {
|
&& mExpandedBubble != null && mExpandedBubble.getExpandedView() != null) {
|
||||||
|
float selectedY = mPositioner.getExpandedBubbleXY(getState().selectedIndex,
|
||||||
|
getState()).y;
|
||||||
|
float newExpandedViewTop = mPositioner.getExpandedViewY(mExpandedBubble, selectedY);
|
||||||
mExpandedBubble.getExpandedView().setImeVisible(visible);
|
mExpandedBubble.getExpandedView().setImeVisible(visible);
|
||||||
|
if (!mExpandedBubble.getExpandedView().isUsingMaxHeight()) {
|
||||||
|
mExpandedViewContainer.animate().translationY(newExpandedViewTop);
|
||||||
|
}
|
||||||
|
|
||||||
List<Animator> animList = new ArrayList();
|
List<Animator> animList = new ArrayList();
|
||||||
for (int i = 0; i < mBubbleContainer.getChildCount(); i++) {
|
for (int i = 0; i < mBubbleContainer.getChildCount(); i++) {
|
||||||
View child = mBubbleContainer.getChildAt(i);
|
View child = mBubbleContainer.getChildAt(i);
|
||||||
|
|||||||
Reference in New Issue
Block a user