package Ġcom . github . gi ac om op ar isi . d roid box . validator . helper Ċ Ċ import Ġandroid . view . View Ċ import Ġandroid . view . View . VISIBLE Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . github . gi ac om op ar isi . d roid box . validator . rule . core . Droid Validator Rule Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠG iac omo ĠPar isi Ġon Ġ 2 9 / 0 1 / 1 8 . Ċ Ġ* Ġhttps :// github . com / gi ac omo Par isi Ċ Ġ*/ Ċ Ċ object ĠD roid View TagHelper Ġ{ ĊĊĠĠĠ Ġfun Ġappend Value ( tag Id : ĠInt , Ġview : ĠView , Ġvalue : ĠD roid Validator Rule < *, Ġ* >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġobj Ġ= Ġview . getTag ( tag Id ) ĊĠĠĠĠĠĠĠ Ġif Ġ( obj Ġ!= Ġnull Ġ&& Ġobj Ġis ĠMutable List < *> Ġ&& Ġobj . size Ġ> Ġ 0 Ġ&& Ġobj [ 0 ] Ġis ĠD roid Validator Rule < *, Ġ* >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( obj Ġas ĠMutable List < Droid Validator Rule < *, Ġ* >> ). add ( value ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtype List Ġ= ĠArrayList < Droid Validator Rule < *, Ġ* >>() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype List . add ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . setTag ( tag Id , Ġtype List ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Views By Tag ( root : ĠViewGroup , Ġtag Id : ĠInt ): ĠList < View > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġviews Ġ= ĠArrayList < View >() ĊĠĠĠĠĠĠĠ Ġval Ġchild Count Ġ= Ġroot . child Count ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġchild Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchild Ġ= Ġroot . getChild At ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( child Ġis ĠViewGroup Ġ&& Ġchild . visibility Ġ== ĠVIS IBLE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġviews . addAll ( get Views By Tag ( child , Ġtag Id )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd View When Contains Tag ( tag Id , Ġviews , Ġchild ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġviews ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfilter View With Tag ( tag Id : ĠInt , Ġview : ĠView ): ĠList < View > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview sWith Tags Ġ= ĠArrayList < View >() ĊĠĠĠĠĠĠĠ Ġadd View When Contains Tag ( tag Id , Ġview sWith Tags , Ġview ) ĊĠĠĠĠĠĠĠ Ġreturn Ġview sWith Tags ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< ViewType Ġ: ĠView > Ġfilter View sWith Tag ( tag Id : ĠInt , Ġviews : ĠList < ViewType >): ĠList < View > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview sWith Tags Ġ= ĠArrayList < View >() ĊĠĠĠĠĠĠĠ Ġfor Ġ( view Ġin Ġviews ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd View When Contains Tag ( tag Id , Ġview sWith Tags , Ġview ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġview sWith Tags ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd View When Contains Tag ( tag Id : ĠInt , Ġviews : ĠMutable List < View >, Ġview : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtag Value Ġ= Ġview . getTag ( tag Id ) ĊĠĠĠĠĠĠĠ Ġif Ġ( tag Value Ġ!= Ġnull Ġ&& Ġview . visibility Ġ== ĠVIS IBLE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġviews . add ( view ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ