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
This commit is contained in:
Peter_Liang
2021-05-13 23:59:31 +08:00
parent 094d6c52f1
commit 4cce564805

View File

@@ -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,