package Ġcom . ta os zu . layout marker Ċ Ċ import Ġandroid . graphics . drawable . Layer Drawable Ċ import Ġandroid . util . Log Ċ import Ġandroid . view .* Ċ Ċ object ĠMarker Hub Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ å¼Ģå§ĭ æłĩè®° ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġstart Mark ( window : ĠWindow ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdecor View Ġ= Ġwindow . decor View . root View Ġas ĠViewGroup ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontent View Ġ= Ġdecor View . findViewById < ViewGroup >( android . R . id . content ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent View . view Tree Observer . add On Global Layout Listener ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠView Tree Observer . On Global Layout Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Global Layout () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// todo Ġdirty Ġaware ness ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtravel View ( content View ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent View . view Tree Observer . remove On Global Layout Listener ( this ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( Marker Constants . TAG , Ġe . localized Message ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ éģįåİĨ view ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġtravel View ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview . apply Border () ĊĠĠĠĠĠĠĠ Ġif Ġ( view Ġis ĠViewGroup ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . forEach Ġ{ Ġtravel View ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠViewGroup . forEach ( action : Ġ( child : ĠView ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġchild Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( getChild At ( i )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠView . apply Border () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( background Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbackground Ġ= ĠLayer Drawable ( array Of ( Border Drawable ( this ))) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġold Background Ġ= Ġbackground ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( old Background Ġis ĠLayer Drawable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( index Ġin Ġ 0 Ġuntil Ġold Background . numberOf Layers ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlayer Ġ= Ġold Background . get Drawable ( index ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( layer Ġis ĠBorder Drawable ) Ġ{ Ġ// Ġcontained ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . background Ġ= ĠLayer Drawable ( array Of ( old Background , ĠBorder Drawable ( this ))) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }