Merge "Update flyout post fontScale change"

This commit is contained in:
Lyn Han
2020-10-06 15:03:39 +00:00
committed by Android (Google) Code Review
4 changed files with 23 additions and 0 deletions

View File

@@ -3547,6 +3547,7 @@
<java-symbol type="id" name="bubble_button" />
<java-symbol type="dimen" name="bubble_visible_padding_end" />
<java-symbol type="dimen" name="bubble_gone_padding_end" />
<java-symbol type="dimen" name="text_size_body_2_material" />
<java-symbol type="dimen" name="messaging_avatar_size" />
<java-symbol type="dimen" name="messaging_group_sending_progress_size" />
<java-symbol type="dimen" name="messaging_image_rounding" />

View File

@@ -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);

View File

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

View File

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