/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 5 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . android . tools . lint . checks Ċ Ċ import Ġcom . android . tools . lint . detector . api . Detector Ċ Ċ class ĠManifest Resource Detector Test Ġ: ĠAbstract Check Test () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġget Detector (): ĠDetector Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠManifest Resource Detector () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest () Ġ{ ĊĠĠĠĠĠĠĠ Ġlint (). files ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmanifest ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< manifest Ġxmlns : android =" http :// schemas . android . com / apk / res / android " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage =" foo . bar 2 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : version Code =" 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : version Name =" 1 . 0 " Ġ> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< uses - sdk Ġandroid : min Sdk Version =" 1 4 " Ġ/> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< application ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : icon ="@ drawable / ic _ launcher " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : label ="@ string / app _ name " Ġ> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< receiver Ġandroid : enabled ="@ bool / has _ h oney comb " Ġandroid : name =" com . google . android . apps . ios ched . app widget . Schedule Widget Provider "> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< intent - filter > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< action Ġandroid : name =" android . app widget . action . APP WIDGET _ UPDATE "/> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ intent - filter > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ<!-- ĠThis Ġspecifies Ġthe Ġwidget Ġprovider Ġinfo Ġ--> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< meta - data Ġandroid : name =" android . app widget . provider " Ġandroid : resource ="@ xml / widget info "/> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ receiver > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ application > ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ manifest > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġxml ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res / values / values . xml ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< resources > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< string Ġname =" app _ name "> App ĠName Ġ( Default )</ string > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< bool Ġname =" has _ h oney comb "> false </ bool > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ resources > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġxml ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res / values - v 1 1 / values . xml ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< resources > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< bool Ġname =" has _ h oney comb "> true </ bool > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ resources > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġxml ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res / values - en - r US / values . xml ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< resources > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< string Ġname =" app _ name "> App ĠName Ġ( English )</ string > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ resources > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġxml ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res / values - xlarge / values . xml ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< resources > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< dim en Ġname =" activity _ horizontal _ margin "> 1 6 dp </ dim en > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ resources > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed () ĊĠĠĠĠĠĠĠ Ġ). incremental (" Android Manifest . xml "). run (). expect Clean () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Invalid Manifest Reference () Ġ{ ĊĠĠĠĠĠĠĠ Ġlint (). files ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmanifest ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< manifest Ġxmlns : android =" http :// schemas . android . com / apk / res / android " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage =" test . pkg "> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< uses - sdk Ġandroid : min Sdk Version =" 1 4 " Ġ/> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< application Ġandroid : full Backup Content ="@ xml / backup "> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< service ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : process ="@ string / location _ process " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : enabled ="@ bool / enable _ we arable _ location _ service "> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ service > ĠĠĠ Ġ</ application > ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ manifest > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġxml ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res / values / values . xml ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< resources > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< string Ġname =" location _ process "> Location ĠProcess </ string > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ resources > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġxml ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res / values / bool s . xml ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< resources Ġxmlns : xl iff =" urn : oasis : names : tc : xl iff : document : 1 . 2 "> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< bool Ġname =" enable _ we arable _ location _ service "> true </ bool > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ resources > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġxml ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res / values - en - r US / values . xml ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< resources > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< string Ġname =" location _ process "> Location ĠProcess Ġ( English )</ string > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ resources > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġxml ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res / values - watch / bool s . xml ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< resources Ġxmlns : xl iff =" urn : oasis : names : tc : xl iff : document : 1 . 2 "> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< bool Ġname =" enable _ we arable _ location _ service "> false </ bool > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ resources > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġxml ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res / xml / backup . xml ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< full - backup - content > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< include Ġdomain =" file " Ġpath =" dd "/> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< exclude Ġdomain =" file " Ġpath =" dd / fo 3 o . txt "/> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< exclude Ġdomain =" file " Ġpath =" dd / ss / foo . txt "/> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ full - backup - content > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġxml ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res / xml - m cc / backup . xml ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< full - backup - content > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< include Ġdomain =" file " Ġpath =" m cc "/> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ full - backup - content > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed () ĊĠĠĠĠĠĠĠ Ġ). incremental (" Android Manifest . xml "). run (). expect ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAndroid Manifest . xml : 6 : ĠError : ĠResources Ġreferenced Ġfrom Ġthe Ġmanifest Ġcannot Ġvary Ġby Ġconfiguration Ġ( except Ġfor Ġversion Ġqual ifiers , Ġe . g . Ġ- v 2 1 ). ĠFound Ġvariation Ġin Ġm cc Ġ[ Manifest Resource ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< application Ġandroid : full Backup Content ="@ xml / backup "> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ ~~~~~~~~ ~~~ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAndroid Manifest . xml : 8 : ĠError : ĠResources Ġreferenced Ġfrom Ġthe Ġmanifest Ġcannot Ġvary Ġby Ġconfiguration Ġ( except Ġfor Ġversion Ġqual ifiers , Ġe . g . Ġ- v 2 1 ). ĠFound Ġvariation Ġin Ġen - r US Ġ[ Manifest Resource ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : process ="@ string / location _ process " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ ~~~~~~~~~~~~~~~~ ~~~~~~~~ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAndroid Manifest . xml : 9 : ĠError : ĠResources Ġreferenced Ġfrom Ġthe Ġmanifest Ġcannot Ġvary Ġby Ġconfiguration Ġ( except Ġfor Ġversion Ġqual ifiers , Ġe . g . Ġ- v 2 1 ). ĠFound Ġvariation Ġin Ġwatch - v 2 0 Ġ[ Manifest Resource ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : enabled ="@ bool / enable _ we arable _ location _ service "> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ ~~ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġerrors , Ġ 0 Ġwarnings ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Invalid References () Ġ{ ĊĠĠĠĠĠĠĠ Ġlint (). files ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmanifest ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< manifest Ġxmlns : android =" http :// schemas . android . com / apk / res / android " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage =" foo . bar 2 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : version Code =" 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : version Name =" 1 . 0 " Ġ> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< uses - sdk Ġandroid : min Sdk Version =" 1 4 " Ġ/> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< application ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : icon ="@ drawable / ic _ launcher " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : full Backup Content ="@ xml / backup " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : label ="@ string / app _ name " Ġ> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< receiver Ġandroid : enabled ="@ bool / has _ h oney comb " Ġandroid : name =" com . google . android . apps . ios ched . app widget . Schedule Widget Provider "> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< intent - filter > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< action Ġandroid : name =" android . app widget . action . APP WIDGET _ UPDATE "/> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ intent - filter > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ<!-- ĠThis Ġspecifies Ġthe Ġwidget Ġprovider Ġinfo Ġ--> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< meta - data Ġandroid : name =" android . app widget . provider " Ġandroid : resource ="@ xml / widget info "/> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ receiver > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< service ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : process ="@ string / location _ process " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : enabled ="@ bool / enable _ we arable _ location _ service "> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ service > ĠĠĠ Ġ</ application > ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ manifest > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġxml ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res / values / values . xml ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< resources > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< string Ġname =" location _ process "> Location ĠProcess </ string > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< string Ġname =" app _ name "> App ĠName Ġ( Default )</ string > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< bool Ġname =" has _ h oney comb "> false </ bool > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ resources > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġxml ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res / values / bool s . xml ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< resources Ġxmlns : xl iff =" urn : oasis : names : tc : xl iff : document : 1 . 2 "> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< bool Ġname =" enable _ we arable _ location _ service "> true </ bool > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ resources > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġxml ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res / values - en - r US / values . xml ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< resources > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< string Ġname =" location _ process "> Location ĠProcess Ġ( English )</ string > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< string Ġname =" app _ name "> App ĠName Ġ( English )</ string > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ resources > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġxml ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res / values - watch / bool s . xml ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< resources Ġxmlns : xl iff =" urn : oasis : names : tc : xl iff : document : 1 . 2 "> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< bool Ġname =" enable _ we arable _ location _ service "> false </ bool > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ resources > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġxml ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res / values - v 1 1 / values . xml ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< resources > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< bool Ġname =" has _ h oney comb "> true </ bool > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ resources > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġxml ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res / values - xlarge / values . xml ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< resources > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< dim en Ġname =" activity _ horizontal _ margin "> 1 6 dp </ dim en > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ resources > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġxml ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res / xml / backup . xml ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< full - backup - content > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< include Ġdomain =" file " Ġpath =" dd "/> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< exclude Ġdomain =" file " Ġpath =" dd / fo 3 o . txt "/> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< exclude Ġdomain =" file " Ġpath =" dd / ss / foo . txt "/> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ full - backup - content > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġxml ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res / xml - m cc / backup . xml ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< full - backup - content > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< include Ġdomain =" file " Ġpath =" m cc "/> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ full - backup - content > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed () ĊĠĠĠĠĠĠĠ Ġ). run (). expect ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAndroid Manifest . xml : 1 1 : ĠError : ĠResources Ġreferenced Ġfrom Ġthe Ġmanifest Ġcannot Ġvary Ġby Ġconfiguration Ġ( except Ġfor Ġversion Ġqual ifiers , Ġe . g . Ġ- v 2 1 ). ĠFound Ġvariation Ġin Ġm cc Ġ[ Manifest Resource ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : full Backup Content ="@ xml / backup " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ ~~~~~~~~ ~~~ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġres / xml - m cc / backup . xml : ĠThis Ġvalue Ġwill Ġnot Ġbe Ġused ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAndroid Manifest . xml : 2 1 : ĠError : ĠResources Ġreferenced Ġfrom Ġthe Ġmanifest Ġcannot Ġvary Ġby Ġconfiguration Ġ( except Ġfor Ġversion Ġqual ifiers , Ġe . g . Ġ- v 2 1 ). ĠFound Ġvariation Ġin Ġen - r US Ġ[ Manifest Resource ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : process ="@ string / location _ process " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ ~~~~~~~~~~~~~~~~ ~~~~~~~~ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġres / values - en - r US / values . xml : 2 : ĠThis Ġvalue Ġwill Ġnot Ġbe Ġused ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< string Ġname =" location _ process "> Location ĠProcess Ġ( English )</ string > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ ~~~~~~~~~~~~~~~~ ~~~~~~~~ ~~ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAndroid Manifest . xml : 2 2 : ĠError : ĠResources Ġreferenced Ġfrom Ġthe Ġmanifest Ġcannot Ġvary Ġby Ġconfiguration Ġ( except Ġfor Ġversion Ġqual ifiers , Ġe . g . Ġ- v 2 1 ). ĠFound Ġvariation Ġin Ġwatch - v 2 0 Ġ[ Manifest Resource ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : enabled ="@ bool / enable _ we arable _ location _ service "> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ ~~ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġres / values - watch / bool s . xml : 2 : ĠThis Ġvalue Ġwill Ġnot Ġbe Ġused ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< bool Ġname =" enable _ we arable _ location _ service "> false </ bool > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ ~~~~ ~ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġerrors , Ġ 0 Ġwarnings ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Allow Permission Name Local izations () Ġ{ ĊĠĠĠĠĠĠĠ Ġlint (). files ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmanifest ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< manifest Ġxmlns : android =" http :// schemas . android . com / apk / res / android " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage =" foo . bar 2 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : version Code =" 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : version Name =" 1 . 0 " Ġ> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< permission - group Ġandroid : name =" android . permission - group . CONTACT S " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : icon ="@ drawable / perm _ group _ contacts " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : label ="@ string / perm group lab _ contacts " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : description ="@ string / perm group desc _ contacts " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : priority =" 1 0 0 " Ġ/> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< permission Ġandroid : name =" android . permission . READ _ CONTACT S " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : permission Group =" android . permission - group . CONTACT S " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : label ="@ string / per ml ab _ read Contacts " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : description ="@ string / perm desc _ read Contacts " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : protection Level =" d angerous " Ġ/> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ manifest > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġxml ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res / values / values . xml ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< resources > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< string Ġname =" perm group lab _ contacts "> Contacts </ string > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< string Ġname =" perm group desc _ contacts "> access Ġyour Ġcontacts </ string > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< string Ġname =" per ml ab _ read Contacts "> read Ġyour Ġcontacts </ string > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< string Ġname =" perm desc _ read Contacts "> Allow s Ġthe Ġapp Ġto ...</ string > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ resources > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġxml ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res / values - nb / values . xml ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< resources > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< string Ġname =" perm group lab _ contacts ">" Kont ak ter "</ string > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< string Ġname =" perm group desc _ contacts ">" se Ġkont akt ene Ġd ine "</ string > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< string Ġname =" per ml ab _ read Contacts ">" le se Ġkont akt ene Ġd ine "</ string > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< string Ġname =" perm desc _ read Contacts ">" L ar Ġapp en Ġle se ...</ string > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ resources > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed () ĊĠĠĠĠĠĠĠ Ġ). incremental (" Android Manifest . xml "). run (). expect Clean () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Allow Metadata Resources () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠRegression Ġtest Ġfor Ġhttps :// code . google . com / p / android / issues / detail ? id = 2 1 6 2 7 9 ĊĠĠĠĠĠĠĠ Ġ// Ġ< meta - data > Ġelements Ġare Ġfree Ġto Ġreference Ġresources Ġas Ġthey Ġsee Ġfit . ĊĠĠĠĠĠĠĠ Ġlint (). files ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmanifest ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< manifest Ġxmlns : android =" http :// schemas . android . com / apk / res / android " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġxmlns : tools =" http :// schemas . android . com / tools " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage =" foo . bar 2 "> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< application > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< receiver Ġandroid : name =". My Receiver " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : label ="@ string / app _ name "> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< meta - data ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : name =" com . example . sdk . Application Id " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : value ="@ string / app _ id "/> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< meta - data ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : name =" com . android . system ui . action _ assist _ icon " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : resource ="@ mip map / ic _ launcher "/> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ receiver > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ application > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ manifest > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġxml ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res / values / values . xml ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< resources > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< string Ġname =" app _ id "> Id </ string > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< mip map Ġname =" ic _ launcher ">@ mip map / other </ mip map > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ resources > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġxml ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res / values - nb / values . xml ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< resources > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< string Ġname =" app _ id ">" Id "</ string > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ resources > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġxml ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res / values - hdpi / values . xml ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< resources > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< mip map Ġname =" ic _ launcher ">@ mip map / other </ mip map > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ resources > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed () ĊĠĠĠĠĠĠĠ Ġ). incremental (" Android Manifest . xml "). run (). expect Clean () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Round Icon () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠAllow Ġround Ġicons Ġin Ġdensity Ġfolders ĊĠĠĠĠĠĠĠ Ġ// ĠRegression Ġtest Ġfor Ġhttps :// code . google . com / p / android / issues / detail ? id = 2 2 5 7 1 1 ĊĠĠĠĠĠĠĠ Ġlint (). files ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmanifest ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< manifest Ġxmlns : android =" http :// schemas . android . com / apk / res / android " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage =" webp . test . tools . android . com . my application " Ġ> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< application ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : round Icon ="@ mip map / round _ icon " Ġ/> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ manifest > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage (" res / mip map - md pi / round _ icon . png ", Ġ 4 7 2 , Ġ 2 9 0 ). fill (- 0 x 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage (" res / mip map - hdpi / round _ icon . png ", Ġ 4 7 2 , Ġ 2 9 0 ). fill (- 0 x 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage (" res / mip map - x hdpi / round _ icon . png ", Ġ 4 7 2 , Ġ 2 9 0 ). fill (- 0 x 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage (" res / mip map - xx hdpi / round _ icon . png ", Ġ 4 7 2 , Ġ 2 9 0 ). fill (- 0 x 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage (" res / mip map - xxx hdpi / round _ icon . png ", Ġ 4 7 2 , Ġ 2 9 0 ). fill (- 0 x 1 ) ĊĠĠĠĠĠĠĠ Ġ). incremental (" Android Manifest . xml "). run (). expect Clean () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtest Any Density () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠAllow Ġround Ġicons Ġin Ġdensity Ġfolders ĊĠĠĠĠĠĠĠ Ġlint (). files ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmanifest ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< manifest Ġxmlns : android =" http :// schemas . android . com / apk / res / android " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage =" webp . test . tools . android . com . my application " Ġ> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< application ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : random Attribute ="@ mip map / round _ icon " Ġ/> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ manifest > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage (" res / mip map - md pi / round _ icon . png ", Ġ 4 7 2 , Ġ 2 9 0 ). fill (- 0 x 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage (" res / mip map - hdpi - v 4 / round _ icon . png ", Ġ 4 7 2 , Ġ 2 9 0 ). fill (- 0 x 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage (" res / mip map - v 2 1 / round _ icon . png ", Ġ 4 7 2 , Ġ 2 9 0 ). fill (- 0 x 1 ) ĊĠĠĠĠĠĠĠ Ġ). incremental (" Android Manifest . xml "). run (). expect Clean () ĊĠĠĠ Ġ} Ċ } Ċ