Skip to content

Commit fd818ae

Browse files
committed
Compute Duck.ai intro view height via TypedValue so it honors non-linear sp
1 parent 9ed1e7f commit fd818ae

1 file changed

Lines changed: 20 additions & 0 deletions

File tree

app/src/main/java/com/duckduckgo/app/onboarding/ui/page/BrandDesignUpdateWelcomePage.kt

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -402,6 +402,18 @@ class BrandDesignUpdateWelcomePage : OnboardingPageFragment(R.layout.content_onb
402402
}
403403
}
404404

405+
private fun sizeDuckAiIntroAnimationToTextSp() {
406+
val targetTextPx = TypedValue.applyDimension(
407+
TypedValue.COMPLEX_UNIT_SP,
408+
DUCK_AI_INTRO_TEXT_SP,
409+
resources.displayMetrics,
410+
)
411+
val viewHeightPx = (targetTextPx * DUCK_AI_INTRO_CANVAS_H / DUCK_AI_INTRO_TEXT_CANVAS_UNITS).toInt()
412+
binding.duckAiIntroAnimation.updateLayoutParams {
413+
height = viewHeightPx
414+
}
415+
}
416+
405417
private fun prepareDuckAiIntroAnimation() {
406418
binding.duckAiIntroAnimation.apply {
407419
setTextDelegate(
@@ -494,6 +506,8 @@ class BrandDesignUpdateWelcomePage : OnboardingPageFragment(R.layout.content_onb
494506
) {
495507
super.onViewCreated(view, savedInstanceState)
496508

509+
sizeDuckAiIntroAnimationToTextSp()
510+
497511
ViewGroupCompat.installCompatInsetsDispatch(binding.root)
498512
if (deviceInfo.isTablet()) {
499513
ViewCompat.setOnApplyWindowInsetsListener(binding.root) { v, windowInsets ->
@@ -2242,6 +2256,12 @@ class BrandDesignUpdateWelcomePage : OnboardingPageFragment(R.layout.content_onb
22422256
private const val GUIDELINE_START_PERCENT = 0.5f
22432257
private const val GUIDELINE_END_PERCENT = 0.39125f
22442258

2259+
// Sizes the Duck.ai intro Lottie so its baked-in text renders at DUCK_AI_INTRO_TEXT_SP.
2260+
// Derived from the JSON's font-size scale chain: 24 * 3.4 * 0.78 * 1.085 ≈ 69 canvas units at end state.
2261+
private const val DUCK_AI_INTRO_TEXT_SP = 24f
2262+
private const val DUCK_AI_INTRO_CANVAS_H = 260f
2263+
private const val DUCK_AI_INTRO_TEXT_CANVAS_UNITS = 69f
2264+
22452265
private const val TEXT_INTRO_DELAY = 400L
22462266
private const val TEXT_INTRO_OPACITY_DURATION = 400L
22472267
private const val TEXT_INTRO_TRANSLATE_DURATION = 600L

0 commit comments

Comments
 (0)