package Ġcom . cr az yle g end . kotlin extensions . views Ċ Ċ import Ġandroid . graphics . Rect Ċ import Ġandroid . view . View Ċ import Ġandroidx . core . view . is G one Ċ import Ġandroidx . core . view . isVisible Ċ import Ġcom . cr az yle g end . kotlin extensions . context . dp 2 px Ċ import Ġcom . cr az yle g end . kotlin extensions . context . px 2 dp ĊĊ Ċ /** Ċ Ġ* ĠCreated Ġby Ġcr azy Ġon Ġ 7 / 2 4 / 2 0 Ġto Ġlong Ġlive Ġand Ġpro sper Ġ! Ċ Ġ*/ Ċ Ċ inline Ġfun ĠView . if Visible ( action : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif Ġ( isVisible ) Ġaction () Ċ } ĊĊ Ċ inline Ġfun ĠView . if In visible ( action : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif Ġ( isIn visible ) Ġaction () Ċ } ĊĊ Ċ inline Ġfun ĠView . if G one ( action : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif Ġ( is G one ) Ġaction () Ċ } ĊĊ Ċ private Ġval Ġtmp Int Arr Ġ= ĠInt Array ( 2 ) Ċ Ċ /** Ċ Ġ* ĠFunction Ġwhich Ġupdates Ġthe Ġgiven Ġ[ rect ] Ġwith Ġthis Ġview 's Ġposition Ġand Ġbounds Ġin Ġits Ġwindow . Ċ Ġ*/ Ċ fun ĠView . copy Bounds In Window ( rect : ĠRect ) Ġ{ ĊĠĠĠ Ġif Ġ( is La id Out Ġ&& Ġis Attached To Window ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrect . set ( 0 , Ġ 0 , Ġwidth , Ġheight ) ĊĠĠĠĠĠĠĠ Ġget Location In Window ( tmp Int Arr ) ĊĠĠĠĠĠĠĠ Ġrect . offset ( tmp Int Arr [ 0 ], Ġtmp Int Arr [ 1 ]) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Can Ġnot Ġcopy Ġbounds Ġas Ġview Ġis Ġnot Ġla id Ġout " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ġor Ġattached Ġto Ġwindow ") ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ /** Ċ Ġ* ĠH ides Ġall Ġthe Ġviews Ġpassed Ġin Ġthe Ġarguments Ċ Ġ*/ Ċ fun Ġhide Views ( var arg Ġviews : ĠView ) Ġ= Ġviews . as Sequence (). forEach Ġ{ Ġit . visibility Ġ= ĠView . GONE Ġ} Ċ Ċ /** Ċ Ġ* ĠShows Ġall Ġthe Ġviews Ġpassed Ġin Ġthe Ġarguments Ċ Ġ*/ Ċ fun Ġshow Views ( var arg Ġviews : ĠView ) Ġ= Ġviews . as Sequence (). forEach Ġ{ Ġit . visibility Ġ= ĠView . VISIBLE Ġ} Ċ Ċ fun ĠView . px 2 dp ( px Value : ĠFloat ): ĠFloat ? Ġ{ ĊĠĠĠ Ġreturn Ġcontext ?. px 2 dp ( px Value ) Ċ } Ċ Ċ fun ĠView . dp 2 px ( dp Value : ĠFloat ): ĠInt ? Ġ{ ĊĠĠĠ Ġreturn Ġcontext ?. dp 2 px ( dp Value ) Ċ } Ċ Ċ fun ĠView . dp 2 px ( dp Value : ĠInt ): ĠInt ? Ġ{ ĊĠĠĠ Ġreturn Ġcontext ?. dp 2 px ( dp Value ) Ċ } Ċ Ċ fun ĠView . px 2 dp ( px Value : ĠInt ): ĠFloat ? Ġ{ ĊĠĠĠ Ġreturn Ġcontext ?. px 2 dp ( px Value ) Ċ }