/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠPaul ĠR y bits ky i , Ġpa ul . ry bits ky i . work @ gmail . com Ċ Ġ* Ċ Ġ* Ġ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 . Ċ Ġ*/ Ċ Ċ @ file : Jvm Name (" Number Utils ") Ċ Ċ package Ġcom . paul ry bits ky i . commons . k tx Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . res . Color State List Ċ import Ġandroid . graphics . Color Ċ import Ġandroidx . annotation . Color Int Ċ import Ġandroidx . annotation . Float Range Ċ import Ġkotlin . math . round ToInt Ċ Ċ private Ġconst Ġval ĠCOLOR _ ALPHA _ MAX Ġ= Ġ 2 5 5 Ċ private Ġconst Ġval ĠCOLOR _ ALPHA _ MIN Ġ= Ġ 0 Ċ Ċ @ Suppress (" Replace Range To With Until ", Ġ" Magic Number ") Ċ private Ġval ĠCOLOR _ ALPHA _ TRANSL UC ENT _ RANGE Ġ= Ġ( COLOR _ ALPHA _ MIN Ġ+ Ġ 1 ) .. ( COLOR _ ALPHA _ MAX Ġ- Ġ 1 ) Ċ Ċ val ĠInt . is Even : ĠBoolean ĊĠĠĠ Ġget () Ġ= Ġ(( this Ġand Ġ 1 ) Ġ== Ġ 0 ) Ċ Ċ val ĠInt . is Odd : ĠBoolean ĊĠĠĠ Ġget () Ġ= Ġ! is Even Ċ Ċ val ĠLong . is Even : ĠBoolean ĊĠĠĠ Ġget () Ġ= Ġ(( this Ġand Ġ 1 L ) Ġ== Ġ 0 L ) Ċ Ċ val ĠLong . is Odd : ĠBoolean ĊĠĠĠ Ġget () Ġ= Ġ! is Even Ċ Ċ val ĠInt . is Opaque : ĠBoolean ĊĠĠĠ Ġget () Ġ= Ġ( Color . alpha ( this ) Ġ== ĠCOLOR _ ALPHA _ MAX ) Ċ Ċ val ĠInt . is Transparent : ĠBoolean ĊĠĠĠ Ġget () Ġ= Ġ( Color . alpha ( this ) Ġ== ĠCOLOR _ ALPHA _ MIN ) Ċ Ċ val ĠInt . is Trans luc ent : ĠBoolean ĊĠĠĠ Ġget () Ġ= Ġ( Color . alpha ( this ) Ġin ĠCOLOR _ ALPHA _ TRANSL UC ENT _ RANGE ) Ċ Ċ fun ĠInt . dp To Px ( context : ĠContext ): ĠInt Ġ{ ĊĠĠĠ Ġreturn Ġto Float (). dp To Px ( context ). round ToInt () Ċ } Ċ Ċ fun ĠFloat . dp To Px ( context : ĠContext ): ĠFloat Ġ{ ĊĠĠĠ Ġreturn Ġ( this Ġ* Ġcontext . display Metrics . density ) Ċ } Ċ Ċ fun ĠInt . sp To Px ( context : ĠContext ): ĠInt Ġ{ ĊĠĠĠ Ġreturn Ġto Float (). sp To Px ( context ). round ToInt () Ċ } Ċ Ċ fun ĠFloat . sp To Px ( context : ĠContext ): ĠFloat Ġ{ ĊĠĠĠ Ġreturn Ġ( this Ġ* Ġcontext . display Metrics . scaled Density ) Ċ } Ċ Ċ fun ĠInt . px To Dp ( context : ĠContext ): ĠInt Ġ{ ĊĠĠĠ Ġreturn Ġto Float (). px To Dp ( context ). round ToInt () Ċ } Ċ Ċ fun ĠFloat . px To Dp ( context : ĠContext ): ĠFloat Ġ{ ĊĠĠĠ Ġreturn Ġ( this Ġ/ Ġcontext . display Metrics . density ) Ċ } Ċ Ċ fun ĠInt . px To Sp ( context : ĠContext ): ĠInt Ġ{ ĊĠĠĠ Ġreturn Ġto Float (). px To Sp ( context ). round ToInt () Ċ } Ċ Ċ fun ĠFloat . px To Sp ( context : ĠContext ): ĠFloat Ġ{ ĊĠĠĠ Ġreturn Ġ( this Ġ/ Ġcontext . display Metrics . scaled Density ) Ċ } Ċ Ċ fun ĠInt . contains Bits ( bits : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġ(( this Ġand Ġbits ) Ġ== Ġbits ) Ċ } Ċ Ċ /** Ċ Ġ* ĠAdjust s Ġvalue Ġof Ġthe Ġalpha Ġchannel Ġof Ġthe Ġcolor . Ċ Ġ* Ċ Ġ* Ġ@ param Ġalpha ĠThe Ġalpha Ġto Ġset . ĠAccept s Ġvalues Ġin Ġa Ġrange Ġfrom Ġ 0 . 0 Ġ( min ) Ċ Ġ* Ġto Ġ 1 . 0 Ġ( max ). Ċ Ġ* Ċ Ġ* Ġ@ return ĠThe Ġcolor Ġwith Ġadjusted Ġalpha Ċ Ġ*/ Ċ fun Ġ@ receiver : Color Int ĠInt . adjust Alpha (@ Float Range ( from Ġ= Ġ 0 . 0 , Ġto Ġ= Ġ 1 . 0 ) Ġalpha : ĠFloat ): ĠInt Ġ{ ĊĠĠĠ Ġval Ġalpha Channel Ġ= Ġ( COLOR _ ALPHA _ MAX Ġ* Ġalpha ). toInt () ĊĠĠĠ Ġval Ġred Channel Ġ= ĠColor . red ( this ) ĊĠĠĠ Ġval Ġgreen Channel Ġ= ĠColor . green ( this ) ĊĠĠĠ Ġval Ġblue Channel Ġ= ĠColor . blue ( this ) ĊĊĠĠĠ Ġreturn ĠColor . arg b ( alpha Channel , Ġred Channel , Ġgreen Channel , Ġblue Channel ) Ċ } Ċ Ċ fun Ġ@ receiver : Color Int ĠInt . with Half Alpha (): ĠInt Ġ{ ĊĠĠĠ Ġreturn Ġadjust Alpha ( alpha Ġ= Ġ 0 . 5 f ) Ċ } Ċ Ċ fun Ġ@ receiver : Color Int ĠInt . to Color State List (): ĠColor State List Ġ{ ĊĠĠĠ Ġreturn ĠColor State List . valueOf ( this ) Ċ } Ċ