package Ġsoup . animation . sample . drawable Ċ Ċ import Ġandroid . animation . Value Animator Ċ import Ġandroid . graphics . drawable . Anim atable Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroidx . annotation . Drawable Res Ċ import Ġandroidx . core . animation . do On Repeat Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . core . view . post On Animation Delayed Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġkotlinx . android . synt hetic . main . fragment _ drawable .* Ċ import Ġsoup . animation . sample . R Ċ import Ġsoup . animation . sample . interpol ator . Interpol ators Ċ Ċ class ĠDrawable Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġanim ator Ġ= ĠValue Animator . of Float ( 0 f , Ġ 1 f ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġrepeat Mode Ġ= ĠValue Animator . RE VERSE ĊĠĠĠĠĠĠĠ Ġrepeat Count Ġ= ĠValue Animator . INF IN ITE ĊĠĠĠĠĠĠĠ Ġduration Ġ= Ġ 1 _ 0 0 0 L ĊĠĠĠĠĠĠĠ Ġinterpol ator Ġ= ĠInterpol ators . LINEAR ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ drawable , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġanim ator . do On Repeat Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate R ipple Effect () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġanim ator . add Update Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Ui ( it . animated Fraction ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġanim ator . start () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġanim ator . removeAll Listeners () ĊĠĠĠĠĠĠĠ Ġanim ator . removeAll Update Listeners () ĊĠĠĠĠĠĠĠ Ġanim ator . cancel () ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate R ipple Effect () Ġ{ ĊĠĠĠĠĠĠĠ Ġanimated Vector . toggle () ĊĠĠĠĠĠĠĠ Ġbattery Icon . perform R ipple Effect () ĊĠĠĠĠĠĠĠ Ġbattery Icon . toggle () ĊĠĠĠĠĠĠĠ Ġstar Icon . toggle () ĊĊĠĠĠĠĠĠĠ Ġpor trait . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Activated ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Activated Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Image Drawable And Start ( R . drawable . ic _ portrait _ from _ auto _ rotate _ animation ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Activated Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Image Drawable And Start ( R . drawable . ic _ portrait _ to _ auto _ rotate _ animation ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlandscape . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Activated ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Activated Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Image Drawable And Start ( R . drawable . ic _ land scape _ from _ auto _ rotate _ animation ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Activated Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Image Drawable And Start ( R . drawable . ic _ land scape _ to _ auto _ rotate _ animation ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġflash light . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Activated ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Activated Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Image Drawable And Start ( R . drawable . ic _ signal _ flash light _ enable _ animation ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Activated Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Image Drawable And Start ( R . drawable . ic _ signal _ flash light _ disable _ animation ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Ui ( fraction : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbattery Clip . setImage Level (( fraction Ġ* Ġ 1 0 0 0 0 ). toInt ()) ĊĠĠĠĠĠĠĠ Ġbattery Ch arging Clip . setImage Level (( fraction Ġ* Ġ 1 0 0 0 0 ). toInt ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠView . perform R ipple Effect () Ġ{ ĊĠĠĠĠĠĠĠ Ġis Pressed Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġpost On Animation Delayed ( 5 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Pressed Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠImageView . setImage Drawable And Start (@ Drawable Res Ġres Id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdrawable Ġ= ĠContext Compat . get Drawable ( context , Ġres Id ) ĊĠĠĠĠĠĠĠ Ġset Image Drawable ( drawable ) ĊĠĠĠĠĠĠĠ Ġif Ġ( drawable Ġis ĠAnim atable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrawable . start () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ