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

Commit d9ce069a authored by Brian Attwell's avatar Brian Attwell
Browse files

Keep landscape quickcontact title on screen

When QuickContacts opens partially offset from the top of
the screen, the title should be visible. To do this, I
offset the title padding by the amount that QuickContacts is
offset from the top of the screen, up to a maximum amount
equal to the starting QuickContact offset.

See bug for demo mp4s.

Bug: 17417615
Change-Id: Ie39c130c23c9541bdd912bbb406a9bae0966e965
parent 7a750da6
Loading
Loading
Loading
Loading
+19 −1
Original line number Diff line number Diff line
@@ -375,6 +375,13 @@ public class MultiShrinkScroller extends FrameLayout {
        mTitleGradientView.setLayoutParams(titleGradientLayoutParams);
    }

    private void setTitleGradientViewBottomMargin(int bottomMargin) {
        final FrameLayout.LayoutParams titleGradientLayoutParams
                = (FrameLayout.LayoutParams) mTitleGradientView.getLayoutParams();
        titleGradientLayoutParams.bottomMargin = bottomMargin;
        mTitleGradientView.setLayoutParams(titleGradientLayoutParams);
    }

    public void setTitle(String title) {
        mLargeTextView.setText(title);
        mPhotoTouchInterceptOverlay.setContentDescription(title);
@@ -942,7 +949,18 @@ public class MultiShrinkScroller extends FrameLayout {
     */
    private void updateHeaderTextSizeAndMargin() {
        if (mIsTwoPanel) {
            // The text size stays at a constant size & location in two panel layouts.
            // This is the amount of additional padding needed to keep the title text on screen.
            final int transparentHeight = mTransparentView.getLayoutParams().height;
            // We want to keep the title text on screen as we scroll, up to a point. Once we
            // scroll farther off the screen than the semi collapsed starting height, stop
            // compensating for scrolling.
            final int scrollCompensation = Math.min(transparentHeight, mTransparentStartHeight);
            mLargeTextView.setPadding(mLargeTextView.getPaddingLeft(),
                    mLargeTextView.getPaddingTop(), mLargeTextView.getPaddingRight(),
                    scrollCompensation);
            // Use margin to offset the title gradient instead of padding. This is necessary since
            // GradientDrawable appears to ignore the insets suggested by its View's padding.
            setTitleGradientViewBottomMargin(scrollCompensation);
            return;
        }