/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 0 Ġ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 Ġorg . jetbrains . android Ċ Ċ import Ġcom . android . Android Project Types Ċ import Ġcom . android . Sdk Constants Ċ import Ġcom . android . ide . common . repository . Gradle Version Ċ import Ġcom . android . ide . common . repository . Stub Google Maven Repository Ċ import Ġcom . android . sdk lib . Android Version Ċ import Ġcom . android . test utils . Virtual Time Scheduler Ċ import Ġcom . android . tools . analytics . Analytics Settings . set Instance For Test Ċ import Ġcom . android . tools . analytics . Analytics Settings Data Ċ import Ġcom . android . tools . analytics . Logged Usage Ċ import Ġcom . android . tools . analytics . Test Usage Tracker Ċ import Ġcom . android . tools . analytics . Usage Tracker . clean After Testing Ċ import Ġcom . android . tools . analytics . Usage Tracker . set Writer For Test Ċ import Ġcom . android . tools . idea . gradle . repositories . Repository Url Manager Ċ import Ġcom . android . tools . idea . lint . Android Lint Adapter View Children Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Allow Backup Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Always Show Action Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Android Gradle Plugin Version Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Animator Keep Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Annot ate Version Check Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint AppCompat Custom View Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint AppCompat Method Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Apply Shared Pref Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Auth Leak Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Byte Order Mark Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Click ableView Accessibility Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Content Description Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Deprecated Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Disable Baseline Alignment Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Duplicate Ids Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint En force UTF 8 Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Ex if Interface Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Exported Content Provider Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Exported Receiver Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Exported Service Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Gradle Deprecated Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint GridLayout Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Hard coded Text Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Icon Duplicates Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Ide Client Ċ import Ġcom . android . tools . idea . lint . Android Lint Ide Support Ċ import Ġcom . android . tools . idea . lint . Android Lint Imp lied Touch screen Hardware Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Include Layout Param Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint In efficient Weight Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint In lined Api Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Inner class Separator Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Invalid I me Action Id Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Invalid Permission Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Invalid Uses Tag Attribute Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Invalid Vector Path Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Invalid W ear Feature Attribute Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Locked Orientation Activity Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Manifest Order Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Media Capabilities Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Menu Title Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Missing Application Icon Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Missing Id Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Missing Lean back Support Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Missing Permission Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Missing Prefix Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Missing Tv Banner Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Network Security Config Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint New Api Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Non Resize able Activity Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Obsolete Layout Param Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Obsolete Sdk Int Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Old Target Api Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Override Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Parcel ClassLoader Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Parcel Creator Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Permission Imp lies Unsupported Chrome Os Hardware Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Permission Imp lies Unsupported Hardware Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Pro guard Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Px Usage Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Reference Type Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Registered Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Resource As Color Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint ResourceType Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint R tl Compat Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint ScrollView Count Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint ScrollView Size Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Sd Card Path Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Selectable Text Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Signature Or System Permissions Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Source Locked Orientation Activity Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Sp Usage Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint String Esc aping Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint String ShouldBe Int Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Switch Int Def Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Text Fields Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Typography D ashes Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Typography Quotes Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Ty pos Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Un protected SMS Broadcast Receiver Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Unsupported Chrome Os Camera System Feature Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Unsupported Chrome Os Hardware Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Unused Attribute Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Unused Resources Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Use Check Permission Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Use less Leaf Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Use less Parent Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Valid Actions Xml Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Wake lock Timeout Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint W ear Standalone App Flag Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Wifi Manager Leak Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Wrong Call Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Wrong Case Inspection Ċ import Ġcom . android . tools . idea . lint . Android Lint Wrong View Cast Inspection Ċ import Ġcom . android . tools . idea . lint . common . Android Lint Gradle Dynamic Version Inspection Ċ import Ġcom . android . tools . idea . lint . common . Android Lint Inspection Base Ċ import Ġcom . android . tools . idea . lint . common . Lint Editor Result Ċ import Ġcom . android . tools . idea . lint . common . Lint External Annot ator . My Fix ing Int ention Ċ import Ġcom . android . tools . idea . lint . common . Lint Ide Issue Registry Ċ import Ġcom . android . tools . idea . lint . common . Lint Ide Support Ċ import Ġcom . android . tools . idea . lint . common . Lint Ignored Result Ċ import Ġcom . android . tools . idea . lint . common . Lint Problem Data Ċ import Ġcom . android . tools . idea . lint . common . Suppress Lint Int ention Action Ċ import Ġcom . android . tools . idea . model . Android Model Ċ import Ġcom . android . tools . idea . model . Test Android Model Ċ import Ġcom . android . tools . idea . project system . Google Maven Artifact Id Ċ import Ġcom . android . tools . idea . project system . Test Project System Ċ import Ġcom . android . tools . idea . testing . Ide Components Ċ import Ġcom . android . tools . idea . testing . getInt ention Action Ċ import Ġcom . android . tools . lint . checks . Hard coded Values Detector Ċ import Ġcom . android . tools . lint . checks . Icon Detector Ċ import Ġcom . android . tools . lint . checks . TextView Detector Ċ import Ġcom . android . tools . lint . client . api . Issue Registry Ċ import Ġcom . android . tools . lint . client . api . Lint Client Ċ import Ġcom . android . tools . lint . client . api . Lint Driver Ċ import Ġcom . android . tools . lint . client . api . Lint Request Ċ import Ġcom . android . tools . lint . detector . api . Des ug aring Ċ import Ġcom . android . tools . lint . detector . api . Severity Ċ import Ġcom . android . utils . Char Sequences Ċ import Ġcom . google . common . collect . Immutable Map Ċ import Ġcom . google . common . collect . Lists Ċ import Ġcom . google . common . collect . Sets Ċ import Ġcom . google . common . truth . Truth . assertThat Ċ import Ġcom . google . wire less . android . sdk . stats . Android Studio Event Ċ import Ġcom . google . wire less . android . sdk . stats . Lint Issue Id . Lint Severity Ċ import Ġcom . google . wire less . android . sdk . stats . Lint Session . Analysis Type Ċ import Ġcom . intellij . analysis . Analysis Scope Ċ import Ġcom . intellij . code Insight . daemon . impl . Highlight Info Ċ import Ġcom . intellij . code Insight . daemon . impl . Show Intent ions Pass Ċ import Ġcom . intellij . code Insight . daemon . impl . Show Intent ions Pass . Intent ions Info Ċ import Ġcom . intellij . code Insight . int ention . Int ention Action Ċ import Ġcom . intellij . code Inspection . Common Problem Descriptor Ċ import Ġcom . intellij . code Inspection . Quick Fix Ċ import Ġcom . intellij . code Inspection . reference . Ref Entity Ċ import Ġcom . intellij . code Inspection . ui . util . Synchron ized B idi Multi Map Ċ import Ġcom . intellij . lang . annotation . Highlight Severity Ċ import Ġcom . intellij . openapi . application . Result Ċ import Ġcom . intellij . openapi . command . Write Command Action Ċ import Ġcom . intellij . openapi . editor . Document Ċ import Ġcom . intellij . openapi . module . Module Manager Ċ import Ġcom . intellij . openapi . util . Dis poser Ċ import Ġcom . intellij . openapi . util . Text Range Ċ import Ġcom . intellij . openapi . vfs . Virtual File Ċ import Ġcom . intellij . psi . Psi Document Manager Ċ import Ġcom . intellij . psi . Psi Manager Ċ import Ġcom . intellij . test Framework . fixtures . Ide a Project TestFixture Ċ import Ġcom . intellij . test Framework . fixtures . TestFixture Builder Ċ import Ġorg . jetbrains . android . facet . Android Facet Ċ import Ġorg . jetbrains . android . facet . Android Root Util Ċ import Ġorg . jetbrains . android . ins pe ctions . lint . Android Add String Resource Quick Fix Ċ import Ġorg . jetbrains . android . sdk . Android Platform Ċ import Ġorg . jetbrains . android . util . Android Bundle Ċ import Ġorg . jetbrains . annotations . Non N ls Ċ import Ġjava . nio . charset . StandardCharsets Ċ import Ġjava . util . stream . Collectors Ċ Ċ class ĠAndroid Lint Test Ġ: ĠAndroid TestCase () Ġ{ ĊĠ Ġinit Ġ{ ĊĠĠĠ ĠL int Client . client Name Ġ= ĠL int Client . CLIENT _ UNIT _ TESTS ĊĠ Ġ} ĊĊĠ Ġpublic Ġoverride Ġfun ĠsetUp () Ġ{ ĊĠĠĠ Ġsuper . setUp () ĊĠĠĠ Ġval Ġanalytics Settings Ġ= ĠAnalytics Settings Data () ĊĠĠĠ Ġanalytics Settings . opt ed In Ġ= Ġfalse ĊĠĠĠ Ġset Instance For Test ( analytics Settings ) ĊĠĠĠ ĠAndroid Lint Inspection Base . set Register Dynamic Tools From Tests ( false ) ĊĠĠĠ Ġmy Fixture . allow Tree Access ForAll Files () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġconfigure Additional Modules ( ĊĠĠĠ Ġproject Builder : ĠTest Fixture Builder < Ide a Project TestFixture >, ĊĠĠĠ Ġmodules : ĠList < My Additional Module Data > ĊĠ Ġ) Ġ{ ĊĠĠĠ Ġif Ġ(" test I ml File Outside Content Root " Ġ== Ġname ) Ġ{ ĊĠĠĠĠĠ Ġadd Module With Android Facet ( project Builder , Ġmodules , Ġ" module 1 ", ĠAndroid Project Types . PROJECT _ TYPE _ LIBRARY ) ĊĠĠĠĠĠ Ġadd Module With Android Facet ( project Builder , Ġmodules , Ġ" module 2 ", ĠAndroid Project Types . PROJECT _ TYPE _ LIBRARY ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġelse Ġif Ġ(" test AppCompat Method " Ġ== Ġname Ġ|| Ġ" test Extend AppCompat Widgets " Ġ== Ġname ) Ġ{ ĊĠĠĠĠĠ Ġadd Module With Android Facet ( project Builder , Ġmodules , Ġ" appcompat ", ĠAndroid Project Types . PROJECT _ TYPE _ APP ) ĊĠĠĠ Ġ} Ġelse Ġif Ġ(" test Add Sdk Int Java " Ġ== Ġname Ġ|| Ġ" test Add Sdk Int Kotlin " Ġ== Ġname ) Ġ{ ĊĠĠĠĠĠ Ġ// ĠThese Ġlint Ġchecks Ġonly Ġdo Ġsomething Ġin Ġlibraries , Ġnot Ġapp Ġmodules ĊĠĠĠĠĠ Ġadd Module With Android Facet ( project Builder , Ġmodules , Ġ" module 1 ", ĠAndroid Project Types . PROJECT _ TYPE _ LIBRARY ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Hard coded Quick fix () Ġ{ ĊĠĠĠ Ġdo Test Hard coded Quick fix () ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Hard coded Quick fix 1 () Ġ{ ĊĠĠĠ Ġdo Test Hard coded Quick fix () ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġget Available Fixes (): ĠList < Int ention Action > Ġ{ ĊĠĠĠ Ġval Ġintent ions Ġ= ĠIntent ions Info () ĊĠĠĠ ĠShow Intent ions Pass . get Actions To Show ( my Fixture . editor , Ġmy Fixture . file , Ġintent ions , Ġ- 1 ) ĊĠĠĠ Ġval Ġactions : ĠMutable List < Int ention Action > Ġ= ĠLists . newArrayList () ĊĠĠĠ Ġfor Ġ( descriptor Ġin Ġintent ions . inspection Fixes To Show ) Ġ{ ĊĠĠĠĠĠ Ġactions . add ( descriptor . action ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġactions ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġlist Available Fixes (): ĠString Ġ{ ĊĠĠĠ Ġval Ġintent ions Ġ= ĠIntent ions Info () ĊĠĠĠ ĠShow Intent ions Pass . get Actions To Show ( my Fixture . editor , Ġmy Fixture . file , Ġintent ions , Ġ- 1 ) ĊĠĠĠ Ġval Ġsb Ġ= ĠStringBuilder () ĊĠĠĠ Ġfor Ġ( action Ġin Ġget Available Fixes ()) Ġ{ ĊĠĠĠĠĠ Ġsb . append ( action . text ). append ("\ n ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġsb . toString () ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Hard coded String () Ġ{ ĊĠĠĠ Ġdo Test Highlighting ( Android Lint Hard coded Text Inspection (), Ġ"/ res / layout / layout . xml ", Ġ" xml ") ĊĠĠĠ Ġ// ĠMake Ġsure Ġwe Ġonly Ġhave Ġthe Ġextract Ġquick fix Ġand Ġthe Ġsuppress Ġquick fix : Ġnot Ġthe Ġdisable Ġinspection Ġfix , Ġand ĊĠĠĠ Ġ// Ġthe Ġedit Ġinspection Ġsettings Ġquick fix Ġ( they Ġare Ġsupp ressed Ġin ĠAndroid Lint External Annot ator ) ĊĠĠĠ ĠassertEquals ("" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Extract Ġstring Ġresource \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Suppress : ĠAdd Ġtools : ignore =\" Hard coded Text \" Ġattribute \ n ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Available Fixes ()) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġdo Test Hard coded Quick fix () Ġ{ ĊĠĠĠ Ġval Ġcopy To Ġ= Ġif Ġ( false ) Ġ" Android Manifest . xml " Ġelse Ġ"/ res / layout / layout . xml " ĊĠĠĠ Ġdo Test Highlighting ( Android Lint Hard coded Text Inspection (), Ġcopy To , Ġ" xml ") ĊĠĠĠ Ġval Ġaction Ġ= Ġmy Fixture . getInt ention Action ( ĊĠĠĠĠĠ ĠAndroid Add String Resource Quick Fix :: class . java , ĠAndroid Bundle . message (" add . string . resource . int ention . text ")) ĊĠĠĠ ĠassertNotNull ( action ) ĊĠĠĠ ĠassertTrue ( action !!. is Available ( my Fixture . project , Ġmy Fixture . editor , Ġmy Fixture . file )) ĊĠĠĠ ĠWrite Command Action . run Write Command Action ( my Fixture . project ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠ Ġaction . invoke Int ention ( my Fixture . project , Ġmy Fixture . editor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy Fixture . file , Ġ" hello ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġmy Fixture . check Result By File ( BASE _ PATH Ġ+ Ġget Test Name ( true ) Ġ+ Ġ"_ after . xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Content Description () Ġ{ Ġ// ĠAlso Ġtests Ġanalytics Ġfor Ġsingle Ġfile Ġ( batch ) Ġanalysis ĊĠĠĠ Ġval Ġscheduler Ġ= ĠVirtual Time Scheduler () ĊĠĠĠ Ġval Ġusage Tracker Ġ= ĠTest Usage Tracker ( scheduler ) ĊĠĠĠ Ġset Writer For Test ( usage Tracker ) ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠ Ġ// ĠCare fully Ġchosen Ġseed Ġsuch Ġthat Ġlog Session ()' s Ġfirst Ġ* two * Ġrandom Ġresults ĊĠĠĠĠĠ Ġ// Ġwill Ġbe Ġin Ġthe Ġexpected Ġrange Ġto Ġpick Ġit Ġfor Ġsubmission Ġ( next Double () Ġ< Ġ 0 . 0 1 ) ĊĠĠĠĠĠ Ġ// Ġsince Ġwe Ġwant Ġthe Ġdata Ġto Ġbe Ġlogged Ġwith Ġthe Ġusage Ġtracker Ġsuch Ġthat Ġwe Ġcan ĊĠĠĠĠĠ Ġ// Ġinspect Ġthe Ġvarious Ġfields Ġof Ġthe Ġusage Ġdata ĊĠĠĠĠĠ Ġval Ġlint Ġ= ĠL int Ide Support . Companion . get () Ġas ĠAndroid Lint Ide Support ĊĠĠĠĠĠ Ġlint . random . set Seed ( 5 3 5 6 ) ĊĊĠĠĠĠĠ Ġdo Test With Fix ( Android Lint Content Description Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Set Ġcontent Description ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ res / layout / layout . xml ", Ġ" xml ") ĊĠĠĠĠĠ Ġval Ġlogged Lint Sessions Ġ= Ġusage Tracker . us ages . stream () ĊĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġusage : ĠLog ged Usage Ġ-> Ġusage . studio Event . kind Ġ== ĠAndroid Studio Event . Event Kind . L INT _ SESSION Ġ} ĊĠĠĠĠĠĠĠ Ġ. collect ( Collectors . toList ()) ĊĠĠĠĠĠ ĠassertThat ( logged Lint Sessions ). has Size ( 2 ) ĊĠĠĠĠĠ Ġval Ġsession Ġ= Ġlogged Lint Sessions [ 0 ] !!. studio Event . lint Session ĊĠĠĠĠĠ ĠassertThat ( session . analysis Type ). isEqualTo ( Analysis Type . IDE _ FILE ) ĊĠĠĠĠĠ Ġval Ġlist Ġ= Ġsession . issue Ids List ĊĠĠĠĠĠ ĠassertThat ( list ). has Size ( 1 ) ĊĠĠĠĠĠ Ġval Ġissue 1 Ġ= Ġlist [ 0 ] ĊĠĠĠĠĠ ĠassertThat ( issue 1 !!. issue Id ). isEqualTo (" Content Description ") ĊĠĠĠĠĠ ĠassertThat ( issue 1 . count ). isEqualTo ( 1 ) ĊĠĠĠĠĠ ĠassertThat ( issue 1 . severity ). isEqualTo ( Lint Severity . DEFAULT _ SEVER ITY ) ĊĠĠĠĠĠ Ġval Ġperformance Ġ= Ġsession . lint Performance ĊĠĠĠĠĠ ĠassertThat ( performance . file Count ). isEqualTo ( 1 ) ĊĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠ Ġusage Tracker . close () ĊĠĠĠĠĠ Ġclean After Testing () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Content Description 2 () Ġ{ ĊĠĠĠ Ġval Ġscheduler Ġ= ĠVirtual Time Scheduler () ĊĠĠĠ Ġval Ġusage Tracker Ġ= ĠTest Usage Tracker ( scheduler ) ĊĠĠĠ Ġset Writer For Test ( usage Tracker ) ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠ Ġval Ġsource Ġ= ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġpackage Ġtest . pkg ; ĊĠĠĠĠĠĠĠ Ġpublic Ġclass ĠMy Activity Ġ{ ĊĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġstatic Ġclass ĠInner Ġextends Ġandroid . app . Activity Ġ{ ĊĠĠĠĠĠĠĠĠĠĠ Ġ}; ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠ Ġval Ġmain File Ġ= Ġmy Fixture . add File To Project ("/ src / test / pkg / My Activity . java ", Ġsource ) ĊĊĠĠĠĠĠ Ġval Ġlint Ġ= ĠL int Ide Support . Companion . get () Ġas ĠAndroid Lint Ide Support ĊĠĠĠĠĠ Ġlint . random . set Seed ( 0 ) ĊĠĠĠĠĠ Ġval Ġresult Ġ= ĠL int Editor Result ( my Module , Ġmain File . virtual File , Ġsource , Ġset Of ( Hard coded Values Detector . ISSUE )) ĊĠĠĠĠĠ Ġval Ġdata Ġ= ĠL int Problem Data ( Hard coded Values Detector . ISSUE , Ġ" Sample Ġissue ", ĠText Range . EMPTY _ RANGE , ĠSeverity . WARNING , Ġnull ) ĊĠĠĠĠĠ Ġ( result . problems Ġas ĠMutable List ). add ( data ) ĊĠĠĠĠĠ Ġval Ġclient Ġ= Ġlint . create Editor Client ( result ) ĊĠĠĠĠĠ Ġval Ġdriver Ġ= ĠL int Driver ( lint . get Issue Registry (), Ġclient , ĠL int Request ( client , Ġempty List ())) ĊĠĠĠĠĠ Ġval Ġroll s Ġ= Ġ 1 0 0 0 0 0 ĊĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. roll s ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlint . log Session ( driver , Ġresult ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġval Ġlogged Lint Sessions Ġ= Ġusage Tracker . us ages . stream () ĊĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġusage : ĠLog ged Usage Ġ-> Ġusage . studio Event . kind Ġ== ĠAndroid Studio Event . Event Kind . L INT _ SESSION Ġ} ĊĠĠĠĠĠĠĠ Ġ. collect ( Collectors . toList ()) ĊĊĠĠĠĠĠ Ġ// ĠMake Ġsure Ġwe 're Ġsubmitting Ġaround Ġ 1 % Ġof Ġreports . ĊĠĠĠĠĠ Ġ// ĠThis Ġtest Ġis Ġnot Ġflaky Ġbecause Ġwe 're Ġusing Ġa Ġfixed Ġseed Ġto Ġthe Ġrandom Ġgenerator ! ĊĠĠĠĠĠ Ġval Ġpercentage Ġ= Ġlogged Lint Sessions . size Ġ* Ġ 1 0 0 . 0 Ġ/ Ġroll s ĊĠĠĠĠĠ ĠassertEquals (" Unexpected Ġpercentage Ġof Ġreports Ġsubmitted ", Ġ 1 . 0 4 7 , Ġpercentage , Ġ 0 . 0 0 1 ) ĊĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠ Ġusage Tracker . close () ĊĠĠĠĠĠ Ġclean After Testing () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Content Description 1 () Ġ{ ĊĠĠĠ Ġdo Test No Fix ( Android Lint Content Description Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ res / layout / layout . xml ", Ġ" xml ") ĊĠĠĠ Ġ// ĠAlso Ġtest Ġthe Ġother Ġlint Ġinfrastructure , Ġwhere Ġwe Ġproduce Ġan Ġerror Ġreport Ġinstead Ġof Ġoverlay ing ĊĠĠĠ Ġ// ĠXML - like Ġtags Ġfor Ġerror Ġranges Ġinto Ġan Ġexisting ĠXML Ġdoc Ġ( which Ġmakes Ġit Ġsynt act ically Ġinvalid ) ĊĠĠĠ Ġmy Fixture . check Lint ( my Fixture . file , ĠAndroid Lint Content Description Inspection (), Ġ" TODO | ", Ġ""" ĊĠĠĠĠĠ ĠWarning : ĠEmpty Ġ` content Description ` Ġattribute Ġon Ġimage ĊĠĠĠĠĠĠĠĠĠ Ġandroid : content Description =" TODO "/> ĊĠĠĠĠĠĠĠĠĠ Ġ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~ ĊĠĠĠĠĠĠĠĠĠ ĠFix : ĠSup press : ĠAdd Ġtools : ignore =" Content Description " Ġattribute ĊĠĠĠ Ġ""" . trim Indent ()) ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Adapter View Children () Ġ{ ĊĠĠĠ Ġdo Test No Fix ( Android Lint Adapter View Children Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ res / layout / layout . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest ScrollView Children () Ġ{ ĊĠĠĠ Ġdo Test No Fix ( Android Lint ScrollView Count Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ res / layout / layout . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Missing Prefix () Ġ{ ĊĠĠĠ Ġdo Test With Fix ( Android Lint Missing Prefix Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAndroid Bundle . message (" android . lint . fix . add . android . prefix "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ res / layout / layout . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Missing Prefix 1 () Ġ{ ĊĠĠĠ Ġdo Test With Fix ( Android Lint Missing Prefix Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAndroid Bundle . message (" android . lint . fix . add . android . prefix "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ res / layout / layout . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Missing Prefix 2 () Ġ{ Ġ// Ġlint . xml Ġwhich Ġdisables Ġthe Ġmissing Ġprefix ĊĠĠĠ Ġmy Fixture . copy File To Project ("$ global Test Dir / lint . xml ", Ġ" lint . xml ") ĊĠĠĠ Ġdo Test Highlighting ( Android Lint Missing Prefix Inspection (), Ġ"/ res / layout / layout . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Missing Prefix 3 () Ġ{ Ġ// Ġlint . xml Ġwhich Ġchanges Ġthe Ġseverity Ġto Ġwarning Ġ( is Ġnormally Ġerror ) ĊĠĠĠ Ġmy Fixture . copy File To Project ("$ global Test Dir / lint . xml ", Ġ" lint . xml ") ĊĠĠĠ Ġdo Test Highlighting ( Android Lint Missing Prefix Inspection (), Ġ"/ res / layout / layout . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Missing Prefix 4 () Ġ{ Ġ// Ġlint . xml Ġwhich Ġsupp resses Ġthis Ġspecific Ġerror Ġpath ĊĠĠĠ Ġmy Fixture . copy File To Project ("$ global Test Dir / lint . xml ", Ġ" lint . xml ") ĊĠĠĠ Ġdo Test Highlighting ( Android Lint Missing Prefix Inspection (), Ġ"/ res / layout / layout . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Actions () Ġ{ Ġ// ĠRegression Ġtest Ġfor Ġissue Ġ 7 9 1 2 0 6 0 1 ĊĠĠĠ Ġdo Test No Fix ( Android Lint Valid Actions Xml Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ res / xml / actions . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest D uplicated Ids () Ġ{ ĊĠĠĠ Ġdo Test No Fix ( Android Lint Duplicate Ids Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ res / layout / layout . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Parcel Creator () Ġ{ ĊĠĠĠ Ġdo Test No Fix ( Android Lint Parcel Creator Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ src / test / pkg / Parcelable Demo . java ", Ġ" java ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Auth String () Ġ{ ĊĠĠĠ Ġdo Test No Fix ( Android Lint Auth Leak Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ src / test / pkg / Auth Demo . java ", Ġ" java ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Colors () Ġ{ ĊĠĠĠ Ġadd Color Res () ĊĠĠĠ Ġadd Color Int () ĊĠĠĠ Ġdo Test No Fix ( Android Lint Resource As Color Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ src / test / pkg / Colors . kt ", Ġ" kt ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest In efficient Weight () Ġ{ ĊĠĠĠ Ġdo Test With Fix ( Android Lint In efficient Weight Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAndroid Bundle . message (" android . lint . fix . replace . with . zero . dp "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ res / layout / layout . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Baseline Weights () Ġ{ ĊĠĠĠ Ġdo Test With Fix ( Android Lint Disable Baseline Alignment Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Set Ġbaseline Aligned =\" false \"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ res / layout / layout . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Obsolete LayoutParams () Ġ{ ĊĠĠĠ Ġdo Test With Fix ( Android Lint Obsolete Layout Param Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAndroid Bundle . message (" android . lint . fix . remove . attribute "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ res / layout / layout . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest ConvertTo Dp () Ġ{ ĊĠĠĠ Ġdo Test With Fix ( Android Lint Px Usage Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAndroid Bundle . message (" android . lint . fix . convert . to . dp "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ res / layout / layout . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest ConvertTo Dp 1 () Ġ{ ĊĠĠĠ Ġdo Test With Fix ( Android Lint Px Usage Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAndroid Bundle . message (" android . lint . fix . convert . to . dp "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ res / values / convertTo Dp . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest ScrollView Size () Ġ{ ĊĠĠĠ Ġdo Test With Fix ( Android Lint ScrollView Size Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAndroid Bundle . message (" android . lint . fix . set . to . wrap . content "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ res / layout / layout . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Unused Attribute () Ġ{ ĊĠĠĠ Ġdo Test With Fix ( Android Lint Unused Attribute Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Suppress Ġwith Ġtools : target Api Ġattribute ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ res / layout / layout . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Suppress Init Java () Ġ{ ĊĠĠĠ Ġ// ĠRegression Ġtest Ġfor Ġhttps :// issue tracker . google . com / 1 5 1 1 6 4 6 2 8 ĊĠĠĠ Ġdo Test With Fix ( Android Lint Sd Card Path Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Suppress : ĠAdd Ġ@ Suppress Lint (\" Sd Card Path \") Ġannotation ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ src / p 1 / p 2 / Foo . java ", Ġ" java ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Suppress Init () Ġ{ ĊĠĠĠ Ġ// ĠRegression Ġtest Ġfor Ġhttps :// issue tracker . google . com / 1 5 1 1 6 4 6 2 8 Ġ( Kotlin ) ĊĠĠĠ Ġdo Test With Fix ( Android Lint Click ableView Accessibility Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Suppress : ĠAdd Ġ@ Suppress Lint (\" Click ableView Accessibility \") Ġannotation ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ src / p 1 / p 2 / suppress Init . kt ", Ġ" kt ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Exported Service () Ġ{ ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġdo Test With Fix ( Android Lint Exported Service Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Set Ġpermission ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Android Manifest . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Exported Content Provider () Ġ{ ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġdo Test With Fix ( Android Lint Exported Content Provider Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Set Ġexported =\" false \"", Ġ" Android Manifest . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Exported Receiver () Ġ{ ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġdo Test With Fix ( Android Lint Exported Receiver Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Set Ġpermission ", Ġ" Android Manifest . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest EditText () Ġ{ ĊĠĠĠ Ġdo Test With Fix ( Android Lint Text Fields Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Set Ġinput Type ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ res / layout / layout . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Invalid Permission () Ġ{ ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġdo Test With Fix ( Android Lint Invalid Permission Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAndroid Bundle . message (" android . lint . fix . remove . attribute "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Android Manifest . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Missing Permission Java () Ġ{ ĊĠĠĠ Ġmy Fixture . copy File To Project ("$ global Test Dir / Android Manifest . xml ", Ġ" Android Manifest . xml ") ĊĠĠĠ Ġdo Test With Fix ( Android Lint Missing Permission Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Add Ġpermission Ġcheck ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ src / p 1 / p 2 / Location Test Java . java ", Ġ" java ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Missing Permission Kotlin () Ġ{ ĊĠĠĠ Ġmy Fixture . copy File To Project ("$ global Test Dir / Android Manifest . xml ", Ġ" Android Manifest . xml ") ĊĠĠĠ Ġdo Test With Fix ( Android Lint Missing Permission Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Add Ġpermission Ġcheck ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ src / p 1 / p 2 / Location Test . kt ", Ġ" kt ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Use less Leaf () Ġ{ ĊĠĠĠ Ġdo Test With Fix ( Android Lint Use less Leaf Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAndroid Bundle . message (" android . lint . fix . remove . un necessary . view "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ res / layout / layout . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Use less Parent () Ġ{ ĊĠĠĠ Ġdo Test No Fix ( Android Lint Use less Parent Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ res / layout / layout . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Typography D ashes () Ġ{ ĊĠĠĠ Ġdo Test With Fix ( Android Lint Typography D ashes Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAndroid Bundle . message (" android . lint . fix . replace . with . suggest ed . characters "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ res / values / typography . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Typography Quotes () Ġ{ Ġ// ĠRe - enable Ġty pography Ġquotes , Ġnormally Ġoff ĊĠĠĠ Ġmy Fixture . copy File To Project ("$ global Test Dir / lint . xml ", Ġ" lint . xml ") ĊĠĠĠ Ġdo Test With Fix ( Android Lint Typography Quotes Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAndroid Bundle . message (" android . lint . fix . replace . with . suggest ed . characters "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ res / values / typography . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Gen Backup Descriptor () Ġ{ ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġ// Ġsetup Ġproject Ġfiles ĊĠĠĠ Ġmy Fixture . copy File To Project ("$ global Test Dir / MySql ite Helper . java ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" src / p 1 / pkg / MySql ite Helper . java ") ĊĠĠĠ Ġmy Fixture . copy File To Project ("$ global Test Dir / MainActivity . java ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" src / p 1 / pkg / MainActivity . java ") ĊĠĠĠ Ġmy Fixture . copy File To Project ("$ global Test Dir / strings . xml ", Ġ" res / values / strings . xml ") ĊĠĠĠ Ġ// ĠNo Ġhighlighting Ġtest : Ġthe Ġerror Ġmarkers Ġare Ġphys ically Ġpresent Ġin Ġthe ĠP SI ĠFile ĊĠĠĠ Ġ// Ġand Ġconf uses Ġthe Ġmanifest Ġmer ger , Ġwhich Ġsees Ġthem . Ġ( The Ġ< caret > Ġtag Ġon Ġthe ĊĠĠĠ Ġ// Ġother Ġhand Ġis Ġextracted Ġand Ġremoved Ġby ĠCode Insight Text Fixture Impl # Selection And Caret Markup Loader ĊĠĠĠ Ġdo Test Without Highlighting With Fix ( ĊĠĠĠĠĠ ĠAndroid Lint Allow Backup Inspection (), ĊĠĠĠĠĠ Ġ" Generate Ġfull - backup - content Ġdescriptor ", ĊĠĠĠĠĠ Ġ" Android Manifest . xml ", Ġ" xml ") ĊĠĠĠ Ġ// Ġalso Ġcheck Ġthe Ġgenerated Ġbackup Ġdescriptor . ĊĠĠĠ Ġmy Fixture . check Result By File (" res / xml / backup . xml ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ global Test Dir / expected . xml ", Ġtrue ) ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Gen Backup Descriptor 2 () Ġ{ ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġ// ĠThis Ġtest Ġrequires Ġtarget Sdk Version = 2 3 Ġto Ġtrigger Ġinspection ĊĠĠĠ Ġdo Test With Fix ( Android Lint Allow Backup Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Set Ġfull Backup Content Ġattribute ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Android Manifest . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Gen Empty Backup Descriptor () Ġ{ Ġ// ĠIn Ġthe Ġabsence Ġof Ġfiles Ġthat Ġindicate Ġpresence Ġof Ġdatabases Ġor Ġcalls Ġto ĊĠĠĠ Ġ// Ġget SharedPreferences , Ġthe Ġquick fix Ġshould Ġcreate Ġan Ġempty Ġbackup Ġdescriptor ĊĠĠĠ Ġ// Ġthat Ġcontains Ġhelpful Ġcomments . ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġdo Test With Fix ( Android Lint Allow Backup Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Set Ġfull Backup Content Ġattribute Ġand Ġgenerate Ġdescriptor ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Android Manifest . xml ", Ġ" xml ") ĊĠĠĠ Ġmy Fixture . check Result By File (" res / xml / backup _ descriptor . xml ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ global Test Dir / expected . xml ", Ġtrue ) ĊĠ Ġ} ĊĊĠ Ġfun Ġtest GridLayout Attribute () Ġ{ ĊĠĠĠ Ġdo Test With Fix ( Android Lint GridLayout Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Update Ġto Ġm yn s : layout _ column ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ res / layout / grid _ layout . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest GridLayout Attribute Missing () Ġ{ ĊĠĠĠ Ġdo Test With Fix ( Android Lint GridLayout Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Update Ġto Ġapp : layout _ column ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ res / layout / grid _ layout . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Always Show Action () Ġ{ ĊĠĠĠ Ġdo Test With Fix ( Android Lint Always Show Action Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Replace Ġwith Ġif Room ", Ġ"/ res / menu / menu . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Padding Start Quick Fix () Ġ{ ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġmy Fixture . copy File To Project ("$ global Test Dir / Android Manifest . xml ", Ġ" Android Manifest . xml ") ĊĠĠĠ Ġdo Test With Fix ( Android Lint R tl Compat Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Set Ġpadding Left =\" 1 2 sp \"", Ġ"/ res / layout / layout . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest AppCompat Method () Ġ{ ĊĠĠĠ Ġval Ġmodules Ġ= ĠModule Manager . getInstance ( project ). modules ĊĠĠĠ Ġfor Ġ( module Ġin Ġmodules ) Ġ{ ĊĠĠĠĠĠ Ġif Ġ( module Ġ!== Ġmy Module Ġ&& ĠAndroid Facet . getInstance ( module ) Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdelete Manifest ( module ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġtest Project System Ġ= ĠTest Project System ( project ) ĊĠĠĠ Ġtest Project System . use In Tests () ĊĠĠĠ Ġtest Project System . add Dependency ( Google Maven Artifact Id . APP _ COMPAT _ V 7 , Ġmy Fixture . module , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGradle Version . parse ("+ ")) ĊĠĠĠ Ġmy Fixture . copy File To Project ("$ global Test Dir / ActionBar Activity . java . txt ", Ġ" src / android / support / v 7 / app / ActionBar Activity . java ") ĊĠĠĠ Ġmy Fixture . copy File To Project ("$ global Test Dir / Action Mode . java . txt ", Ġ" src / android / support / v 7 / view / Action Mode . java ") ĊĠĠĠ Ġdo Test With Fix ( Android Lint AppCompat Method Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Replace Ġwith Ġget Support ActionBar ()", Ġ"/ src / test / pkg / AppCompat Test . java ", Ġ" java ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Edit Encoding () Ġ{ ĊĠĠĠ Ġdo Test With Fix ( Android Lint En force UTF 8 Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Replace Ġwith Ġutf - 8 ", Ġ"/ res / layout / layout . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġ/* ĠIns pection Ġdisabled ; Ġthese Ġtests Ġmake Ġnetwork Ġconnection Ġto ĠMaven Central Ġand Ġcan Ġchange Ġevery Ġtime Ġthere ĊĠĠĠĠ Ġis Ġa Ġnew Ġversion Ġavailable Ġ( which Ġmakes Ġfor Ġun stable Ġtests ) ĊĊĠ Ġpublic Ġvoid Ġtest New er Available () Ġthrows ĠException Ġ{ ĊĠĠĠ ĠGradle Detector . REMOTE _ VERSION . setEnabled ByDefault ( true ); ĊĠĠĠ Ġdo Test With Fix ( new ĠAndroid Lint Inspection Tool Provider . Android Lint New er Version Available Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Update Ġto Ġ 1 7 . 0 . 0 ", Ġ" build . gradle ", Ġ" gradle "); ĊĠ Ġ} ĊĠ Ġ*/ ĊĠ Ġfun Ġtest Gradle Plus () Ġ{ ĊĠĠĠ Ġval Ġcache : ĠMap < String , ĠString > Ġ= ĠImmutableMap . of ( ĊĠĠĠĠĠ Ġ" master - index . xml ", ĊĠĠĠĠĠ Ġ"< metadata >\ n " Ġ+ ĊĠĠĠĠĠ Ġ" Ġ Ġ< com . android . support /> \ n " Ġ+ ĊĠĠĠĠĠ Ġ"</ metadata >", ĊĠĠĠĠĠ Ġ" com / android / support / group - index . xml ", ĊĠĠĠĠĠ Ġ"< com . android . support >\ n " Ġ+ ĊĠĠĠĠĠ Ġ" Ġ Ġ< support - v 4 Ġversions =\" 2 6 . 0 . 2 , 2 6 . 0 . 2 \" /> \ n " Ġ+ ĊĠĠĠĠĠ Ġ" Ġ Ġ< appcompat - v 7 Ġversions =\" 1 8 . 0 . 0 , 1 9 . 0 . 0 , 1 9 . 0 . 1 , 1 9 . 1 . 0 , 2 0 . 0 . 0 , 2 1 . 0 . 0 , 2 1 . 0 . 2 , 2 2 . 0 . 0 - alpha 1 \" /> \ n " Ġ+ ĊĠĠĠĠĠ Ġ"</ com . android . support >\ n ") ĊĠĠĠ Ġval Ġrepository Ġ= ĠStub Google Maven Repository ( cache ) ĊĠĠĠ Ġval Ġdis posable Ġ= ĠDis poser . new Disposable () ĊĠĠĠ ĠIde Components ( null , Ġdis posable ). replace Application Service ( ĊĠĠĠĠĠ ĠRepository Url Manager :: class . java , ĊĠĠĠĠĠ ĠRepository Url Manager ( repository , Ġrepository , Ġtrue , Ġfalse ) ĊĠĠĠ Ġ) ĊĠĠĠ Ġdo Test With Fix ( Android Lint Gradle Dynamic Version Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Replace Ġwith Ġspecific Ġversion ", Ġ" build . gradle ", Ġ" gradle ") ĊĠĠĠ ĠDis poser . dispose ( dis posable ) ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Gradle De precation () Ġ{ ĊĠĠĠ Ġdo Test With Fix ( Android Lint Gradle Deprecated Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Replace Ġwith Ġcom . android . library ", Ġ" build . gradle ", Ġ" gradle ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Missing App Icon () Ġ{ ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġdo Test With Fix ( Android Lint Missing Application Icon Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Set Ġicon ", Ġ" Android Manifest . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Missing Lean back Support () Ġ{ ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġdo Test With Fix ( Android Lint Missing Lean back Support Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Add Ġuses - feature Ġtag ", Ġ" Android Manifest . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Permission Imp lies Hardware () Ġ{ ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġdo Test With Fix ( Android Lint Permission Imp lies Unsupported Hardware Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Add Ġuses - feature Ġtag ", Ġ" Android Manifest . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Missing Tv Banner () Ġ{ ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġdo Test With Fix ( Android Lint Missing Tv Banner Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Set Ġbanner ", Ġ" Android Manifest . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Invalid Uses Tag Attribute () Ġ{ ĊĠĠĠ Ġdo Test With Fix ( Android Lint Invalid Uses Tag Attribute Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Replace Ġwith Ġ\" media \"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res / xml / autom otive _ app _ desc . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Vector Sc ientific Not ation () Ġ{ ĊĠĠĠ Ġdo Test With Fix ( Android Lint Invalid Vector Path Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Replace Ġwith Ġ 6 7 ", Ġ" res / drawable / vector . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Unsupported Chrome Os Hardware () Ġ{ ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġdo Test With Fix ( Android Lint Unsupported Chrome Os Hardware Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Set Ġrequired =\" false \"", Ġ" Android Manifest . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Permission Imp lies Chrome Os Hardware () Ġ{ ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġdo Test With Fix ( Android Lint Permission Imp lies Unsupported Chrome Os Hardware Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Add Ġuses - feature Ġtag ", Ġ" Android Manifest . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Invalid Orientation Set On Activity () Ġ{ ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġdo Test With Fix ( Android Lint Locked Orientation Activity Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Set Ġscreen Orientation =\" full Sensor \"", Ġ" Android Manifest . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Non Resize able Activity () Ġ{ ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġdo Test With Fix ( Android Lint Non Resize able Activity Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Set Ġresize able Activity =\" true \"", Ġ" Android Manifest . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Activity Locked Orientation Source () Ġ{ ĊĠĠĠ Ġdo Test With Fix ( Android Lint Source Locked Orientation Activity Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Set Ġthe Ġorientation Ġto ĠSCREEN _ OR IENTATION _ UNSPECIFIED ", Ġ"/ src / test / pkg / Test Activity . java ", Ġ" java ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Unsupported Chrome Os Camera System Feature () Ġ{ ĊĠĠĠ Ġdo Test With Fix ( Android Lint Unsupported Chrome Os Camera System Feature Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Switch Ġto Ġlook Ġfor ĠFEATURE _ CAMERA _ ANY ", Ġ"/ src / test / pkg / Test Activity . java ", Ġ" java ") ĊĠ Ġ} ĊĊĠ Ġ/* ĠDisabled : ĠThe Ġmip map Ġcheck Ġnow Ġonly Ġwar ns Ġabout Ġmip map Ġusage Ġin ĠGradle Ġprojects Ġthat Ġuse ĊĠĠ Ġ* Ġdensity Ġfiltering . ĠRe - enable Ġthis Ġif Ġwe Ġbroad en Ġthe Ġmip map Ġcheck , Ġor Ġif Ġwe Ġupdate Ġthe ĠAndroid Lint Test ĊĠĠ Ġ* Ġto Ġalso Ġcheck ĠGradle Ġprojects . ĊĠĠ Ġ* ĠFile Ġwas Ġconverted Ġto ĠKotlin Ġwhile Ġtests Ġwere Ġcommented Ġout , Ġas Ġa Ġresult , Ġthese Ġtests Ġare Ġstill Ġin ĠJava . ĊĠ Ġpublic Ġvoid Ġtest Mip map () Ġthrows ĠException Ġ{ ĊĠĠĠ Ġdelete Manifest (); ĊĠĠĠ Ġmy Fixture . copy File To Project ( getGlobal Test Dir () Ġ+ Ġ"/ R . java ", Ġ"/ src / p 1 / p 2 / R . java "); ĊĠĠĠ Ġmy Fixture . copy File To Project ( getGlobal Test Dir () Ġ+ Ġ"/ My Code . java ", Ġ"/ src / p 1 / p 2 / My Code . java "); ĊĠĠĠ Ġmy Fixture . copy File To Project ( getGlobal Test Dir () Ġ+ Ġ"/ icon . png ", Ġ"/ res / drawable - md pi / icon . png "); ĊĠĠĠ Ġmy Fixture . copy File To Project ( getGlobal Test Dir () Ġ+ Ġ"/ icon . png ", Ġ"/ res / drawable - hdpi / icon . png "); ĊĠĠĠ Ġmy Fixture . copy File To Project ( getGlobal Test Dir () Ġ+ Ġ"/ icon . png ", Ġ"/ res / drawable - x hdpi / icon . png "); ĊĊĠĠĠ Ġ// ĠApply Ġquick fix Ġand Ġcheck Ġthat Ġthe Ġmanifest Ġfile Ġis Ġupdated ĊĠĠĠ Ġdo Test With Fix ( new ĠAndroid Lint Inspection Tool Provider . Android Lint Mip map Icons Inspection (), Ġ" Convert Ġ@ drawable / icon Ġto Ġ@ mip map / icon ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Android Manifest . xml ", Ġ" xml "); ĊĊĠĠĠ Ġ// ĠMake Ġsure Ġfiles Ġwere Ġmoved ĊĠĠĠ ĠassertNotNull ( my Fixture . find File In TempDir (" res / mip map - md pi / icon . png ")); ĊĠĠĠ ĠassertNotNull ( my Fixture . find File In TempDir (" res / mip map - hdpi / icon . png ")); ĊĠĠĠ ĠassertNotNull ( my Fixture . find File In TempDir (" res / mip map - x hdpi / icon . png ")); ĊĊĠĠĠ Ġ// ĠMake Ġsure Ġcode Ġreferences Ġ( in Ġaddition Ġto ĠManifest ĠXML Ġfile Ġreference Ġchecked Ġabove ) Ġhave Ġbeen Ġupdated ĊĠĠĠ Ġmy Fixture . check Result By File (" src / p 1 / p 2 / My Code . java ", Ġget Global Test Dir () Ġ+ Ġ"/ My Code _ after . java ", Ġtrue ); ĊĊĠĠĠ Ġ// ĠThe ĠR . java Ġfile Ġshould Ġnot Ġhave Ġbeen Ġedited : ĊĠĠĠ Ġmy Fixture . check Result By File (" src / p 1 / p 2 / R . java ", Ġget Global Test Dir () Ġ+ Ġ"/ R . java ", Ġtrue ); ĊĠ Ġ} ĊĠ Ġ*/ ĊĠ Ġfun Ġtest Allow Backup () Ġ{ ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġdo Test With Fix ( Android Lint Allow Backup Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Set Ġbackup Ġattribute ", Ġ" Android Manifest . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Remove Byte Order Marks () Ġ{ ĊĠĠĠ Ġdo Test With Fix ( Android Lint Byte Order Mark Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Remove Ġbyte Ġorder Ġmarks ", Ġ"/ res / layout / layout . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest B om Manifest () Ġ{ ĊĠĠĠ Ġdo Test Highlighting ( Android Lint Byte Order Mark Inspection (), Ġ" Android Manifest . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest B om Strings () Ġ{ ĊĠĠĠ Ġdo Test Highlighting ( Android Lint Byte Order Mark Inspection (), Ġ"/ res / values / strings . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest B om Class () Ġ{ ĊĠĠĠ Ġdo Test Highlighting ( Android Lint Byte Order Mark Inspection (), Ġ"/ src / test / pkg / My Test . java ", Ġ" java ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Commit To Apply () Ġ{ ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġ// ĠNeed Ġto Ġuse Ġtarget Sdk Version Ġ 9 ĊĠĠĠ Ġmy Fixture . copy File To Project ("$ global Test Dir / Android Manifest . xml ", Ġ" Android Manifest . xml ") ĊĠĠĠ Ġdo Test With Fix ( Android Lint Apply Shared Pref Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Replace Ġcommit () Ġwith Ġapply ()", Ġ"/ src / test / pkg / Commit To Apply . java ", Ġ" java ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Missing Int Def Switch () Ġ{ ĊĠĠĠ Ġadd Int Def () ĊĠĠĠ Ġdo Test With Fix ( Android Lint Switch Int Def Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Add ĠMissing Ġ@ Int Def ĠConstants ", Ġ"/ src / p 1 / p 2 / Missing Int Def Switch . java ", Ġ" java ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Missing Int Def Switch Kotlin () Ġ{ ĊĠĠĠ Ġadd Int Def () ĊĠĠĠ Ġdo Test With Fix ( Android Lint Switch Int Def Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Add ĠMissing Ġ@ Int Def ĠConstants ", Ġ"/ src / p 1 / p 2 / Missing Int Def Switch . kt ", Ġ" kt ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Add Keep Java () Ġ{ ĊĠĠĠ Ġadd Keep () ĊĠĠĠ Ġdo Test With Fix ( Android Lint Animator Keep Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Annot ate Ġwith Ġ@ Keep ", Ġ"/ src / p 1 / p 2 / Animator Test . java ", Ġ" java ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Add Keep Kotlin () Ġ{ ĊĠĠĠ Ġadd Keep () ĊĠĠĠ Ġdo Test With Fix ( Android Lint Animator Keep Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Annot ate Ġwith Ġ@ Keep ", Ġ"/ src / p 1 / p 2 / Animator Test . kt ", Ġ" kt ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Java Check Result Test 2 () Ġ{ ĊĠĠĠ Ġadd Check Result () ĊĠĠĠ Ġdo Test With Fix ( Android Lint Use Check Permission Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Call Ġenforce Foo Permission Ġinstead ", Ġ"/ src / p 1 / p 2 / Java Check Result Test 2 . java ", Ġ" java ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Kotlin Check Result Test 2 () Ġ{ ĊĠĠĠ Ġadd Check Result () ĊĠĠĠ Ġdo Test With Fix ( Android Lint Use Check Permission Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Call Ġenforce Foo Permission Ġinstead ", Ġ"/ src / p 1 / p 2 / Kotlin Check Result Test 2 . kt ", Ġ" kt ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Java Remove Obsolete Sdk Check () Ġ{ ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġadd Min Sdk Manifest ( 1 9 ) ĊĠĠĠ Ġadd Requires Api () ĊĠĠĠ Ġdo Test With Fix ( Android Lint Obsolete Sdk Int Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Un wrap Ġ' if ' Ġstatement ", Ġ"/ src / p 1 / p 2 / Java Remove Obsolete Sdk Check Test . java ", Ġ" java ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Kotlin Remove Obsolete Sdk Check () Ġ{ ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġadd Min Sdk Manifest ( 1 9 ) ĊĠĠĠ Ġadd Requires Api () ĊĠĠĠ Ġdo Test With Fix ( Android Lint Obsolete Sdk Int Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Remove Ġobsolete ĠSDK Ġversion Ġcheck ", Ġ"/ src / p 1 / p 2 / Kotlin Remove Obsolete Sdk Check Test . kt ", Ġ" kt ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Kotlin Remove Obsolete Sdk Check 2 () Ġ{ ĊĠĠĠ Ġ// ĠUn like Ġprevious Ġtest , Ġchecks Ġthat Ġthe Ġquick fix Ġkeeps Ġthe Ġelse Ġclause Ġinstead Ġif Ġthe Ġcheck Ġis Ġalways Ġfalse Ġinstead ĊĠĠĠ Ġ// Ġof Ġalways Ġtrue ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġadd Min Sdk Manifest ( 1 9 ) ĊĠĠĠ Ġadd Requires Api () ĊĠĠĠ Ġdo Test With Fix ( Android Lint Obsolete Sdk Int Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Remove Ġobsolete ĠSDK Ġversion Ġcheck ", Ġ"/ src / p 1 / p 2 / Kotlin Remove Obsolete Sdk Check Test 2 . kt ", Ġ" kt ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Include Params () Ġ{ ĊĠĠĠ Ġdo Test With Fix ( Android Lint Include Layout Param Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Set Ġlayout _ height ", Ġ"/ res / layout / layout . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Inner class Separator () Ġ{ ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġmy Fixture . add File To Project ("/ src / test / pkg / My Activity . java ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest . pkg ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠMy Activity Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġstatic Ġclass ĠInner Ġextends Ġandroid . app . Activity Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent ()) ĊĠĠĠ Ġdo Test With Fix ( Android Lint Inner class Separator Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Replace Ġwith Ġ. My Activity \$ Inner ", Ġ" Android Manifest . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Menu Title () Ġ{ ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġ// ĠNeed Ġto Ġuse Ġtarget Sdk Version Ġ 1 1 ĊĠĠĠ Ġmy Fixture . copy File To Project ("$ global Test Dir / Android Manifest . xml ", Ġ" Android Manifest . xml ") ĊĠĠĠ Ġdo Test With Fix ( Android Lint Menu Title Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Set Ġtitle ", Ġ"/ res / menu / menu . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Fragment Ids () Ġ{ ĊĠĠĠ Ġdo Test With Fix ( Android Lint Missing Id Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Set Ġid ", Ġ"/ res / layout / layout . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Old Target Api () Ġ{ ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġval Ġexpected Target Ġ= ĠInteger . toString ( ĊĠĠĠĠĠ ĠAndroid Lint Ide Client ( project , ĠL int Ignored Result ()). highest Known Api Level ) ĊĠĠĠ Ġdo Test With Fix ( Android Lint Old Target Api Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Update Ġtarget Sdk Version Ġto Ġ$ expected Target ", Ġ" Android Manifest . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġ/* ĊĠ Ġpublic Ġvoid Ġtest Old Target Api Gradle () Ġthrows ĠException Ġ{ ĊĠĠĠ Ġ// ĠDoes n 't Ġwork Ġin Ġincremental Ġmode Ġbecause Ġthis Ġissue Ġis Ġalso Ġused Ġfor Ġmanifest Ġfiles ; ĊĠĠĠ Ġ// Ġwe Ġdon 't Ġwell Ġsupport Ġimplementations Ġpointing Ġto Ġdifferent Ġdetector s Ġfor Ġeach Ġfile Ġtype ĊĠĠĠ Ġdo Test With Fix ( new ĠAndroid Lint Inspection Tool Provider . Android Lint Old Target Api Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Change Ġto Ġ 1 7 . 0 . 0 ", Ġ" build . gradle ", Ġ" gradle "); ĊĠ Ġ} ĊĠ Ġ*/ ĊĠ Ġfun Ġtest Reference Types () Ġ{ ĊĠĠĠ Ġdo Test With Fix ( Android Lint Reference Type Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Replace Ġwith Ġ@ string /", Ġ"/ res / values / strings . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Selectable Text () Ġ{ ĊĠĠĠ ĠTextView Detector . SELECT ABLE . setEnabled ByDefault ( true ) ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġ// ĠNeed Ġto Ġuse Ġtarget Sdk Version Ġ 1 1 ĊĠĠĠ Ġmy Fixture . copy File To Project ("$ global Test Dir / Android Manifest . xml ", Ġ" Android Manifest . xml ") ĊĠĠĠ Ġdo Test With Fix ( Android Lint Selectable Text Inspection (), Ġ" Set Ġtext Is Selectable =\" true \"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ res / layout / layout . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Signature Or System () Ġ{ ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġdo Test With Fix ( Android Lint Signature Or System Permissions Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Replace Ġwith Ġsignature ", Ġ" Android Manifest . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Sp () Ġ{ ĊĠĠĠ Ġdo Test With Fix ( Android Lint Sp Usage Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Replace Ġwith Ġsp ", Ġ"/ res / values / styles . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest String ToInt () Ġ{ ĊĠĠĠ Ġdo Test With Fix ( Android Lint String ShouldBe Int Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Replace Ġwith Ġinteger ", Ġ" build . gradle ", Ġ" gradle ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest String Ty pos () Ġ{ ĊĠĠĠ Ġdo Test With Fix ( Android Lint Ty pos Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Replace Ġwith Ġ\" Android \"", Ġ"/ res / values - nb / strings . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġ// ĠRegression Ġtest Ġfor Ġhttp :// b . android . com / 1 8 6 4 6 5 ĊĠ Ġfun Ġtest String Ty pos CDATA () Ġ{ ĊĠĠĠ Ġdo Test With Fix ( Android Lint Ty pos Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Replace Ġwith Ġ\" Android \"", Ġ"/ res / values - nb / strings . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Wrong View Call () Ġ{ ĊĠĠĠ Ġdo Test With Fix ( Android Lint Wrong Call Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Replace Ġcall Ġwith Ġdraw ()", Ġ"/ src / test / pkg / Wrong View Call . java ", Ġ" java ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Wrong Case () Ġ{ ĊĠĠĠ Ġdo Test With Fix ( Android Lint Wrong Case Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Replace Ġwith Ġmerge ", Ġ"/ res / layout / layout . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Pro guard () Ġ{ ĊĠĠĠ Ġcreate Manifest () ĊĠĠĠ Ġval Ġpro guard Cfg Path Ġ= Ġmy Fixture . copy File To Project ("$ global Test Dir / pro guard . cfg ", Ġ" pro guard . cfg ") ĊĠĠĠ Ġmy Facet . properties . RUN _ PRO GU ARD Ġ= Ġtrue ĊĠĠĠ Ġmy Facet . properties . my Pro Guard Cfg Files Ġ= ĠlistOf ( pro guard Cfg Path . url ) ĊĠĠĠ Ġdo Global Inspection Test ( Android Lint Pro guard Inspection ()) ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Manifest Order () Ġ{ ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġmy Fixture . copy File To Project ("$ global Test Dir / Android Manifest . xml ", Ġ" Android Manifest . xml ") ĊĠĠĠ Ġdo Global Inspection Test ( Android Lint Manifest Order Inspection ()) ĊĠ Ġ} ĊĊĠ Ġfun Ġtest ViewType () Ġ{ ĊĠĠĠ Ġmy Fixture . copy File To Project ("$ global Test Dir / My Activity . java ", Ġ" src / p 1 / p 2 / My Activity . java ") ĊĠĠĠ Ġmy Fixture . copy File To Project ("$ global Test Dir / layout . xml ", Ġ" res / layout / layout . xml ") ĊĠĠĠ Ġdo Global Inspection Test ( Android Lint Wrong View Cast Inspection ()) ĊĠ Ġ} ĊĊĠ Ġfun Ġtest ViewType Stub () Ġ{ Ġ// ĠRegression Ġtest Ġfor Ġ 1 8 3 1 3 6 : Ġdon 't Ġtake Ġid Ġreferences Ġto Ġimp ly Ġa ĊĠĠĠ Ġ// Ġview Ġtype Ġof Ġthe Ġreferencing Ġtype ĊĠĠĠ Ġmy Fixture . copy File To Project ("$ global Test Dir / stub _ in fl ated _ layout . xml ", Ġ" res / layout / stub _ in fl ated _ layout . xml ") ĊĠĠĠ Ġmy Fixture . copy File To Project ("$ global Test Dir / main . xml ", Ġ" res / layout / main . xml ") ĊĠĠĠ Ġmy Fixture . copy File To Project ("$ global Test Dir / Wrong Cast Activity . java ", Ġ" src / p 1 / p 2 / Wrong Cast Activity . java ") ĊĠĠĠ Ġdo Global Inspection Test ( Android Lint Wrong View Cast Inspection ()) ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Duplicate Icons () Ġ{ ĊĠĠĠ Ġval Ġfile Ġ= Ġmy Fixture . copy File To Project ("$ global Test Dir / dup 1 . png ", Ġ" res / drawable / dup 1 . png ") ĊĠĠĠ Ġmy Fixture . copy File To Project ("$ global Test Dir / dup 2 . png ", Ġ" res / drawable / dup 2 . png ") ĊĠĠĠ Ġmy Fixture . copy File To Project ("$ global Test Dir / other . png ", Ġ" res / drawable / other . png ") ĊĠĠĠ Ġdo Global Inspection Test ( Android Lint Icon Duplicates Inspection ()) ĊĊĠĠĠ Ġ// ĠTake Ġon Ġa Ġsuppress Ġtest : Ġattempt Ġto Ġsuppress Ġa Ġbinary Ġfile Ġand Ġverify Ġthat Ġthat Ġworks : ĊĠĠĠ Ġ// ĠRegression Ġtest Ġfor Ġhttps :// code . google . com / p / android / issues / detail ? id = 2 2 5 7 0 3 ĊĠĠĠ Ġval Ġmodule Dir Ġ= ĠAndroid Root Util . get Main Content Root ( my Facet ) ĊĠĠĠ ĠassertThat ( module Dir ). isNotNull () ĊĊĠĠĠ Ġval Ġicon File Ġ= ĠPsi Manager . getInstance ( project ). find File ( file ) ĊĠĠĠ ĠassertThat ( icon File ). isNotNull () ĊĊĠĠĠ Ġvar Ġlint Xml Ġ= Ġmodule Dir !!. find Child (" lint . xml ") ĊĠĠĠ ĠassertThat ( lint Xml ). isNull () ĊĊĠĠĠ Ġval Ġaction Ġ= ĠSup press Lint Int ention Action ( Icon Detector . DUPLIC ATES _ NAMES , Ġicon File !! ) ĊĠĠĠ Ġaction . invoke ( project , Ġnull , Ġicon File ) ĊĠĠĠ Ġmodule Dir . refresh ( false , Ġtrue ) ĊĊĠĠĠ Ġlint Xml Ġ= Ġmodule Dir . find Child (" lint . xml ") ĊĠĠĠ ĠassertThat ( lint Xml ). isNotNull () ĊĠĠĠ ĠassertThat ( String ( lint Xml !!. contents To ByteArray (), ĠStandard Charsets . UTF _ 8 )). isEqualTo ( ĊĠĠĠĠĠ Ġ"<? xml Ġversion =\" 1 . 0 \" Ġencoding =\" UTF - 8 \" ?> \ n " Ġ+ ĊĠĠĠĠĠ Ġ"< lint >\ n " Ġ+ ĊĠĠĠĠĠ Ġ" ĠĠĠ Ġ< issue Ġid =\" Icon Duplicates \">\ n " Ġ+ ĊĠĠĠĠĠ Ġ" ĠĠĠĠĠĠĠ Ġ< ignore Ġpath =\" res / drawable / dup 1 . png \" Ġ/>\ n " Ġ+ ĊĠĠĠĠĠ Ġ" ĠĠĠ Ġ</ issue >\ n " Ġ+ ĊĠĠĠĠĠ Ġ"</ lint >") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Suppress ing In Xml 1 () Ġ{ ĊĠĠĠ Ġdo Test No Fix ( Android Lint Hard coded Text Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ res / layout / layout . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Suppress ing In Xml 2 () Ġ{ ĊĠĠĠ Ġdo Test No Fix ( Android Lint Hard coded Text Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ res / layout / layout . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Suppress ing In Xml 3 () Ġ{ ĊĠĠĠ Ġcreate Manifest () ĊĠĠĠ Ġmy Fixture . copy File To Project ("$ global Test Dir / layout . xml ", Ġ" res / layout / layout . xml ") ĊĠĠĠ Ġdo Global Inspection Test ( Android Lint Hard coded Text Inspection ()) ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Api Check 1 () Ġ{ ĊĠĠĠ Ġcreate Manifest () ĊĠĠĠ Ġmy Fixture . copy File To Project ("$ global Test Dir / My Activity . java ", Ġ" src / p 1 / p 2 / My Activity . java ") ĊĠĠĠ Ġdo Global Inspection Test ( Android Lint New Api Inspection ()) ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Api Check 1 b () Ġ{ Ġ// ĠCheck Ġadding Ġa Ġ@ Target Api Ġannotation Ġin Ġa ĠJava Ġfile Ġto Ġsuppress ĊĠĠĠ Ġcreate Manifest () ĊĠĠĠ Ġdo Test With Fix ( Android Lint New Api Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Add Ġ@ Target Api ( H ONE Y COMB ) ĠAnnotation ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ src / p 1 / p 2 / My Activity . java ", Ġ" java ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Api Check 1 c () Ġ{ Ġ// ĠCheck Ġadding Ġa Ġ@ Suppress Lint Ġannotation Ġin Ġa ĠJava Ġfile Ġto Ġsuppress ĊĠĠĠ Ġcreate Manifest () ĊĠĠĠ Ġdo Test With Fix ( Android Lint New Api Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Suppress : ĠAdd Ġ@ Suppress Lint (\" New Api \") Ġannotation ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ src / p 1 / p 2 / My Activity . java ", Ġ" java ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Api Check 1 d () Ġ{ Ġ// ĠCheck Ġadding Ġa Ġtools : target Api Ġattribute Ġin Ġan ĠXML Ġfile Ġto Ġsuppress ĊĠĠĠ Ġcreate Manifest () ĊĠĠĠ Ġdo Test With Fix ( Android Lint New Api Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Suppress Ġwith Ġtools : target Api Ġattribute ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ res / layout / layout . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Api Check 1 e () Ġ{ Ġ// ĠCheck Ġadding Ġa Ġtools : suppress Ġattribute Ġin Ġan ĠXML Ġfile Ġto Ġsuppress ĊĠĠĠ Ġcreate Manifest () ĊĠĠĠ Ġdo Test With Fix ( Android Lint New Api Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Suppress : ĠAdd Ġtools : ignore =\" New Api \" Ġattribute ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ res / layout / layout . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Api Check 1 f () Ġ{ Ġ// ĠCheck Ġadding Ġa Ġversion - check Ġconditional Ġin Ġa ĠJava Ġfile ĊĠĠĠ Ġcreate Manifest () ĊĠĠĠ Ġdo Test With Fix ( Android Lint New Api Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Sur round Ġwith Ġif Ġ( VERSION . SDK _ INT Ġ>= ĠVERSION _ CODES . H ONE Y COMB ) Ġ{ Ġ... Ġ} ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ src / p 1 / p 2 / My Activity . java ", Ġ" java ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Api Check 1 Kotlin () Ġ{ Ġ// ĠCheck Ġadding Ġa Ġversion - check Ġconditional Ġin Ġa ĠKotlin Ġfile ĊĠĠĠ Ġcreate Manifest () ĊĠĠĠ Ġdo Test With Fix ( Android Lint New Api Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Sur round Ġwith Ġif Ġ( VERSION . SDK _ INT Ġ>= ĠVERSION _ CODES . H ONE Y COMB ) Ġ{ Ġ... Ġ} ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ src / p 1 / p 2 / My Activity . kt ", Ġ" kt ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Add Sdk Int Java () Ġ{ ĊĠĠĠ Ġ// ĠCheck Ġadding Ġa Ġversion - checking Ġannotation Ġin Ġa ĠJava ĠFile ĊĠĠĠ Ġ// ĠThis Ġlint Ġcheck Ġonly Ġtriggers Ġin Ġa Ġlibrary , Ġso Ġplace Ġit Ġthere Ġinstead Ġof Ġnormal Ġsrc / Ġlocation : ĊĠĠĠ Ġval Ġsrc Root Ġ= Ġ"/ additional Modules / module 1 / src " ĊĠĠĠ Ġadd Checks Sdk Int At Least ( src Root ) ĊĠĠĠ Ġdo Test With Fix ( Android Lint Annot ate Version Check Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Annot ate Ġwith Ġ@ Checks Sdk Int At Least ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ src Root / p 1 / p 2 / Java Sdk Int Test . java ", Ġ" java ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Add Sdk Int Kotlin () Ġ{ ĊĠĠĠ Ġ// ĠLike Ġtest Add Sdk Int Java Ġbut Ġfor ĠKotlin ĊĠĠĠ Ġval Ġsrc Root Ġ= Ġ"/ additional Modules / module 1 / src " ĊĠĠĠ Ġadd Checks Sdk Int At Least ( src Root ) ĊĠĠĠ Ġdo Test With Fix ( Android Lint Annot ate Version Check Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Annot ate Ġwith Ġ@ Checks Sdk Int At Least ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ src Root / p 1 / p 2 / Sdk Int Test . kt ", Ġ" kt ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Java 8 Feature sWith out Des ug aring () Ġ{ ĊĠĠĠ Ġval Ġmin Sdk Ġ= Ġ 1 6 ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġadd Min Sdk Manifest ( min Sdk ) ĊĠĠĠ Ġ// ĠSet Ġdes ug aring Ġlevel Ġto ĠDEFAULT Ġwhich Ġdoes Ġnot Ġinclude Ġjava Ġ 8 Ġdes ug aring . ĊĠĠĠ ĠAndroid Model . set ( my Facet , ĠTest Android Model ( min Sdk Version Ġ= ĠAndroid Version ( min Sdk ), Ġdes ug aring Level Ġ= ĠDes ug aring . DEFAULT )) ĊĊĠĠĠ Ġval Ġhighlight s Ġ= Ġdo Test Highlighting ( Android Lint New Api Inspection (), Ġ" src / com / example / test / Test Activity . java ", Ġ" java ", Ġtrue ) ĊĠĠĠ Ġ// ĠAll ĠJava 8 Ġfeatures Ġshould Ġbe Ġflag ged Ġas Ġerrors ĊĠĠĠ Ġval Ġerrors Ġ= Ġhighlight s . filter Ġ{ Ġit . severity Ġ== ĠHighlight Severity . ERROR Ġ|| Ġit . severity Ġ== ĠHighlight Severity . WARNING Ġ}. toList () ĊĠĠĠ ĠassertThat ( errors ). has Size ( 7 ) ĊĊĠĠĠ Ġval Ġerror Descriptions Ġ= Ġerrors . map Ġ{ Ġit . description Ġ} ĊĠĠĠ ĠassertThat ( ĊĠĠĠĠĠ Ġerror Descriptions ). contains Exactly (" Call Ġrequires ĠAPI Ġlevel Ġ 2 4 Ġ( current Ġmin Ġis Ġ 1 6 ): Ġ` java . util . stream . Int Stream # range `", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Call Ġrequires ĠAPI Ġlevel Ġ 2 4 Ġ( current Ġmin Ġis Ġ 1 6 ): Ġ` java . util . stream . Int Stream # filter `", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Method Ġreference Ġrequires ĠAPI Ġlevel Ġ 2 4 Ġ( current Ġmin Ġis Ġ 1 6 ): Ġ` is Even :: test `", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Call Ġrequires ĠAPI Ġlevel Ġ 2 4 Ġ( current Ġmin Ġis Ġ 1 6 ): Ġ` java . util . stream . Int Stream # boxed `", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Call Ġrequires ĠAPI Ġlevel Ġ 2 4 Ġ( current Ġmin Ġis Ġ 1 6 ): Ġ` java . util . stream . Stream # collect `", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Cast Ġto Ġ` Collector ` Ġrequires ĠAPI Ġlevel Ġ 2 4 Ġ( current Ġmin Ġis Ġ 1 6 )", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Call Ġrequires ĠAPI Ġlevel Ġ 2 4 Ġ( current Ġmin Ġis Ġ 1 6 ): Ġ` java . util . stream . Collectors # toList ` ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Java 8 Feature sWith Des ug aring () Ġ{ ĊĠĠĠ Ġval Ġmin Sdk Ġ= Ġ 1 6 ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġadd Min Sdk Manifest ( min Sdk ) ĊĠĠĠ Ġ// ĠExplicit ly Ġenable Ġfull Ġdes ug aring ĊĠĠĠ ĠAndroid Model . set ( my Facet , ĠTest Android Model ( min Sdk Version Ġ= ĠAndroid Version ( min Sdk ), Ġdes ug aring Level Ġ= ĠDes ug aring . FULL )) ĊĊĠĠĠ Ġval Ġhighlight s Ġ= Ġdo Test Highlighting ( Android Lint New Api Inspection (), Ġ" src / com / example / test / Test Activity . java ", Ġ" java ", Ġtrue ) ĊĠĠĠ Ġ// ĠJava 8 Ġfeatures Ġshould Ġnot Ġbe Ġflag ged Ġas Ġissues ĊĠĠĠ Ġval Ġerrors Ġ= Ġhighlight s . filter Ġ{ Ġit . severity Ġ== ĠHighlight Severity . ERROR Ġ|| Ġit . severity Ġ== ĠHighlight Severity . WARNING Ġ}. toList () ĊĠĠĠ ĠassertThat ( errors ). has Size ( 0 ) ĊĠ Ġ} ĊĊĠ Ġfun Ġtest I ml File Outside Content Root () Ġ{ ĊĠĠĠ Ġmy Fixture . copy File To Project ( Sdk Constants . FN _ ANDROID _ MAN IFEST _ XML , Ġ" additional Modules / module 1 /" Ġ+ ĠS dk Constants . FN _ ANDROID _ MAN IFEST _ XML ) ĊĠĠĠ Ġmy Fixture . copy File To Project ( Sdk Constants . FN _ ANDROID _ MAN IFEST _ XML , Ġ" additional Modules / module 2 /" Ġ+ ĠS dk Constants . FN _ ANDROID _ MAN IFEST _ XML ) ĊĠĠĠ Ġval Ġtest Dir Ġ= ĠBASE _ PATH _ GLOBAL Ġ+ Ġ" api Check 1 " ĊĠĠĠ Ġmy Fixture . copy File To Project ("$ test Dir / My Activity . java ", Ġ" additional Modules / module 1 / src / p 1 / p 2 / My Activity . java ") ĊĠĠĠ Ġdo Global Inspection Test ( Android Lint New Api Inspection (), Ġtest Dir , ĠAnalysis Scope ( project )) ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Unused Resource () Ġ{ ĊĠĠĠ Ġ// ĠThis Ġtest Ġchecks Ġ 3 Ġthings . ĊĠĠĠ Ġ// ĠFirst , Ġit Ġruns Ġthe Ġunused Ġresources Ġglobal Ġinspection Ġand Ġchecks Ġthat Ġit Ġgets Ġit Ġright Ġ( the Ġresults Ġare Ġchecked ĊĠĠĠ Ġ// Ġagainst Ġunused Resources / expected . xml ). ĊĠĠĠ Ġ// ĊĠĠĠ Ġ// ĠThen , Ġit Ġchecks Ġthat Ġ* all * Ġthe Ġquick fixes Ġassociated Ġwith Ġthis Ġuse Ġa Ġunique Ġfamily Ġname . ĠThis Ġchecks Ġthat ĊĠĠĠ Ġ// Ġwe Ġdon 't Ġget Ġinto Ġthe Ġscenario Ġdescribed Ġin Ġissue Ġ 2 3 5 6 4 1 , Ġwhere Ġa Ġ* single * Ġaction Ġis Ġcreated Ġto Ġrun Ġall Ġ 3 ĊĠĠĠ Ġ// Ġquick fixes Ġ( both Ġadding Ġtools / keep , Ġwhich Ġis Ġtaken Ġas Ġthe Ġdisplay Ġname , Ġas Ġwell Ġas Ġthe Ġremoval Ġrefactoring ). ĊĠĠĠ Ġ// ĊĠĠĠ Ġ// ĠFinally , Ġit Ġactually Ġperforms Ġthe Ġunused Ġrefactoring Ġfix . ĠThis Ġverifies Ġthat Ġthis Ġworks Ġwithout Ġthe Ġcrash ĊĠĠĠ Ġ// Ġalso Ġreported Ġin Ġissue Ġ 2 3 5 6 4 1 Ġ( where Ġthe Ġunused Ġrefactoring Ġis Ġinvoked Ġunder Ġa Ġwrite Ġlock , Ġwhich Ġquick fixes ĊĠĠĠ Ġ// Ġnormally Ġare , Ġbut Ġwhich Ġis Ġforbidden Ġby Ġthe Ġrefactoring Ġframework .) ĊĠĠĠ Ġval Ġfile Ġ= Ġmy Fixture . copy File To Project ("$ global Test Dir / strings . xml ", Ġ" res / values / strings . xml ") ĊĠĠĠ Ġmy Fixture . configure From Existing Virtual File ( file ) ĊĠĠĠ Ġval Ġmap Ġ= Ġdo Global Inspection Test ( Android Lint Unused Resources Inspection ()) ĊĠĠĠ Ġvar Ġtarget Descriptor : ĠCommon Problem Descriptor ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġtarget Fix : ĠQuick Fix < Common Problem Descriptor ?> ? Ġ= Ġnull ĊĊĠĠĠ Ġ// ĠEnsure Ġfamily Ġnames Ġare Ġunique ; Ġif Ġnot Ġquick fixes Ġget Ġcollapsed . ĠSet . add Ġonly Ġreturns Ġtrue Ġif Ġit Ġwasn 't Ġalready Ġin Ġthe Ġset . ĊĠĠĠ Ġfor Ġ( ref Entity Ġin Ġmap . keys ()) Ġ{ ĊĠĠĠĠĠ Ġfor Ġ( descriptor Ġin Ġmap [ ref Entity ]) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfamily Names : ĠMutable Set < String > Ġ= ĠSets . new HashSet () ĊĠĠĠĠĠĠĠ Ġval Ġfixes Ġ= Ġdescriptor . fixes ĊĠĠĠĠĠĠĠ Ġif Ġ( fixes Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġfor Ġ( fix Ġin Ġfixes ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġfix . name ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( family Names . add ( fix . family Name )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(" Remove ĠDecl arations Ġfor ĠR . string . unused " Ġ== Ġname ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Descriptor Ġ= Ġdescriptor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Fix Ġ= Ġfix ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ ĠassertNotNull ( target Descriptor ) ĊĠĠĠ ĠassertNotNull ( target Fix ) ĊĠĠĠ Ġ// ĠTODO : ĠConsider Ġusing ĠCode Insight TestFixture Impl # invoke Int ention ĊĠĠĠ Ġtarget Fix !!. apply Fix ( project , Ġtarget Descriptor !! ) ĊĠĠĠ Ġmy Fixture . check Result By File ("$ global Test Dir / strings _ after . xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Merge Obsolete Folders () Ġ{ Ġ// ĠForce Ġmin Sdk Version Ġto Ġv 1 4 : ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġadd Min Sdk Manifest ( 1 4 ) ĊĊĠĠĠ Ġval Ġmain File Ġ= Ġmy Fixture . copy File To Project ("$ global Test Dir / values - strings . xml ", Ġ" res / values / strings . xml ") ĊĠĠĠ Ġval Ġv 8 strings Ġ= Ġmy Fixture . copy File To Project ("$ global Test Dir / values - v 8 - strings . xml ", Ġ" res / values - v 8 / strings . xml ") ĊĠĠĠ Ġval Ġv 1 0 strings Ġ= Ġmy Fixture . copy File To Project ("$ global Test Dir / values - v 1 0 - strings . xml ", Ġ" res / values - v 1 0 / strings . xml ") ĊĊĠĠĠ Ġmy Fixture . copy File To Project ("$ global Test Dir / layout - v 1 1 - activity _ main . xml ", Ġ" res / layout - v 1 1 / activity _ main . xml ") ĊĠĠĠ Ġmy Fixture . copy File To Project ("$ global Test Dir / layout - activity _ main . xml ", Ġ" res / layout / activity _ main . xml ") ĊĊĠĠĠ Ġmy Fixture . configure From Existing Virtual File ( main File ) ĊĊĠĠĠ Ġval Ġinspection Ġ= ĠAndroid Lint Obsolete Sdk Int Inspection () ĊĠĠĠ Ġval Ġaction Label Ġ= Ġ" Merge Ġresources Ġfrom Ġ- v 8 Ġand Ġ- v 1 0 Ġinto Ġvalues " ĊĠĠĠ Ġdo Global Inspection With Fix ( inspection , Ġaction Label ) ĊĠĠĠ Ġmy Fixture . check Result By File ("$ global Test Dir / values - strings _ after . xml ") ĊĠĠĠ Ġ// Ġcheck Ġthat Ġthe Ġother Ġfolders Ġdon 't Ġexist ĊĠĠĠ ĠassertFalse ( v 8 strings . isValid ) ĊĠĠĠ ĠassertFalse ( v 1 0 strings . isValid ) ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Imp lied Touch screen Hardware () Ġ{ ĊĠĠĠ Ġdo Test With Fix ( Android Lint Imp lied Touch screen Hardware Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Add Ġuses - feature Ġtag ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Android Manifest . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Api In lined () Ġ{ ĊĠĠĠ Ġcreate Manifest () ĊĠĠĠ Ġmy Fixture . copy File To Project ("$ global Test Dir / My Activity . java ", Ġ" src / p 1 / p 2 / My Activity . java ") ĊĠĠĠ Ġdo Global Inspection Test ( Android Lint In lined Api Inspection ()) ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Api Override () Ġ{ ĊĠĠĠ Ġcreate Manifest () ĊĠĠĠ Ġcreate Project Properties () ĊĠĠĠ Ġ// ĠWe Ġneed Ġa Ġbuild Ġtarget Ġ>= Ġ 1 Ġbut Ġalso Ġ* smaller * Ġthan Ġ 1 7 . ĠEnsure Ġthis Ġis Ġthe Ġcase ĊĠĠĠ Ġval Ġplatform Ġ= ĠAndroid Platform . getInstance ( my Facet . module ) ĊĠĠĠ Ġif Ġ( platform Ġ!= Ġnull Ġ&& Ġplatform . api Level Ġ< Ġ 1 7 ) Ġ{ ĊĠĠĠĠĠ Ġmy Fixture . copy File To Project ("$ global Test Dir / My Activity . java ", Ġ" src / p 1 / p 2 / My Activity . java ") ĊĠĠĠĠĠ Ġdo Global Inspection Test ( Android Lint Override Inspection ()) ĊĠĠĠ Ġ} Ġelse Ġ{ Ġ// ĠTODO : Ġelse Ġtry Ġto Ġfind Ġand Ġset Ġa Ġtarget Ġon Ġthe Ġproject Ġsuch Ġthat Ġthe Ġabove Ġreturns Ġtrue ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Parcel Loader () Ġ{ ĊĠĠĠ Ġdo Test With Fix ( Android Lint Parcel ClassLoader Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Use ĠgetClass (). getClassLoader ()", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ src / test / pkg / Parcel ClassLoader Test . java ", Ġ" java ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Parcel Loader 2 () Ġ{ ĊĠĠĠ Ġdo Test With Fix ( Android Lint Parcel ClassLoader Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Use ĠgetClass (). getClassLoader ()", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ src / test / pkg / Parcel ClassLoader Test . java ", Ġ" java ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest De precation () Ġ{ Ġ// ĠNeed Ġto Ġuse Ġmin Sdk Version Ġ>= Ġ 3 Ġto Ġget Ġall Ġthe Ġdeprecation Ġwarnings Ġto Ġkick Ġin ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġadd Min Sdk Manifest ( 3 ) ĊĠĠĠ Ġdo Test No Fix ( Android Lint Deprecated Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ res / layout / deprecation . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Un protected Sms Broadcast Receiver () Ġ{ ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġdo Test With Fix ( Android Lint Un protected SMS Broadcast Receiver Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Set Ġpermission =\" android . permission . BRO ADCAST _ SMS \"", Ġ" Android Manifest . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Activity Registered () Ġ{ ĊĠĠĠ Ġcreate Manifest () ĊĠĠĠ Ġmy Fixture . copy File To Project ("$ global Test Dir / My Activity . java ", Ġ" src / p 1 / p 2 / My Activity . java ") ĊĠĠĠ Ġmy Fixture . copy File To Project ("$ global Test Dir / My Derived . java ", Ġ" src / p 1 / p 2 / My Derived . java ") ĊĠĠĠ Ġdo Global Inspection Test ( Android Lint Registered Inspection ()) ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠQuick Ġfix Ġfor Ġty pos Ġin Ġnetwork - security - config Ġfile . Ġ( espec ially Ġelements ) ĊĠĠ Ġ*/ ĊĠ Ġfun Ġtest Network Security Config Ty pos 1 () Ġ{ ĊĠĠĠ Ġcreate Manifest () ĊĠĠĠ Ġdo Test With Fix ( Android Lint Network Security Config Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Use Ġdomain - config ", Ġ" res / xml / network - config . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠCheck Ġty pos Ġin Ġnetwork - security - config Ġattribute . ĊĠĠ Ġ*/ ĊĠ Ġfun Ġtest Network Security Config Ty pos 2 () Ġ{ ĊĠĠĠ Ġcreate Manifest () ĊĠĠĠ Ġdo Test With Fix ( Android Lint Network Security Config Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Use Ġinclude Sub domains ", Ġ" res / xml / network - config . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Delete Repeated Words () Ġ{ ĊĠĠĠ Ġdo Test With Fix ( Android Lint Ty pos Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Delete Ġrepeated Ġword ", Ġ" res / values / strings . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Invalid Pin Digest Alg () Ġ{ ĊĠĠĠ Ġcreate Manifest () ĊĠĠĠ Ġdo Test With Fix ( Android Lint Network Security Config Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Set Ġdigest Ġto Ġ\" SHA - 2 5 6 \"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res / xml / network - config . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Resource Types () Ġ{ ĊĠĠĠ Ġcreate Manifest () ĊĠĠĠ Ġadd Drawable Res () ĊĠĠĠ Ġdo Test No Fix ( Android Lint ResourceType Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ src / p 1 / p 2 / Resource Types . java ", Ġ" java ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest String Esc apes () Ġ{ Ġ// ĠRegression Ġtest Ġfor Ġhttps :// code . google . com / p / android / issues / detail ? id = 2 2 4 1 5 0 ĊĠĠĠ Ġdo Test With Fix ( Android Lint String Esc aping Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Escape ĠA post rop he ", Ġ"/ res / values / strings . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Registration () Ġ{ ĊĠĠĠ Ġdo Test Highlighting ( Android Lint Registered Inspection (), Ġ"/ src / p 1 / p 2 / Registration Test . java ", Ġ" java ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Extend AppCompat Widgets () Ġ{ Ġ// ĠConfigure Ġapp compat Ġdependency ĊĠĠĠ Ġval Ġmodules Ġ= ĠModule Manager . getInstance ( project ). modules ĊĠĠĠ Ġfor Ġ( module Ġin Ġmodules ) Ġ{ ĊĠĠĠĠĠ Ġif Ġ( module Ġ!== Ġmy Module Ġ&& ĠAndroid Facet . getInstance ( module ) Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdelete Manifest ( module ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġtest Project System Ġ= ĠTest Project System ( project ) ĊĠĠĠ Ġtest Project System . use In Tests () ĊĠĠĠ Ġtest Project System . add Dependency ( Google Maven Artifact Id . APP _ COMPAT _ V 7 , Ġmy Fixture . module , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGradle Version . parse ("+ ")) ĊĠĠĠ Ġdo Test With Fix ( Android Lint AppCompat Custom View Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Extend ĠAppCompat Ġwidget Ġinstead ", Ġ"/ src / p 1 / p 2 / My Button . java ", Ġ" java ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Ex if () Ġ{ ĊĠĠĠ Ġdo Test With Fix ( Android Lint Ex if Interface Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Update Ġall Ġreferences Ġin Ġthis Ġfile ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ src / test / pkg / Ex if Usage . java ", Ġ" java ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Missing W ear Standalone App Flag () Ġ{ ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġdo Test With Fix ( Android Lint W ear Standalone App Flag Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Add Ġmeta - data Ġelement Ġfor Ġ' com . google . android . we arable . standalone '", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Android Manifest . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Invalid W ear Standalone App Attr Value () Ġ{ ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġdo Test With Fix ( Android Lint W ear Standalone App Flag Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Replace Ġwith Ġtrue ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Android Manifest . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Missing W ear Standalone App Flag Value Attr () Ġ{ ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġdo Test With Fix ( Android Lint W ear Standalone App Flag Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Set Ġvalue =\" true \"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Android Manifest . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Invalid W ear Feature Attr () Ġ{ ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġdo Test With Fix ( Android Lint Invalid W ear Feature Attribute Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Remove Ġattribute ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Android Manifest . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Wake lock Timeout () Ġ{ ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġdo Test With Fix ( Android Lint Wake lock Timeout Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Set Ġtimeout Ġto Ġ 1 0 Ġminutes ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ src / test / pkg / Wake lock Test . java ", Ġ" java ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Wifi Manager Leak () Ġ{ ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġ// ĠSet Ġmin Sdk Version Ġto Ġpre - N : ĊĠĠĠ Ġdelete Manifest () ĊĠĠĠ Ġadd Min Sdk Manifest ( 1 4 ) ĊĠĠĠ Ġdo Test With Fix ( Android Lint Wifi Manager Leak Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Add Ġget ApplicationContext ()", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ src / test / pkg / Wifi Manager Leak . java ", Ġ" java ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Invalid I me Action Id () Ġ{ ĊĠĠĠ Ġdo Test No Fix ( Android Lint Invalid I me Action Id Inspection (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ res / layout / layout . xml ", Ġ" xml ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Lint Non Android () Ġ{ Ġ// ĠSee ĠL int Ide Test ; Ġthis Ġis Ġthe Ġopposite Ġcheck ĊĠĠĠ Ġ// ĠMake Ġsure Ġthat Ġwe Ġdon 't Ġinclude Ġthe Ġnon - Android Ġlint Ġchecks Ġhere . ĊĠĠĠ Ġval Ġissues : ĠIssue Registry Ġ= ĠL int Ide Issue Registry () ĊĠĠĠ ĠassertNull ( issues . get Issue (" Lint Impl Dollar Esc apes ")) ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Old Beta Plugin () Ġ{ ĊĠĠĠ Ġ// Ġnote : Ġthe Ġtest Ġfile Ġneeds Ġupdating Ġwhen Ġmajor / minor Ġversions Ġof ĠA GP Ġare Ġremoved Ġfrom Ġthe Ġoffline ĊĠĠĠ Ġ// ĠGoogle ĠMaven Ġcache , Ġand Ġin Ġparticular Ġthere Ġmay Ġbe Ġno Ġway Ġto Ġget Ġthis Ġtest Ġto Ġpass Ġ( i . e . Ġto Ġshow Ġa ĊĠĠĠ Ġ// Ġwarning ) Ġif Ġthe Ġonly Ġstable ĠA GP Ġversion Ġin Ġthe Ġoffline ĠGoogle ĠMaven Ġcache Ġis Ġa Ġ. 0 Ġpatch level Ġversion . ĊĠĠĠ Ġdo Test Highlighting ( Android Lint Android Gradle Plugin Version Inspection (), Ġ" build . gradle ", Ġ" gradle ") ĊĠ Ġ} ĊĊĠ Ġfun Ġtest Old Beta Plugin No GM aven () Ġ{ ĊĠĠĠ Ġdo Test Highlighting ( Android Lint Android Gradle Plugin Version Inspection (), Ġ" build . gradle ", Ġ" gradle ") ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġdo Global Inspection Test ( inspection : ĠAndroid Lint Inspection Base ): ĠSynchron ized B idi Multi Map < Ref Entity , ĠCommon Problem Descriptor > Ġ{ ĊĠĠĠ Ġmy Fixture . enable Ins pe ctions ( inspection ) ĊĠĠĠ Ġreturn Ġdo Global Inspection Test ( inspection , Ġglobal Test Dir , ĠAnalysis Scope ( my Module )) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġdo Global Inspection With Fix ( inspection : ĠAndroid Lint Inspection Base , Ġaction Label : ĠString ) Ġ{ ĊĠĠĠ Ġval Ġmap Ġ= Ġdo Global Inspection Test ( inspection ) ĊĠĠĠ Ġ// ĠEnsure Ġfamily Ġnames Ġare Ġunique ; Ġif Ġnot Ġquick fixes Ġget Ġcollapsed . ĠSet . add Ġonly Ġreturns Ġtrue Ġif Ġit Ġwasn 't Ġalready Ġin Ġthe Ġset . ĊĠĠĠ Ġfor Ġ( ref Entity Ġin Ġmap . keys ()) Ġ{ ĊĠĠĠĠĠ Ġfor Ġ( descriptor Ġin Ġmap [ ref Entity ]) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfixes Ġ= Ġdescriptor . fixes ĊĠĠĠĠĠĠĠ Ġif Ġ( fixes Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġfor Ġ( fix Ġin Ġfixes ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġfix . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( action Label Ġ== Ġname ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( fix . start In Write Action ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWrite Command Action . run Write Command Action ( project ) Ġ{ Ġfix . apply Fix ( project , Ġdescriptor ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfix . apply Fix ( project , Ġdescriptor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġval Ġglobal Test Dir : ĠString ĊĠĠĠ Ġget () Ġ= ĠBASE _ PATH _ GLOBAL Ġ+ Ġget Test Name ( true ) ĊĊĠ Ġprivate Ġfun Ġdo Test No Fix ( inspection : ĠAndroid Lint Inspection Base , Ġcopy To : ĠString , Ġextension : ĠString ) Ġ{ ĊĠĠĠ Ġdo Test Highlighting ( inspection , Ġcopy To , Ġextension ) ĊĠĠĠ Ġvar Ġaction : ĠInt ention Action ? Ġ= Ġnull ĊĠĠĠ Ġfor Ġ( a Ġin Ġmy Fixture . available Intent ions ) Ġ{ ĊĠĠĠĠĠ Ġif Ġ( a Ġis ĠMy Fix ing Int ention ) Ġ{ ĊĠĠĠĠĠĠĠ Ġaction Ġ= Ġa ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ ĠassertNull ( action ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġdo Test With Fix ( ĊĠĠĠ Ġinspection : ĠAndroid Lint Inspection Base , ĊĠĠĠ Ġmessage : ĠString , ĊĠĠĠ Ġcopy To : ĠString , ĊĠĠĠ Ġextension : ĠString ĊĠ Ġ) Ġ{ ĊĠĠĠ Ġval Ġaction Ġ= Ġdo Test Highlighting AndGet Quick fix ( inspection , Ġmessage , Ġcopy To , Ġextension ) ĊĠĠĠ ĠassertNotNull ( action ) ĊĠĠĠ Ġdo Test With Action ( extension , Ġaction !! ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġdo Test Without Highlighting With Fix ( ĊĠĠĠ Ġinspection : ĠAndroid Lint Inspection Base , ĊĠĠĠ Ġmessage : ĠString , ĊĠĠĠ Ġcopy To : ĠString , ĊĠĠĠ Ġextension : ĠString ĊĠ Ġ) Ġ{ ĊĠĠĠ Ġval Ġaction Ġ= Ġget Quick fix Without Highlighting Check ( inspection , Ġmessage , Ġcopy To , Ġextension ) ĊĠĠĠ ĠassertNotNull ( action ) ĊĠĠĠ Ġdo Test With Action ( extension , Ġaction !! ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġdo Test With Action ( extension : ĠString , Ġaction : ĠInt ention Action ) Ġ{ ĊĠĠĠ ĠassertTrue ( action . is Available ( my Fixture . project , Ġmy Fixture . editor , Ġmy Fixture . file )) ĊĠĠĠ ĠWrite Command Action . run Write Command Action ( my Fixture . project ) Ġ{ ĊĠĠĠĠĠ Ġaction . invoke ( my Fixture . project , Ġmy Fixture . editor , Ġmy Fixture . file ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġmy Fixture . check Result By File ( BASE _ PATH Ġ+ Ġget Test Name ( true ) Ġ+ Ġ"_ after ." Ġ+ Ġextension ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġdo Test Highlighting AndGet Quick fix ( ĊĠĠĠ Ġinspection : ĠAndroid Lint Inspection Base , ĊĠĠĠ Ġmessage : ĠString , ĊĠĠĠ Ġcopy To : ĠString , ĊĠĠĠ Ġextension : ĠString ĊĠ Ġ): ĠInt ention Action ? Ġ{ ĊĠĠĠ Ġdo Test Highlighting ( inspection , Ġcopy To , Ġextension , Ġfalse ) ĊĠĠĠ Ġreturn Ġmy Fixture . getInt ention Action ( message ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġget Quick fix Without Highlighting Check ( ĊĠĠĠ Ġinspection : ĠAndroid Lint Inspection Base , ĊĠĠĠ Ġmessage : ĠString , ĊĠĠĠ Ġcopy To : ĠString , ĊĠĠĠ Ġextension : ĠString ĊĠ Ġ): ĠInt ention Action ? Ġ{ ĊĠĠĠ Ġdo Test Highlighting ( inspection , Ġcopy To , Ġextension , Ġtrue ) ĊĠĠĠ Ġreturn Ġmy Fixture . getInt ention Action ( message ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġdo Test Highlighting ( ĊĠĠĠ Ġinspection : ĠAndroid Lint Inspection Base , ĊĠĠĠ Ġcopy To : ĠString , ĊĠĠĠ Ġextension : ĠString , ĊĠĠĠ Ġskip Check : ĠBoolean Ġ= Ġfalse ĊĠ Ġ): ĠList < Highlight Info > Ġ{ ĊĠĠĠ Ġmy Fixture . enable Ins pe ctions ( inspection ) ĊĠĠĠ Ġval Ġfile Ġ= Ġmy Fixture . copy File To Project ( BASE _ PATH Ġ+ Ġget Test Name ( true ) Ġ+ Ġ"." Ġ+ Ġextension , Ġcopy To ) ĊĠĠĠ Ġmy Fixture . configure From Existing Virtual File ( file ) ĊĠĠĠ Ġ// ĠStrip Ġout Ġ< error > Ġand Ġ< warning > Ġmarkers . ĠIt 's Ġnot Ġclear Ġwhy Ġthe Ġtest Ġframework ĊĠĠĠ Ġ// Ġdoesn 't Ġdo Ġthis Ġ( it Ġ* does * Ġstrip Ġout Ġthe Ġ< caret > Ġmarkers ). ĠWithout Ġthis , ĊĠĠĠ Ġ// Ġlint Ġis Ġpassed Ġmarkup Ġfiles Ġthat Ġcontain Ġthe Ġerror Ġmarkers , Ġwhich Ġmakes ĊĠĠĠ Ġ// Ġfor Ġexample Ġquick Ġfixes Ġnot Ġwork . ĊĠĠĠ Ġval Ġprev Ġ= Ġstrip Markers ( file ) ĊĠĠĠ Ġval Ġhighlight Info Ġ= Ġmy Fixture . do Highlighting () ĊĠĠĠ Ġ// ĠRestore Ġmarkers Ġbefore Ġdiff ing . ĊĠĠĠ Ġrestore Markers ( file , Ġprev ) ĊĠĠĠ Ġif Ġ(! skip Check ) Ġ{ ĊĠĠĠĠĠ Ġmy Fixture . check Highlighting ( true , Ġfalse , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġhighlight Info ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠRemoves Ġany Ġerror Ġand Ġwarning Ġmarkers Ġfrom Ġa Ġfile , Ġand Ġreturns Ġthe Ġoriginal Ġtext ĊĠĠ Ġ*/ ĊĠ Ġprivate Ġfun Ġstrip Markers ( file : ĠVirtual File ): ĠString ? Ġ{ ĊĠĠĠ Ġval Ġproject Ġ= Ġproject ĊĠĠĠ Ġval Ġpsi File Ġ= ĠPsi Manager . getInstance ( project ). find File ( file ) Ġ?: Ġreturn Ġnull ĊĠĠĠ Ġval Ġdocument Ġ= ĠPsi Document Manager . getInstance ( project ). getDocument ( psi File ) Ġ?: Ġreturn Ġnull ĊĠĠĠ Ġval Ġprev Ġ= Ġdocument . text ĊĠĠĠ ĠWrite Command Action . run Write Command Action ( project , ĠRunnable Ġ{ ĊĠĠĠĠĠ Ġwhile Ġ( true ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(!( remove Tag ( document , Ġ"< error ", Ġ"> ") Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremove Tag ( document , Ġ"</ error ", Ġ"> ") Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremove Tag ( document , Ġ"< warning ", Ġ"> ") Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremove Tag ( document , Ġ"</ warning ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"> "))) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) ĊĠĠĠ Ġreturn Ġprev ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠSets Ġthe Ġcontents Ġof Ġthe Ġgiven Ġfile Ġto Ġthe Ġgiven Ġstring . ĊĠĠ Ġ*/ ĊĠ Ġprivate Ġfun Ġrestore Markers ( file : ĠVirtual File , Ġcontents : ĠString ?) Ġ{ ĊĠĠĠ Ġval Ġproject Ġ= Ġproject ĊĠĠĠ Ġval Ġpsi File Ġ= ĠPsi Manager . getInstance ( project ). find File ( file ) Ġ?: Ġreturn ĊĠĠĠ Ġval Ġdocument Ġ= ĠPsi Document Manager . getInstance ( project ). getDocument ( psi File ) Ġ?: Ġreturn ĊĠĠĠ ĠWrite Command Action . run Write Command Action ( project ) Ġ{ Ġdocument . setText ( contents !! ) Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġadd Min Sdk Manifest ( min Sdk : ĠInt ) Ġ{ ĊĠĠĠ Ġmy Fixture . add File To Project (" Android Manifest . xml ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ<? xml Ġversion =" 1 . 0 " Ġencoding =" utf - 8 "?> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< manifest Ġxmlns : android =" http :// schemas . android . com / apk / res / android " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage =" test . pkg " Ġ> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< uses - sdk Ġandroid : min Sdk Version ="$ min Sdk " Ġandroid : target Sdk Version =" 2 5 " Ġ/> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ manifest >" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent ()) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġadd Requires Api () Ġ{ ĊĠĠĠ Ġmy Fixture . add File To Project ("/ src / android / support / annotation / Requires Api . java ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġandroid . support . annotation ;\ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . ElementType . CON STRUCTOR ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . ElementType . FIELD ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . ElementType . METHOD ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . ElementType . PACKAGE ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . ElementType . TYPE ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . RetentionPolicy . CLASS ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjava . lang . annotation . Retention ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjava . lang . annotation . Target ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Retention ( CLASS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Target ({ TYPE , ĠMETHOD , ĠCON STRUCTOR , ĠFIELD , ĠPACK AGE }) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġ@ interface ĠRequires Api Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġint Ġvalue () Ġdefault Ġ 1 ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġint Ġapi () Ġdefault Ġ 1 ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent ()) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġadd Int Def () Ġ{ ĊĠĠĠ Ġmy Fixture . add File To Project ("/ src / android / support / annotation / Int Def . java ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġandroid . support . annotation ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjava . lang . annotation . Retention ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjava . lang . annotation . RetentionPolicy ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjava . lang . annotation . Target ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . ElementType . AN NOT ATION _ TYPE ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . ElementType . FIELD ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . ElementType . METHOD ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . ElementType . PARAMETER ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . RetentionPolicy . CLASS ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . RetentionPolicy . SOURCE ; Ċ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Retention ( CLASS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Target ({ AN NOT ATION _ TYPE }) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġ@ interface ĠInt Def Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlong [] Ġvalue () Ġdefault Ġ{}; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġboolean Ġflag () Ġdefault Ġfalse ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent ()) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġadd Keep () Ġ{ ĊĠĠĠ Ġmy Fixture . add File To Project ("/ src / android x / annotation / Keep . java ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġandroidx . annotation ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . ElementType . AN NOT ATION _ TYPE ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . ElementType . CON STRUCTOR ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . ElementType . FIELD ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . ElementType . METHOD ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . ElementType . PACKAGE ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . ElementType . TYPE ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . RetentionPolicy . CLASS ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjava . lang . annotation . Retention ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjava . lang . annotation . Target ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Retention ( CLASS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Target ({ PACKAGE , TYPE , AN NOT ATION _ TYPE , CON STRUCTOR , METHOD , FIELD }) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġ@ interface ĠKeep Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent ()) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġadd Check Result () Ġ{ ĊĠĠĠ Ġmy Fixture . add File To Project ("/ src / android / support / annotation / Keep . java ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġandroid . support . annotation ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . ElementType . METHOD ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . RetentionPolicy . CLASS ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjava . lang . annotation . Document ed ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjava . lang . annotation . Retention ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjava . lang . annotation . Target ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Document ed ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Retention ( CLASS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Target ({ METHOD }) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġ@ interface ĠCheck Result Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠString Ġsuggest () Ġdefault Ġ""; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent ()) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġadd Drawable Res () Ġ{ ĊĠĠĠ Ġmy Fixture . add File To Project ("/ src / android / support / annotation / Drawable Res . java ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġandroid . support . annotation ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . ElementType . FIELD ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . ElementType . LOCAL _ VARIABLE ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . ElementType . METHOD ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . ElementType . PARAMETER ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . RetentionPolicy . CLASS ; Ċ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjava . lang . annotation . Document ed ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjava . lang . annotation . Retention ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjava . lang . annotation . Target ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Document ed ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Retention ( CLASS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Target ({ METHOD , ĠPARAMETER , ĠFIELD , ĠLOCAL _ VARIABLE }) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġ@ interface ĠDrawable Res Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent ()) ĊĠ Ġ} ĊĊĠ Ġ// Ġ--- ĠAndroid X Ġ--- ĊĠ Ġprivate Ġfun Ġadd Color Int () Ġ{ ĊĠĠĠ Ġmy Fixture . add File To Project ("/ src / android x / annotation / Color Int . java ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġandroidx . annotation ; Ċ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . ElementType . FIELD ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . ElementType . LOCAL _ VARIABLE ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . ElementType . METHOD ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . ElementType . PARAMETER ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . RetentionPolicy . CLASS ; Ċ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjava . lang . annotation . Retention ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjava . lang . annotation . Target ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Retention ( CLASS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Target ({ PARAMETER , METHOD , LOCAL _ VARIABLE , FIELD }) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġ@ interface ĠColor Int Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent ()) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġadd Color Res () Ġ{ ĊĠĠĠ Ġmy Fixture . add File To Project ("/ src / android x / annotation / Color Res . java ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġandroidx . annotation ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . ElementType . FIELD ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . ElementType . LOCAL _ VARIABLE ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . ElementType . METHOD ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . ElementType . PARAMETER ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . RetentionPolicy . CLASS ; Ċ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjava . lang . annotation . Document ed ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjava . lang . annotation . Retention ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjava . lang . annotation . Target ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Document ed ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Retention ( CLASS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Target ({ METHOD , ĠPARAMETER , ĠFIELD , ĠLOCAL _ VARIABLE }) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġ@ interface ĠColor Res Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent ()) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġadd Checks Sdk Int At Least ( target Dir : ĠString Ġ= Ġ"/ src /") Ġ{ ĊĠĠĠ Ġmy Fixture . add File To Project ("$ target Dir / android x / annotation / Checks Sdk Int At Least . java ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġandroidx . annotation ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . ElementType . FIELD ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . ElementType . METHOD ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġstatic Ġjava . lang . annotation . RetentionPolicy . CLASS ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjava . lang . annotation . Document ed ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjava . lang . annotation . Retention ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjava . lang . annotation . Target ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Document ed ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Retention ( CLASS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Target ({ METHOD , ĠFIELD }) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġ@ interface ĠChecks Sdk Int At Least Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġint Ġapi () Ġdefault Ġ- 1 ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠString Ġcod ename () Ġdefault Ġ""; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġint Ġparameter () Ġdefault Ġ- 1 ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġint Ġlambda () Ġdefault Ġ- 1 ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġ@ Non N ls ĊĠĠĠ Ġprivate Ġconst Ġval ĠBASE _ PATH Ġ= Ġ"/ lint /" ĊĠĠĠ Ġ@ Non N ls ĊĠĠĠ Ġprivate Ġconst Ġval ĠBASE _ PATH _ GLOBAL Ġ= ĠBASE _ PATH Ġ+ Ġ" global /" ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠS ear ches Ġthe Ġgiven Ġdocument Ġfor Ġa Ġprefix Ġand Ġsuffix Ġand Ġdeletes Ġit Ġif Ġfound . ĠCall er Ġmust Ġhold Ġwrite Ġlock . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġremove Tag ( document : ĠDocument , Ġprefix : ĠString , Ġsuffix : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠ Ġval Ġsequence Ġ= Ġdocument . chars Sequence ĊĠĠĠĠĠ Ġval Ġstart Ġ= ĠChar Sequences . indexOf ( sequence , Ġprefix ) ĊĠĠĠĠĠ Ġif Ġ( start Ġ!= Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġend Ġ= ĠChar Sequences . indexOf ( sequence , Ġsuffix , Ġstart Ġ+ Ġprefix . length ) ĊĠĠĠĠĠĠĠ Ġif Ġ( end Ġ!= Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġend Ġ+= Ġsuffix . length ĊĠĠĠĠĠĠĠĠĠ Ġdocument . delete String ( start , Ġend ) ĊĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ