package Ġcom . bro live ira . extensions Ċ Ċ import Ġandroid . os . Build Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . View Parent Ċ import Ġcom . bro live ira . extensions . view helper . View Child Sequence Ċ import Ġjava . util .* Ċ Ċ var ĠView . transition Name Compat : ĠString ĊĠ Ġget () Ġ{ ĊĠĠĠ Ġreturn Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . LO L LI POP ) Ġ{ ĊĠĠĠĠĠ Ġthis . transition Name ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġreturn Ġ"" ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĠ Ġset ( value ) Ġ{ ĊĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . LO L LI POP ) Ġ{ ĊĠĠĠĠĠ Ġthis . transition Name Ġ= Ġvalue ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊ Ċ fun ĠView . addView Id ( used Ids : ĠMutable Map < Int , ĠView > Ġ= Ġthis . used Ids ()): ĠMutable Map < Int , ĠView > Ġ{ ĊĠ Ġif Ġ( id Ġ<= Ġ 0 ) Ġ{ ĊĠĠĠ Ġadd Random Id ( used Ids ) ĊĠ Ġ} ĊĠ Ġreturn Ġused Ids Ċ } Ċ Ċ fun ĠView . add Random Id ( used Ids : ĠMutable Map < Int , ĠView > Ġ= Ġthis . used Ids ()) Ġ{ ĊĠ Ġvar Ġid Ġ= Ġ- 1 ĊĠ Ġwhile ( id Ġ== Ġ- 1 Ġ|| Ġused Ids . containsKey ( id )) Ġ{ ĊĠĠĠ Ġid Ġ= ĠRandom (). nextInt ( Integer . MAX _ VALUE ) ĊĠ Ġ} ĊĠ Ġthis . id Ġ= Ġid ĊĠ Ġused Ids . put ( id , Ġthis ) Ċ } Ċ Ċ private Ġfun ĠView . used Ids ( checked Views : ĠMutable Map < View , ĠInt > Ġ= Ġthis . build View Tree ()): ĠMutable Map < Int , ĠView > Ġ{ ĊĠ Ġreturn Ġmutable Map Of < Int , ĠView >(). also Ġ{ Ġmap Ġ-> ĊĠĠĠ Ġchecked Views . forEach Ġ{ ĊĠĠĠĠĠ Ġmap . put ( it . value , Ġit . key ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ Ċ private Ġfun ĠView . build View Tree (): ĠMutable Map < View , ĠInt > Ġ{ ĊĠ Ġreturn Ġmutable Map Of < View , ĠInt >(). also Ġ{ Ġmap Ġ-> Ġthis . build View Tree ( map ) Ġ} Ċ } Ċ Ċ private Ġfun ĠView . build View Tree ( checked Views : ĠMutable Map < View , ĠInt >) Ġ{ ĊĠ Ġif Ġ( checked Views . containsKey ( this )) ĊĠĠĠ Ġreturn ĊĊĠ Ġchecked Views . put ( this , Ġthis . id ) ĊĊĠ Ġif ( this Ġis ĠViewGroup ) Ġ{ ĊĠĠĠ Ġchildren Sequence (). forEach Ġ{ ĊĠĠĠĠĠ Ġit . build View Tree ( checked Views ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĠ Ġparent ?. build View Tree ( checked Views ) Ċ } Ċ Ċ private Ġfun ĠView Parent . build View Tree ( checked Views : ĠMutable Map < View , ĠInt >) Ġ{ ĊĠ Ġif ( this Ġis ĠView ) Ġ{ ĊĠĠĠ Ġif Ġ( checked Views . containsKey ( this )) ĊĠĠĠĠĠ Ġreturn ĊĊĠĠĠ Ġchecked Views . put ( this , Ġthis . id ) ĊĠ Ġ} ĊĊĠ Ġif Ġ( this Ġis ĠViewGroup ) Ġ{ ĊĠĠĠ Ġchildren Sequence (). forEach Ġ{ ĊĠĠĠĠĠ Ġit . build View Tree ( checked Views ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠReturn Ġthe Ġ[ Sequence ] Ġof Ġall Ġchildren Ġof Ġthe Ġreceived Ġ[ View ], Ġrecursively . Ċ Ġ* ĠNote Ġthat Ġthe Ġsequence Ġis Ġnot Ġthread - safe . Ċ Ġ* Ċ Ġ* Ġ@ return Ġthe Ġ[ Sequence ] Ġof Ġchildren . Ċ Ġ*/ Ċ fun ĠView . children Sequence (): ĠSequence < View > Ġ= ĠView Child Sequence ( this ) Ċ