package Ġcom . github . snow dream . util . log . filter Ċ Ċ import Ġandroid . text . TextUtils Ċ import Ġcom . github . snow dream . util . log . Log Item Ċ import Ġjava . util . regex . Pattern Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġsnow dream Ġon Ġ 1 7 / 4 / 2 4 . Ċ Ġ*/ Ċ class ĠTag Filter Ġ: ĠAbstract Log Filter Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġtag List : ĠMutable List < String > Ġ= Ġmutable ListOf () ĊĊĠĠĠ Ġprivate Ġvar Ġtag Regular Map : ĠMutable Map < String , ĠPattern > Ġ= Ġmutable Map Of () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġwhether Ġthe Ġtag Ġis ĠRegular ĠExpression Ġ( RegExp ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġis Regular Ġ= Ġfalse ĊĊĠĠĠ Ġconstructor ( tag : ĠString , Ġis Regular : ĠBoolean Ġ= Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! tag List . contains ( tag )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtag List . add ( tag ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġthis . is Regular Ġ= Ġis Regular ĊĊĠĠĠĠĠĠĠ Ġif Ġ( is Regular ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! tag Regular Map . containsKey ( tag )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpattern Ġ= ĠPattern . compile ( tag ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag Regular Map . put ( tag , Ġpattern ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġconstructor ( tags : ĠList < String >, Ġis Regular : ĠBoolean Ġ= Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( tag Ġin Ġtags ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . isEmpty ( tag )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! tag List . contains ( tag )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag List . add ( tag ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . is Regular Ġ= Ġis Regular ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Regular ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! tag Regular Map . containsKey ( tag )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpattern Ġ= ĠPattern . compile ( tag ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag Regular Map . put ( tag , Ġpattern ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġfilter ( item : ĠLog Item ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( tag List . isEmpty () Ġ&& Ġtag Regular Map . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( is Regular ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ(( regular , Ġpattern ) Ġin Ġtag Regular Map ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmatcher Ġ= Ġpattern . matcher ( item . msg ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( matcher . matches ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tag List . contains ( item . tag )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} Ċ }