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

Commit 4cce5648 authored by Peter_Liang's avatar Peter_Liang
Browse files

Fix the tooltip view can't be adjusted under the change of display or font size.

Solution:
Should update the latest resource value before showing the tooltip

Bug: 186484337
Bug: 186484718
Test: atest AccessibilityFloatingMenuViewTest
Change-Id: I088cebd454d1409c71da4e80eb36eeb819bacb39
parent 094d6c52
Loading
Loading
Loading
Loading
+12 −12
Original line number Diff line number Diff line
@@ -77,7 +77,6 @@ class BaseTooltipView extends FrameLayout {
        mAnchorView = anchorView;
        mCurrentLayoutParams = createDefaultLayoutParams();

        updateDimensions();
        initViews();
    }

@@ -85,14 +84,8 @@ class BaseTooltipView extends FrameLayout {
    protected void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);

        updateDimensions();
        updateTextView();

        mAnchorView.onConfigurationChanged(newConfig);
        final Rect anchorViewLocation = mAnchorView.getWindowLocationOnScreen();
        updateArrowWith(anchorViewLocation);
        updateWidthWith(anchorViewLocation);
        updateLocationWith(anchorViewLocation);
        updateTooltipView();

        mWindowManager.updateViewLayout(this, mCurrentLayoutParams);
    }
@@ -129,10 +122,7 @@ class BaseTooltipView extends FrameLayout {
        }

        mIsShowing = true;
        final Rect anchorViewLocation = mAnchorView.getWindowLocationOnScreen();
        updateArrowWith(anchorViewLocation);
        updateWidthWith(anchorViewLocation);
        updateLocationWith(anchorViewLocation);
        updateTooltipView();

        mWindowManager.addView(this, mCurrentLayoutParams);
    }
@@ -207,6 +197,16 @@ class BaseTooltipView extends FrameLayout {
                        R.dimen.accessibility_floating_tooltip_text_corner_radius);
    }

    private void updateTooltipView() {
        updateDimensions();
        updateTextView();

        final Rect anchorViewLocation = mAnchorView.getWindowLocationOnScreen();
        updateArrowWith(anchorViewLocation);
        updateWidthWith(anchorViewLocation);
        updateLocationWith(anchorViewLocation);
    }

    private void updateTextView() {
        mTextView.setTextSize(COMPLEX_UNIT_PX, mFontSize);
        mTextView.setPadding(mTextViewPadding, mTextViewPadding, mTextViewPadding,