diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index 54f6e8b274437..d896a265a755f 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -3547,6 +3547,7 @@ + diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java index d4780f4b7da14..2372529b6f111 100644 --- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java +++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java @@ -231,6 +231,11 @@ public class BubbleController implements Bubbles, ConfigurationController.Config */ private int mDensityDpi = Configuration.DENSITY_DPI_UNDEFINED; + /** + * Last known font scale, used to detect font size changes in {@link #onConfigChanged}. + */ + private float mFontScale = 0; + /** Last known direction, used to detect layout direction changes @link #onConfigChanged}. */ private int mLayoutDirection = View.LAYOUT_DIRECTION_UNDEFINED; @@ -990,6 +995,10 @@ public class BubbleController implements Bubbles, ConfigurationController.Config mBubbleIconFactory = new BubbleIconFactory(mContext); mStackView.onDisplaySizeChanged(); } + if (newConfig.fontScale != mFontScale) { + mFontScale = newConfig.fontScale; + mStackView.updateFlyout(mFontScale); + } if (newConfig.getLayoutDirection() != mLayoutDirection) { mLayoutDirection = newConfig.getLayoutDirection(); mStackView.onLayoutDirectionChanged(mLayoutDirection); diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleFlyoutView.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleFlyoutView.java index 1fa3aaae5e617..69f7828ff8fc0 100644 --- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleFlyoutView.java +++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleFlyoutView.java @@ -34,6 +34,7 @@ import android.graphics.RectF; import android.graphics.drawable.Drawable; import android.graphics.drawable.ShapeDrawable; import android.text.TextUtils; +import android.util.TypedValue; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -212,6 +213,14 @@ public class BubbleFlyoutView extends FrameLayout { super.onDraw(canvas); } + void updateFontSize(float fontScale) { + final float fontSize = mContext.getResources() + .getDimensionPixelSize(com.android.internal.R.dimen.text_size_body_2_material); + final float newFontSize = fontSize * fontScale; + mMessageText.setTextSize(TypedValue.COMPLEX_UNIT_PX, newFontSize); + mSenderText.setTextSize(TypedValue.COMPLEX_UNIT_PX, newFontSize); + } + /** Configures the flyout, collapsed into to dot form. */ void setupFlyoutStartingAsDot( Bubble.FlyoutMessage flyoutMessage, diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleStackView.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleStackView.java index 0dcd1d2b4b092..e83954b8de188 100644 --- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleStackView.java +++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleStackView.java @@ -1156,6 +1156,10 @@ public class BubbleStackView extends FrameLayout addView(mFlyout, new FrameLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT)); } + void updateFlyout(float fontScale) { + mFlyout.updateFontSize(fontScale); + } + private void updateOverflow() { mBubbleOverflow.update(); mBubbleContainer.reorderView(mBubbleOverflow.getIconView(),