/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 Ġ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 . Ċ Ġ*/ Ċ Ċ @ file : Suppress (" Un stable Api Usage ", Ġ" Gro ovy Unused Assignment ") Ċ Ċ package Ġandroidx . build . lint Ċ Ċ import Ġcom . android . tools . lint . checks . infrastructure . Project Description Ċ import Ġcom . android . tools . lint . checks . infrastructure . Test File Ċ import Ġcom . android . tools . lint . checks . infrastructure . Test Files Ċ import Ġcom . android . tools . lint . checks . infrastructure . Test Mode Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . junit . runners . JUnit 4 Ċ import Ġjava . io . FileNotFoundException Ċ Ċ @ RunWith ( JUnit 4 :: class ) Ċ class ĠB an In appro priate Experimental Usage Test Ġ: ĠAbstract Lint Detector Test ( ĊĠĠĠ Ġuse Detector Ġ= ĠB an In appro priate Experimental Usage (), ĊĠĠĠ Ġuse Issues Ġ= ĠlistOf ( Ban In appro priate Experimental Usage . ISSUE ), ĊĠĠĠ Ġstub s Ġ= ĠarrayOf ( Stub s . Opt In ), Ċ ) Ġ{ ĊĠĠĠ Ġ// ĠThis Ġmust Ġmatch Ġthe Ġsetting Ġin Ġbuild Src / lint . xml ĊĠĠĠ Ġprivate Ġval Ġvalid Lint Config : ĠTest File Ġ= ĠTest Files . xml ( ĊĠĠĠĠĠĠĠ Ġ" lint . xml ", ĊĠĠĠĠĠĠĠ Ġ""" Ċ < lint > ĊĠĠĠ Ġ< issue Ġid =" Illegal Experimental Api Usage "> ĊĠĠĠĠĠĠĠ Ġ< option Ġname =" atomic Library Group Filename " Ġvalue =" atomic - library - groups . txt "/> ĊĠĠĠ Ġ</ issue > Ċ </ lint > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġval Ġlibrary Groups Ġ= ĠTest Files . source ( ĊĠĠĠĠĠĠĠ Ġ" atomic - library - groups . txt ", ĊĠĠĠĠĠĠĠ Ġ""" Ċ android x . a Ċ android x . b ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġval ĠUN USED _ PLACE HOLDER Ġ= Ġ" unused " ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Test Ġwithin - module ĠExperimental Ġusage Ġvia ĠGradle Ġmodel `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprovider Ġ= Ġproject () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. name (" provider ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. files ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkt Sample (" sample . annotation . provider . Within Group Experimental Annotated Class "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkt Sample (" sample . annotation . provider . Experimental Sample Annotation "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgradle ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapply Ġplugin : Ġ' com . android . library ' ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgroup = sample . annotation . provider ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalid Lint Config , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlibrary Groups , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ/* Ġk tl int - disable Ġmax - line - length Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġ""" Ċ No Ġwarnings . ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ/* Ġk tl int - enable Ġmax - line - length Ġ*/ ĊĊĠĠĠĠĠĠĠ Ġcheck ( provider ). expect ( expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Test Ġcross - module ĠExperimental Ġusage Ġvia ĠGradle Ġmodel `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprovider Ġ= Ġproject () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. name (" provider ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. type ( Project Description . Type . LIBRARY ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. report ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. files ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkt Sample (" sample . annotation . provider . Experimental Sample Annotation "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjava Sample (" sample . annotation . provider . Experimental Sample Annotation Java "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjava Sample (" sample . annotation . provider . Requires Opt In Sample Annotation Java "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgradle ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapply Ġplugin : Ġ' com . android . library ' ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgroup = sample . annotation . provider ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġconsumer Ġ= Ġproject () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. name (" consumer ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. type ( Project Description . Type . LIBRARY ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. depends On ( provider ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. files ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkt Sample (" android x . sample . consumer . Outside Group Experimental Annotated Class "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgradle ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapply Ġplugin : Ġ' com . android . library ' ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgroup = android x . sample . consumer ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalid Lint Config , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlibrary Groups , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ/* Ġk tl int - disable Ġmax - line - length Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġ""" Ċ ../ consumer / src / main / kotlin / android x / sample / consumer / Outside Group Experimental Annotated Class . kt : 3 2 : ĠError : ĠExperimental Ġand ĠRequires Opt In ĠAPIs Ġmay Ġonly Ġbe Ġused Ġwithin Ġthe Ġsame - version Ġgroup Ġwhere Ġthey Ġwere Ġdefined . Ġ[ Illegal Experimental Api Usage ] ĊĠĠĠ Ġ@ Experimental Sample Annotation Java ĊĠĠĠ Ġ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~ Ċ ../ consumer / src / main / kotlin / android x / sample / consumer / Outside Group Experimental Annotated Class . kt : 3 7 : ĠError : ĠExperimental Ġand ĠRequires Opt In ĠAPIs Ġmay Ġonly Ġbe Ġused Ġwithin Ġthe Ġsame - version Ġgroup Ġwhere Ġthey Ġwere Ġdefined . Ġ[ Illegal Experimental Api Usage ] ĊĠĠĠ Ġ@ Requires Opt In Sample Annotation Java ĊĠĠĠ Ġ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~ Ċ 2 Ġerrors , Ġ 0 Ġwarnings ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ/* Ġk tl int - enable Ġmax - line - length Ġ*/ ĊĊĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠUsing ĠTest Mode . DEFAULT Ġdue Ġto Ġb / 1 8 8 8 1 4 7 6 0 ; Ġremove Ġtest Modes Ġonce Ġbug Ġis Ġresolved ĊĠĠĠĠĠĠĠ Ġcheck ( provider , Ġconsumer , Ġtest Modes Ġ= ĠlistOf ( Test Mode . DEFAULT )). expect ( expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ( expected Ġ= ĠRuntimeException :: class ) ĊĠĠĠ Ġfun Ġ` Missing Ġatomic Library Group Filename Ġproperty Ġshould Ġthrow Ġan Ġexception `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinvalid Lint Config : ĠTest File Ġ= ĠTest Files . xml ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" lint . xml ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" Ċ < lint > ĊĠĠĠ Ġ< issue Ġid =" Illegal Experimental Api Usage "> ĊĠĠĠĠĠĠĠ Ġ< option Ġname =" foo " Ġvalue =" bar "/> ĊĠĠĠ Ġ</ issue > Ċ </ lint > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġprovider Ġ= Ġproject () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. name (" provider ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. type ( Project Description . Type . LIBRARY ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. report ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. files ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkt Sample (" sample . annotation . provider . Experimental Sample Annotation "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjava Sample (" sample . annotation . provider . Experimental Sample Annotation Java "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjava Sample (" sample . annotation . provider . Requires Opt In Sample Annotation Java "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgradle ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapply Ġplugin : Ġ' com . android . library ' ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgroup = sample . annotation . provider ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġconsumer Ġ= Ġproject () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. name (" consumer ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. type ( Project Description . Type . LIBRARY ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. depends On ( provider ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. files ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkt Sample (" android x . sample . consumer . Outside Group Experimental Annotated Class "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgradle ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapply Ġplugin : Ġ' com . android . library ' ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgroup = android x . sample . consumer ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinvalid Lint Config , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠUsing ĠTest Mode . DEFAULT Ġdue Ġto Ġb / 1 8 8 8 1 4 7 6 0 ; Ġremove Ġtest Modes Ġonce Ġbug Ġis Ġresolved ĊĠĠĠĠĠĠĠ Ġcheck ( provider , Ġconsumer , Ġtest Modes Ġ= ĠlistOf ( Test Mode . DEFAULT )). expect ( UNUSED _ PLACE HOLDER ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ( expected Ġ= ĠFileNotFoundException :: class ) ĊĠĠĠ Ġfun Ġ` Missing Ġatomic Ġlibrary Ġgroup Ġfile Ġshould Ġthrow Ġan Ġexception `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprovider Ġ= Ġproject () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. name (" provider ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. type ( Project Description . Type . LIBRARY ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. report ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. files ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkt Sample (" sample . annotation . provider . Experimental Sample Annotation "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjava Sample (" sample . annotation . provider . Experimental Sample Annotation Java "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjava Sample (" sample . annotation . provider . Requires Opt In Sample Annotation Java "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgradle ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapply Ġplugin : Ġ' com . android . library ' ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgroup = sample . annotation . provider ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġconsumer Ġ= Ġproject () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. name (" consumer ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. type ( Project Description . Type . LIBRARY ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. depends On ( provider ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. files ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkt Sample (" android x . sample . consumer . Outside Group Experimental Annotated Class "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgradle ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapply Ġplugin : Ġ' com . android . library ' ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgroup = android x . sample . consumer ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalid Lint Config , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠUsing ĠTest Mode . DEFAULT Ġdue Ġto Ġb / 1 8 8 8 1 4 7 6 0 ; Ġremove Ġtest Modes Ġonce Ġbug Ġis Ġresolved ĊĠĠĠĠĠĠĠ Ġcheck ( provider , Ġconsumer , Ġtest Modes Ġ= ĠlistOf ( Test Mode . DEFAULT )). expect ( UNUSED _ PLACE HOLDER ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ( expected Ġ= ĠRuntimeException :: class ) ĊĠĠĠ Ġfun Ġ` Empty Ġatomic Ġlibrary Ġgroup Ġfile Ġshould Ġthrow Ġan Ġexception `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġempty Library Groups Ġ= ĠTest Files . source (" atomic - library - groups . txt ", Ġ"") ĊĊĠĠĠĠĠĠĠ Ġval Ġprovider Ġ= Ġproject () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. name (" provider ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. type ( Project Description . Type . LIBRARY ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. report ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. files ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkt Sample (" sample . annotation . provider . Experimental Sample Annotation "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjava Sample (" sample . annotation . provider . Experimental Sample Annotation Java "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjava Sample (" sample . annotation . provider . Requires Opt In Sample Annotation Java "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgradle ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapply Ġplugin : Ġ' com . android . library ' ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgroup = sample . annotation . provider ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġconsumer Ġ= Ġproject () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. name (" consumer ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. type ( Project Description . Type . LIBRARY ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. depends On ( provider ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. files ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkt Sample (" android x . sample . consumer . Outside Group Experimental Annotated Class "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgradle ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapply Ġplugin : Ġ' com . android . library ' ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgroup = android x . sample . consumer ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). indent ed (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalid Lint Config , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġempty Library Groups , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠUsing ĠTest Mode . DEFAULT Ġdue Ġto Ġb / 1 8 8 8 1 4 7 6 0 ; Ġremove Ġtest Modes Ġonce Ġbug Ġis Ġresolved ĊĠĠĠĠĠĠĠ Ġcheck ( provider , Ġconsumer , Ġtest Modes Ġ= ĠlistOf ( Test Mode . DEFAULT )). expect ( UNUSED _ PLACE HOLDER ) ĊĠĠĠ Ġ} Ċ } Ċ