Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d2d52d2c authored by felkachang's avatar felkachang Committed by android-build-merger
Browse files

Fix EditText show wrong position when ime show

am: 6d1eca3c

Change-Id: I7cfa1b33d24bbcb8d4bd23728ea0b9c1cc198dbc
parents 560055e2 6d1eca3c
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -1421,7 +1421,8 @@ public class NotificationStackScrollLayout extends ViewGroup
     */
    private int targetScrollForView(ExpandableView v, int positionInLinearLayout) {
        return positionInLinearLayout + v.getIntrinsicHeight() +
                getImeInset() - getHeight() + getTopPadding();
                getImeInset() - getHeight()
                + ((!isExpanded() && isPinnedHeadsUp(v)) ? mHeadsUpInset : getTopPadding());
    }

    @Override
@@ -2052,9 +2053,15 @@ public class NotificationStackScrollLayout extends ViewGroup
    }

    private int getScrollRange() {
        int scrollRange = Math.max(0, mContentHeight - mMaxLayoutHeight);
        // In current design, it only use the top HUN to treat all of HUNs
        // although there are more than one HUNs
        int contentHeight = mContentHeight;
        if (!isExpanded() && mHeadsUpManager.hasPinnedHeadsUp()) {
            contentHeight = mHeadsUpInset + getTopHeadsUpPinnedHeight();
        }
        int scrollRange = Math.max(0, contentHeight - mMaxLayoutHeight);
        int imeInset = getImeInset();
        scrollRange += Math.min(imeInset, Math.max(0, mContentHeight - (getHeight() - imeInset)));
        scrollRange += Math.min(imeInset, Math.max(0, contentHeight - (getHeight() - imeInset)));
        return scrollRange;
    }

+9 −0
Original line number Diff line number Diff line
@@ -473,6 +473,15 @@ public class StackScrollAlgorithm {
                    childState.yTranslation = topState.yTranslation + topState.height
                            - childState.height;
                }

                // heads up notification show and this row is the top entry of heads up
                // notifications. i.e. this row should be the only one row that has input field
                // To check if the row need to do translation according to scroll Y
                // heads up show full of row's content and any scroll y indicate that the
                // translationY need to move up the HUN.
                if (!mIsExpanded && isTopEntry && ambientState.getScrollY() > 0) {
                    childState.yTranslation -= ambientState.getScrollY();
                }
            }
            if (row.isHeadsUpAnimatingAway()) {
                childState.hidden = false;