@ file : Suppress (" Un stable Api Usage ") Ġ// ĠWe Ġknow Ġthat ĠL int ĠAPI 's Ġaren 't Ġfinal . Ċ Ċ package Ġcom . v ann ik tech . lin tr ules . android Ċ Ċ import Ġcom . android . tools . lint . detector . api . Issue Ċ import Ġcom . android . tools . lint . detector . api . Layout Detector Ċ import Ġcom . android . tools . lint . detector . api . Xml Context Ċ import Ġorg . w 3 c . dom . Element Ċ import Ġjava . util . HashSet Ċ Ċ abstract Ġclass ĠSuper flu ous Declaration Detector ( ĊĠ Ġprivate Ġval Ġissue : ĠIssue , ĊĠ Ġprivate Ġval Ġmessage : ĠString , ĊĠ Ġprivate Ġval Ġapplicable Super flu ous Attributes : ĠCollection < String > Ċ ) Ġ: ĠLayout Detector () Ġ{ ĊĠ Ġoverride Ġfun Ġget Applicable Elements () Ġ= ĠALL ĊĊĠ Ġoverride Ġfun Ġvisit Element ( context : ĠXml Context , Ġelement : ĠElement ) Ġ{ ĊĠĠĠ Ġval Ġattributes Ġ= Ġ( 0 Ġuntil Ġelement . attributes . length ) ĊĠĠĠĠĠ Ġ. map Ġ{ Ġelement . attributes . item ( it ) Ġ} ĊĠĠĠĠĠ Ġ. filter Not Ġ{ Ġit . has Tools Namespace () Ġ} ĊĠĠĠĠĠ Ġ. filter Ġ{ Ġapplicable Super flu ous Attributes . contains ( it . local Name ) Ġ} ĊĠĠĠĠĠ Ġ. map Ġ{ Ġit . node Value Ġ} ĊĠĠĠĠĠ Ġ. toList () ĊĊĠĠĠ Ġif Ġ( attributes . size Ġ== Ġapplicable Super flu ous Attributes . size Ġ&& ĠHashSet < String >( attributes ). size Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠ Ġ// ĠRe pl acing Ġwith Ġa ĠL int Ġfix Ġisn 't Ġpossible Ġyet . Ġhttps :// issue tracker . google . com / issues / 7 4 5 9 9 2 7 9 ĊĠĠĠĠĠ Ġcontext . report ( issue , Ġelement , Ġcontext . getLocation ( element ), Ġmessage ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ