package Ġcz . pe k ost udio . ui utils . views Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroid . transition . Auto Transition Ċ import Ġandroid . transition . Transition Manager Ċ import Ġandroid . transition . Transition Set Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . View Tree Observer Ċ import Ġandroid . view . animation . Interpolator Ċ import Ġandroid . widget . EditText Ċ import Ġandroid . widget . Frame Layout Ċ import Ġandroid . widget . ScrollView Ċ import Ġandroidx . core . view . Window Insets Compat Ċ import Ġandroidx . core . view . update Padding Ċ import Ġandroidx . core . widget . Nested ScrollView Ċ import Ġcz . pe k ost udio . ui utils . dp Ċ import Ġcz . pe k ost udio . ui utils . run Delayed Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠL uk as ĠU rb ane k Ġon Ġ 2 4 / 0 4 / 2 0 2 0 . Ċ Ġ*/ Ċ Ċ @ Deprecated (" Use Ġis Visible Ġfrom Ġk tx - core ") Ċ fun ĠView . set Vis ib l ity ( visible : ĠBoolean ?, Ġinvisible As G one : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠ Ġvisibility Ġ= Ġif Ġ( visible Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ ĠView . VISIBLE ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( invisible As G one ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠView . hide If Null ( data : ĠUnit ?, Ġinvisible As G one : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠ Ġvisibility Ġ= Ġif Ġ( data Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ ĠView . VISIBLE ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( invisible As G one ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠViewGroup . start Group Transition ( ĊĠĠĠ Ġduration : ĠLong Ġ= Ġ 1 2 0 , ĊĠĠĠ Ġinterpol ator : ĠInterpol ator ? Ġ= Ġnull , ĊĠĠĠ Ġordering : ĠInt Ġ= ĠTransition Set . ORDER ING _ TO GET HER Ċ ) Ġ{ ĊĠĠĠ ĠTransition Manager . begin Delayed Transition ( this , ĊĠĠĠĠĠĠĠ Ġget Auto Transition ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġduration , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinterpol ator , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġordering ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) Ċ } Ċ Ċ fun ĠView . start Parent Transition ( ĊĠĠĠ Ġduration : ĠLong Ġ= Ġ 1 2 0 , ĊĠĠĠ Ġinterpol ator : ĠInterpol ator ? Ġ= Ġnull , ĊĠĠĠ Ġordering : ĠInt Ġ= ĠTransition Set . ORDER ING _ TO GET HER Ċ ) Ġ{ ĊĠĠĠ ĠTransition Manager . begin Delayed Transition ( this . parent Ġas ĠViewGroup , ĊĠĠĠĠĠĠĠ Ġget Auto Transition ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġduration , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinterpol ator , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġordering ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) Ċ } Ċ Ċ private Ġfun Ġget Auto Transition ( ĊĠĠĠ Ġduration : ĠLong , ĊĠĠĠ Ġinterpol ator : ĠInterpol ator ?, ĊĠĠĠ Ġordering : ĠInt Ċ ): ĠAuto Transition Ġ{ ĊĠĠĠ Ġreturn ĠAuto Transition (). also Ġ{ Ġtransition Ġ-> ĊĠĠĠĠĠĠĠ Ġinterpol ator ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransition . interpol ator Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtransition . ordering Ġ= Ġordering ĊĠĠĠĠĠĠĠ Ġtransition . duration Ġ= Ġduration ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠViewGroup . find Views By Tag ( tag : ĠString , Ġon View Find : Ġ( view : ĠView ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġchild s Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( it . tag Ġ== Ġtag ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon View Find ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( it Ġis ĠViewGroup ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . find Views By Tag ( tag , Ġon View Find ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠView . set Margins ( left : ĠInt Ġ= Ġ 0 , Ġtop : ĠInt Ġ= Ġ 0 , Ġright : ĠInt Ġ= Ġ 0 , Ġbottom : ĠInt Ġ= Ġ 0 ) Ġ{ ĊĠĠĠ Ġ( layout Params Ġas ? ĠViewGroup . Margin LayoutParams )?. run Ġ{ ĊĠĠĠĠĠĠĠ Ġset Margins ( left , Ġtop , Ġright , Ġbottom ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Jvm Name (" filtered Child s ") Ċ inline Ġfun Ġ< re ified ĠO Ġ: ĠView > ĠViewGroup . child s ( result : Ġ( O ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġrepeat ( child Count ) Ġ{ ĊĠĠĠĠĠĠĠ Ġget Child At ( it )?. let Ġ{ Ġview Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( view :: class Ġ== ĠO :: class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult ( view Ġas ĠO ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun ĠViewGroup . child s ( result : Ġ( View ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġrepeat ( child Count ) Ġ{ ĊĠĠĠĠĠĠĠ Ġget Child At ( it )?. let Ġ{ Ġview Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult ( view ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Jvm Name (" filtered Child s Indexed ") Ċ inline Ġfun Ġ< re ified ĠO Ġ: ĠView > ĠViewGroup . child s Indexed ( result : Ġ( O , Ġindex : ĠInt ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġvar Ġindex Ġ= Ġ 0 ĊĠĠĠ Ġrepeat ( child Count ) Ġ{ ĊĠĠĠĠĠĠĠ Ġget Child At ( it )?. let Ġ{ Ġview Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( view :: class Ġ== ĠO :: class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult ( view Ġas ĠO , Ġindex ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindex ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun ĠViewGroup . child s Indexed ( result : Ġ( View , Ġindex : ĠInt ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġvar Ġindex Ġ= Ġ 0 ĊĠĠĠ Ġrepeat ( child Count ) Ġ{ ĊĠĠĠĠĠĠĠ Ġget Child At ( it )?. let Ġ{ Ġview Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult ( view , Ġindex ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠView . on Global Layout ( block : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġval Ġview Ġ= Ġthis ĊĠĠĠ Ġview . view Tree Observer . add On Global Layout Listener ( object Ġ: ĠView Tree Observer . On Global Layout Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Global Layout () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . view Tree Observer . remove On Global Layout Listener ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ}) Ċ } Ċ Ċ fun ĠView . scroll Here () Ġ{ ĊĊĠĠĠ Ġfun ĠView . disable Scroll ( disabled : ĠBoolean ) Ġ{ Ġtag Ġ= Ġdisabled Ġ} ĊĊĠĠĠ Ġfun ĠView . is Scroll Disabled () Ġ= Ġtag Ġas ? ĠBoolean Ġ== Ġtrue ĊĊĠĠĠ Ġvar Ġview Y Pos In ScrollView Ġ= Ġtop ĊĊĠĠĠ Ġfun ĠView . find ScrollView (): ĠFrame Layout ? Ġ= Ġwhen Ġ( parent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠNested ScrollView Ġ-> Ġparent ĊĠĠĠĠĠĠĠ Ġis ĠScroll View Ġ-> Ġparent ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ( parent Ġas ? ĠViewGroup )?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Y Pos In ScrollView Ġ+= Ġtop ĊĠĠĠĠĠĠĠ Ġ} ?. find ScrollView () ĊĠĠĠ Ġ} Ġas ? ĠFrame Layout ? ĊĊĠĠĠ Ġfind ScrollView ()?. run Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Scroll Disabled ()) Ġreturn ĊĠĠĠĠĠĠĠ Ġdisable Scroll ( true ) ĊĠĠĠĠĠĠĠ Ġwhen ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠNested ScrollView Ġ-> Ġsmooth Scroll To ( 0 , Ġview Y Pos In ScrollView Ġ- Ġ 1 8 . dp , Ġ 5 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠScroll View Ġ-> Ġsmooth Scroll To ( 0 , Ġview Y Pos In ScrollView Ġ- Ġ 1 8 . dp ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrun Delayed ( 5 0 0 ) Ġ{ Ġdisable Scroll ( false ) Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT : ĠView > ĠViewGroup . findFirst View ByType (): ĠT ? Ġ{ ĊĠĠĠ Ġchild s < T > Ġ{ Ġreturn Ġit Ġ} ĊĠĠĠ Ġreturn Ġnull Ċ }