package Ġir . ma hoz ad . android Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . res . Typed Array Ċ import Ġandroid . graphics . Type face Ċ import Ġandroid . view . View Ċ import Ġandroidx . annotation . Style able Res Ċ import Ġandroidx . core . content . res . Resources Compat Ċ import Ġir . ma hoz ad . android . unit . Dimension Ċ import Ġkotlin . math . PI Ċ Ċ internal Ġfun ĠView . sp To Px ( sp : ĠFloat ) Ġ= Ġsp Ġ* Ġresources . display Metrics . scaled Density Ċ Ċ internal Ġfun ĠView . px To Sp ( px : ĠFloat ) Ġ= Ġpx Ġ/ Ġresources . display Metrics . scaled Density Ċ Ċ internal Ġfun ĠView . dp To Px ( dp : ĠFloat ) Ġ= Ġdp Ġ* Ġresources . display Metrics . density Ċ Ċ internal Ġfun ĠView . px To Dp ( px : ĠFloat ) Ġ= Ġpx Ġ/ Ġresources . display Metrics . density Ċ Ċ inline Ġval ĠInt . dp : ĠDimension Ġget () Ġ= Ġto Float (). dp Ċ inline Ġval ĠInt . sp : ĠDimension Ġget () Ġ= Ġto Float (). sp Ċ inline Ġval ĠInt . px : ĠDimension Ġget () Ġ= Ġto Float (). px Ċ inline Ġval ĠDouble . dp : ĠDimension Ġget () Ġ= Ġto Float (). dp Ċ inline Ġval ĠDouble . sp : ĠDimension Ġget () Ġ= Ġto Float (). sp Ċ inline Ġval ĠDouble . px : ĠDimension Ġget () Ġ= Ġto Float (). px Ċ inline Ġval ĠFloat . dp : ĠDimension Ġget () Ġ= ĠDimension . DP ( this ) Ċ inline Ġval ĠFloat . sp : ĠDimension Ġget () Ġ= ĠDimension . SP ( this ) Ċ inline Ġval ĠFloat . px : ĠDimension Ġget () Ġ= ĠDimension . PX ( this ) Ċ Ċ /** Ċ Ġ* ĠConverts Ġdegree Ġto Ġrad ian . Ċ Ġ*/ Ċ internal Ġfun ĠFloat . to Rad ian () Ġ= Ġ( this Ġ/ Ġ 3 6 0 ) Ġ* Ġ 2 Ġ* ĠPI . toFloat () Ċ Ċ internal Ġfun ĠFloat . to Degrees () Ġ= Ġ( this Ġ* Ġ 3 6 0 ) Ġ/ Ġ 2 Ġ* ĠPI . toFloat () Ċ Ċ internal Ġin fix Ġfun ĠFloat . until ( that : ĠFloat ) Ġ= Ġthis . range To ( that Ġ- Ġ 1 E - 1 0 f ) Ċ Ċ /** Ċ Ġ* ĠSee Ġhttps :// stackoverflow . com / a / 5 8 8 1 5 6 1 3 Ċ Ġ*/ Ċ internal Ġinline Ġfun Ġ< re ified ĠT Ġ: ĠEnum < T >> ĠTyped Array . get Enum (@ Style able Res Ġindex : ĠInt , Ġdefault : ĠT ) Ġ= ĊĠĠĠ Ġget Int ( index , Ġ- 1 ). let Ġ{ Ġif Ġ( it Ġ>= Ġ 0 ) Ġenum Values < T >() [ it ] Ġelse Ġdefault Ġ} Ċ Ċ /** Ċ Ġ* ĠOr Ċ Ġ* Ġ``` Ċ Ġ* Ġval Ġfont Id Ġ= Ġget ResourceId ( font , Ġ- 1 ) Ċ Ġ* Ġreturn Ġif Ġ( font Id Ġ== Ġ- 1 ) Ġdefault Font Ġelse ĠResources Compat . getFont ( context , Ġfont Id ) !! Ċ Ġ* Ġ``` Ċ Ġ*/ Ċ internal Ġfun ĠTyped Array . getFont ( context : ĠContext , Ġ@ Style able Res Ġfont : ĠInt , Ġdefault : ĠType face ) Ġ= ĊĠĠĠ Ġget ResourceId ( font , Ġ- 1 ). let Ġ{ Ġif Ġ( it Ġ>= Ġ 0 ) ĠResources Compat . getFont ( context , Ġit ) !! Ġelse Ġdefault Ġ} Ċ