package Ġstudio . for face . the ia . utils Ċ Ċ import Ġandroid . animation . Animator Ċ import Ġandroid . graphics . drawable . Anim atable Ċ import Ġandroid . graphics . drawable . Anim atable 2 Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . widget . ImageView Ċ import Ġandroidx . core . view . post Delayed Ċ import Ġstudio . for face . the ia . Duration Ċ Ċ /** ĠStart ĠON CE Ġthe Ġanimation Ġof Ġthe Ġreceiver Ġ[ Drawable ] Ġif Ġany Ġ*/ Ċ internal Ġfun ĠDrawable . animate () Ġ{ ĊĠĠĠ Ġif Ġ( Ġthis Ġis ĠAnim atable Ġ) Ġstart () ĊĠĠĠ Ġif Ġ( ĠAndroid . MAR SH M ALLOW Ġ&& Ġthis Ġis ĠAnim atable 2 Ġ) Ġstart () Ċ } Ċ Ċ /** ĠLoop ĠFORE VER Ġthe Ġanimation Ġof Ġthe Ġreceiver Ġ[ Drawable ] Ġif Ġany Ġ*/ Ċ internal Ġfun ĠDrawable . animate Fore ver () Ġ{ ĊĠĠĠ Ġon Animation End ( Ġ:: animate Ġ) ĊĠĠĠ Ġanimate () Ċ } Ċ Ċ /** ĠLoop ĠFORE VER Ġthe Ġanimation Ġof Ġthe Ġreceiver Ġ[ Drawable ], Ġevery Ġ[ duration ], Ġif Ġany Ġ*/ Ċ internal Ġfun ĠDrawable . animate Every ( ĠimageView : ĠImageView , Ġduration : ĠDuration Ġ) Ġ{ ĊĠĠĠ Ġon Animation End Ġ{ ĠimageView . post Delayed ( Ġduration . time Ms , Ġ:: animate Ġ) Ġ} ĊĠĠĠ Ġanimate () Ċ } Ċ Ċ /** ĠExec utes Ġ[ block ] Ġafter Ġthe Ġanimation Ġended Ġ*/ Ċ private Ġinline Ġfun ĠDrawable . on Animation End ( Ġcross inline Ġblock : Ġ() Ġ-> ĠUnit Ġ) Ġ{ ĊĠĠĠ Ġif Ġ( ĠAndroid . MAR SH M ALLOW Ġ&& Ġthis Ġis ĠAnim atable 2 Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġregister Animation Callback ( Ġobject Ġ: ĠAnim atable 2 . Animation Callback () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation End ( Ġdrawable : ĠDrawable Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Animation End ( Ġdrawable Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġblock () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** ĠExecute Ġthe Ġlambda Ġ[ block ] Ġwithin Ġa Ġdis solve Ġanimation Ġon Ġthe Ġ[ ImageView ] Ġ*/ Ċ internal Ġinline Ġfun ĠImageView . with Dis solve ( Ġcross inline Ġblock : ĠImageView . () Ġ-> ĠUnit Ġ) Ġ{ ĊĠĠĠ Ġdis solve (). set Listener ( Ġobject Ġ: ĠAn imator . Animator Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠNot ifies Ġthe Ġend Ġof Ġthe Ġanimation . ĠThis Ġcallback Ġis Ġnot Ġinvoked ĊĠĠĠĠĠĠĠĠ Ġ* Ġfor Ġanimations Ġwith Ġrepeat Ġcount Ġset Ġto ĠIN FIN ITE . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġanimation ĠThe Ġanimation Ġwhich Ġreached Ġits Ġend . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation End ( Ġanimation : ĠAn imator Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġanimation . remove Listener ( Ġthis Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcond ense (). start () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠNot ifies Ġthe Ġrepet ition Ġof Ġthe Ġanimation . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġanimation ĠThe Ġanimation Ġwhich Ġwas Ġrepeated . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Repeat ( Ġanimation : ĠAn imator Ġ) Ġ{ Ġ/* Ġnoop Ġ*/ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠNot ifies Ġthe Ġcancellation Ġof Ġthe Ġanimation . ĠThis Ġcallback Ġis Ġnot Ġinvoked ĊĠĠĠĠĠĠĠĠ Ġ* Ġfor Ġanimations Ġwith Ġrepeat Ġcount Ġset Ġto ĠIN FIN ITE . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġanimation ĠThe Ġanimation Ġwhich Ġwas Ġcanceled . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Cancel ( Ġanimation : ĠAn imator Ġ) Ġ{ Ġ/* Ġnoop Ġ*/ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠNot ifies Ġthe Ġstart Ġof Ġthe Ġanimation . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġanimation ĠThe Ġstarted Ġanimation . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Start ( Ġanimation : ĠAn imator Ġ) Ġ{ Ġ/* Ġnoop Ġ*/ Ġ} ĊĠĠĠ Ġ} Ġ). start () Ċ } Ċ Ċ /** ĠThe Ġduration Ġof Ġthe Ġdis solve Ġanimation Ġ*/ Ċ private Ġconst Ġval ĠAN IM ATION _ DURATION Ġ= Ġ 1 8 1 L Ċ Ċ /** ĠDis solve Ġthe Ġ[ ImageView ] Ġwith Ġan Ġanimation Ġ*/ Ċ @ Published Api Ġinternal Ġfun ĠImageView . dis solve () Ġ= Ġanimate (). set Duration ( ĠAN IM ATION _ DURATION Ġ). alpha ( Ġ 0 . 2 f Ġ) Ċ Ċ /** ĠCon dense Ġthe Ġ[ ImageView ] Ġwith Ġan Ġanimation Ġ*/ Ċ @ Published Api Ġinternal Ġfun ĠImageView . cond ense () Ġ= Ġanimate (). set Duration ( ĠAN IM ATION _ DURATION Ġ). alpha ( Ġ 1 f Ġ)