package Ġcom . sed o . fluid menu . view Ċ Ċ import Ġandroid . animation . Animator Set Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroidx . appcompat . widget . AppCompat ImageView Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġcom . sed o . fluid menu . KEY _ FRAME _ IN _ MS Ċ import Ġcom . sed o . fluid menu . R Ċ import Ġcom . sed o . fluid menu . extension . interpol ators Ċ import Ġcom . sed o . fluid menu . extension . scale Animator Ċ import Ġcom . sed o . fluid menu . extension . translation Y Animator Ċ Ċ internal Ġclass ĠTop Container View Ġ@ Jvm Over loads Ġconstructor ( context : ĠContext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattrs : ĠAttributeSet ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdef Style Attr : ĠInt Ġ= Ġ 0 ) ĊĠĠĠ Ġ: ĠAppCompat ImageView ( context , Ġattrs , Ġdef Style Attr ), ĠAnimated View Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġset Image Drawable ( Context Compat . get Drawable ( context , ĠR . drawable . top )) ĊĠĠĠĠĠĠĠ Ġtranslation Y Ġ= Ġ 1 0 0 f ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġselect Animator Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠAn imator Set () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplay To gether ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselect Scale Animator , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselect Move Animator ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġde select Animator Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠAn imator Set () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplay To gether ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġde select Scale Animator , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġde select Move Animator ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġselect Scale Animator Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAn imator Set () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplay Se quent ially ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscale Animator ( 1 . 0 f , Ġ 1 . 2 5 f , Ġ 6 Ġ* ĠKEY _ FRAME _ IN _ MS , Ġinterpol ators [ 1 ]), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscale Animator ( 1 . 2 5 f , Ġ 0 . 8 5 f , Ġ 3 Ġ* ĠKEY _ FRAME _ IN _ MS , Ġinterpol ators [ 1 ]), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscale Animator ( 0 . 8 5 f , Ġ 1 . 0 f , Ġ 3 Ġ* ĠKEY _ FRAME _ IN _ MS , Ġinterpol ators [ 1 ])) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Delay Ġ= Ġ 1 1 Ġ* ĠKEY _ FRAME _ IN _ MS ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġselect Move Animator Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAn imator Set () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplay ( translation Y Animator ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 0 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetItem Transition Y Value ( context ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 7 Ġ* ĠKEY _ FRAME _ IN _ MS , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinterpol ators [ 0 ])) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Delay Ġ= Ġ 1 2 Ġ* ĠKEY _ FRAME _ IN _ MS ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġde select Scale Animator Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAn imator Set () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplay Se quent ially ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscale Animator ( 1 . 0 f , Ġ 0 . 8 5 f , Ġ 3 Ġ* ĠKEY _ FRAME _ IN _ MS , Ġinterpol ators [ 1 ]), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscale Animator ( 0 . 8 5 f , Ġ 1 . 2 5 f , Ġ 3 Ġ* ĠKEY _ FRAME _ IN _ MS , Ġinterpol ators [ 1 ]), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscale Animator ( 1 . 2 5 f , Ġ 1 . 0 f , Ġ 7 Ġ* ĠKEY _ FRAME _ IN _ MS , Ġinterpol ators [ 1 ])) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġde select Move Animator Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAn imator Set () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplay ( translation Y Animator ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetItem Transition Y Value ( context ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 0 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 0 Ġ* ĠKEY _ FRAME _ IN _ MS , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinterpol ators [ 0 ])) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Delay Ġ= Ġ 8 Ġ* ĠKEY _ FRAME _ IN _ MS ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Transition Y Value ( context : ĠContext ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ- super . getItem Transition Y Value ( context ) Ġ* Ġ 1 Ġ/ Ġ 6 ĊĠĠĠ Ġ} Ċ }