From 70a00c7a17dd9883d5c6935d2a399666d053187c Mon Sep 17 00:00:00 2001 From: Sherry Zhou Date: Mon, 10 Apr 2023 19:57:58 +0000 Subject: [PATCH] Fix digit translation when digit width changes Update font variation settings in rebase Test: Manually Bug: 272315016 Change-Id: I4cf63e0acac5b7bc54d1e4d8ab0252d047ebb39a --- .../android/systemui/animation/TextInterpolator.kt | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/SystemUI/animation/src/com/android/systemui/animation/TextInterpolator.kt b/packages/SystemUI/animation/src/com/android/systemui/animation/TextInterpolator.kt index 3eb7fd84dc49a..23f16f2a31372 100644 --- a/packages/SystemUI/animation/src/com/android/systemui/animation/TextInterpolator.kt +++ b/packages/SystemUI/animation/src/com/android/systemui/animation/TextInterpolator.kt @@ -18,6 +18,7 @@ package com.android.systemui.animation import android.graphics.Canvas import android.graphics.Paint import android.graphics.fonts.Font +import android.graphics.fonts.FontVariationAxis import android.graphics.text.PositionedGlyphs import android.text.Layout import android.text.TextPaint @@ -211,8 +212,15 @@ class TextInterpolator(layout: Layout) { run.baseX[i] = MathUtils.lerp(run.baseX[i], run.targetX[i], progress) run.baseY[i] = MathUtils.lerp(run.baseY[i], run.targetY[i], progress) } - run.fontRuns.forEach { - it.baseFont = fontInterpolator.lerp(it.baseFont, it.targetFont, progress) + run.fontRuns.forEach { fontRun -> + fontRun.baseFont = + fontInterpolator.lerp(fontRun.baseFont, fontRun.targetFont, progress) + val tmpFontVariationsArray = mutableListOf() + fontRun.baseFont.axes.forEach { + tmpFontVariationsArray.add(FontVariationAxis(it.tag, it.styleValue)) + } + basePaint.fontVariationSettings = + FontVariationAxis.toFontVariationSettings(tmpFontVariationsArray) } } }