/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠGoogle , ĠInc . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġio . pl aid app . core . ui . transitions Ċ Ċ import Ġandroid . animation . Animator Ċ import Ġandroid . animation . Value Animator Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Color Matrix Ċ import Ġandroid . graphics . Color Matrix Color Filter Ċ import Ġandroid . transition . Transition Ċ import Ġandroid . transition . Transition Values Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġio . pl aid app . core . R Ċ import Ġio . pl aid app . core . util . Color Utils Ċ Ċ private Ġconst Ġval ĠAL PH A _ SCALE Ġ= Ġ 1 . 0 f Ċ Ċ /** Ċ Ġ* ĠA Ġtransition Ġthat Ġanim ates Ġthe ĠRGB Ġscale Ġof Ġan Ġ[ ImageView ] s Ġ` drawable ` Ġwhen Ġin Ġdark Ġmode . Ċ Ġ*/ Ċ class ĠDar ken Image ( context : ĠContext , Ġattrs : ĠAttributeSet ) Ġ: ĠTransition ( context , Ġattrs ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġis Dark Theme Ġ= ĠColor Utils . is Dark Theme ( context ) ĊĠĠĠ Ġprivate Ġval Ġinitial Rgb Scale : ĠFloat ĊĠĠĠ Ġprivate Ġval Ġfinal Rgb Scale : ĠFloat ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġta Ġ= Ġcontext . obtain Styled Attributes ( attrs , ĠR . style able . Dar ken Image ) ĊĠĠĠĠĠĠĠ Ġinitial Rgb Scale Ġ= Ġta . get Float ( R . style able . Dar ken Image _ initial Rgb Scale , Ġ 1 . 0 f ) ĊĠĠĠĠĠĠĠ Ġfinal Rgb Scale Ġ= Ġta . get Float ( R . style able . Dar ken Image _ final Rgb Scale , Ġ 1 . 0 f ) ĊĠĠĠĠĠĠĠ Ġta . recycle () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcapture Start Values ( transition Values : ĠTransition Values ?) Ġ{ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcapture End Values ( transition Values : ĠTransition Values ?) Ġ{ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Animator ( ĊĠĠĠĠĠĠĠ Ġscene Root : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ Ġstart Values : ĠTransition Values ?, ĊĠĠĠĠĠĠĠ Ġend Values : ĠTransition Values ? ĊĠĠĠ Ġ): ĠAn imator ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! is Dark Theme ) Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġif Ġ( initial Rgb Scale Ġ== Ġfinal Rgb Scale ) Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġiv Ġ= Ġend Values ?. view Ġas ? ĠImageView Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġreturn ĠValue Animator . of Float ( initial Rgb Scale , Ġfinal Rgb Scale ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Update Listener Ġ{ Ġlistener Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcm Ġ= ĠColor Matrix () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrgb Scale Ġ= Ġlistener . animated Value Ġas ĠFloat ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcm . set Scale ( rgb Scale , Ġrgb Scale , Ġrgb Scale , ĠAL PH A _ SCALE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiv . drawable . color Filter Ġ= ĠColor Matrix Color Filter ( cm ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ