/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 Ġ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 Ġandroidx . work . lint Ċ Ċ import Ġandroidx . work . lint . Stub s . ANDROID _ APPLICATION Ċ import Ġandroidx . work . lint . Stub s . WORK _ MANAGER _ CONFIGURATION _ PROVIDER Ċ import Ġcom . android . tools . lint . checks . infrastructure . Lint Detector Test . kotlin Ċ import Ġcom . android . tools . lint . checks . infrastructure . Test Files . manifest Ċ import Ġcom . android . tools . lint . checks . infrastructure . Test Lint Task . lint Ċ import Ġorg . junit . Test Ċ Ċ class ĠRemove Work Manager Initializer Detector Test Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest No Warnings When Default Initializer Is Removed () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcustom Application Ġ= Ġkotlin ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" com / example / App . kt ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġcom . example ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroid . app . Application ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroidx . work . Configuration ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠApp : ĠApplication (), ĠConfiguration . Provider Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonCreate () Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Work Manager Configuration (): ĠConfiguration Ġ= ĠTODO () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ). indent ed (). within (" src ") ĊĊĠĠĠĠĠĠĠ Ġval Ġmanifest With No Initializer Ġ= Ġmanifest ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< manifest Ġxmlns : android =" http :// schemas . android . com / apk / res / android " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġxmlns : tools =" http :// schemas . android . com / tools " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage =" com . example "> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< application > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< provider ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : name =" android x . work . impl . Work Manager Initializer " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : author ities =" com . example . work manager - init " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtools : node =" remove "/> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ application > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ manifest > ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ). indent ed () ĊĊĠĠĠĠĠĠĠ Ġlint (). files ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠManifest Ġfile ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmanifest With No Initializer , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSource Ġfiles ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAND ROID _ APPLICATION , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWORK _ MANAGER _ CONFIGURATION _ PROVIDER , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Application ĊĠĠĠĠĠĠĠ Ġ). issues ( Remove Work Manager Initializer Detector . ISSUE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. run () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Clean () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest No Warnings When Not Using On Demand Initialization () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcustom Application Ġ= Ġkotlin ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" com / example / App . kt ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġcom . example ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroid . app . Application ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroidx . work . Configuration ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠApp : ĠApplication () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonCreate () Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ). indent ed (). within (" src ") ĊĊĠĠĠĠĠĠĠ Ġval Ġmanifest With Initializer Ġ= Ġmanifest ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< manifest Ġxmlns : android =" http :// schemas . android . com / apk / res / android " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġxmlns : tools =" http :// schemas . android . com / tools " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage =" com . example "> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< application > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< provider ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : name =" android x . work . impl . Work Manager Initializer " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : author ities =" com . example . work manager - init "/> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ application > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ manifest > ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ). indent ed () ĊĊĠĠĠĠĠĠĠ Ġlint (). files ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠManifest Ġfile ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmanifest With Initializer , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSource Ġfiles ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAND ROID _ APPLICATION , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWORK _ MANAGER _ CONFIGURATION _ PROVIDER , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Application ĊĠĠĠĠĠĠĠ Ġ). issues ( Remove Work Manager Initializer Detector . ISSUE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. run () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Clean () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfail When Using Default Manifest Merge Strategy () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcustom Application Ġ= Ġkotlin ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" com / example / App . kt ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġcom . example ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroid . app . Application ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroidx . work . Configuration ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠApp : ĠApplication (), ĠConfiguration . Provider Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonCreate () Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Work Manager Configuration (): ĠConfiguration Ġ= ĠTODO () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ). indent ed (). within (" src ") ĊĊĠĠĠĠĠĠĠ Ġval Ġempty Manifest Ġ= Ġmanifest ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< manifest Ġxmlns : android =" http :// schemas . android . com / apk / res / android " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġxmlns : tools =" http :// schemas . android . com / tools " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage =" com . example "> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< application Ġ/> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ manifest > ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ). indent ed () ĊĊĠĠĠĠĠĠĠ Ġ/* Ġk tl int - disable Ġmax - line - length Ġ*/ ĊĠĠĠĠĠĠĠ Ġlint (). files ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠManifest Ġfile ĊĠĠĠĠĠĠĠĠĠĠĠ Ġempty Manifest , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSource Ġfiles ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAND ROID _ APPLICATION , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWORK _ MANAGER _ CONFIGURATION _ PROVIDER , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Application ĊĠĠĠĠĠĠĠ Ġ). issues ( Remove Work Manager Initializer Detector . ISSUE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. run () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect (""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject 0 : ĠError : ĠRemove Ġandroidx . work . impl . Work Manager Initializer Ġfrom Ġyour ĠAndroid Manifest . xml Ġwhen Ġusing Ġon - demand Ġinitialization . Ġ[ Remove Work Manager Initializer ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġerrors , Ġ 0 Ġwarnings ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent ()) ĊĠĠĠĠĠĠĠ Ġ/* Ġk tl int - enable Ġmax - line - length Ġ*/ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfail When Manifest Has Default Initializer () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcustom Application Ġ= Ġkotlin ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" com / example / App . kt ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġcom . example ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroid . app . Application ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroidx . work . Configuration ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠApp : ĠApplication (), ĠConfiguration . Provider Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonCreate () Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Work Manager Configuration (): ĠConfiguration Ġ= ĠTODO () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ). indent ed (). within (" src ") ĊĊĠĠĠĠĠĠĠ Ġval Ġmanifest With Initializer Ġ= Ġmanifest ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< manifest Ġxmlns : android =" http :// schemas . android . com / apk / res / android " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġxmlns : tools =" http :// schemas . android . com / tools " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage =" com . example "> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< application > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< provider ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : name =" android x . work . impl . Work Manager Initializer " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid : author ities =" com . example . work manager - init "/> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ application > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ manifest > ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ). indent ed () ĊĊĠĠĠĠĠĠĠ Ġ/* Ġk tl int - disable Ġmax - line - length Ġ*/ ĊĠĠĠĠĠĠĠ Ġlint (). files ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠManifest Ġfile ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmanifest With Initializer , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSource Ġfiles ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAND ROID _ APPLICATION , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWORK _ MANAGER _ CONFIGURATION _ PROVIDER , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Application ĊĠĠĠĠĠĠĠ Ġ). issues ( Remove Work Manager Initializer Detector . ISSUE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. run () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect (""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAndroid Manifest . xml : 5 : ĠError : ĠRemove Ġandroidx . work . impl . Work Manager Initializer Ġfrom Ġyour ĠAndroid Manifest . xml Ġwhen Ġusing Ġon - demand Ġinitialization . Ġ[ Remove Work Manager Initializer ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< provider ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ^ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġerrors , Ġ 0 Ġwarnings ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent ()) ĊĠĠĠĠĠĠĠ Ġ/* Ġk tl int - enable Ġmax - line - length Ġ*/ ĊĠĠĠ Ġ} Ċ } Ċ