import Ġcom . google . firebase . perf . plugin . Firebase Perf Extension Ċ import Ġorg . gradle . api . tasks . testing . logging . Test Exception Format Ċ import Ġorg . gradle . api . tasks . testing . logging . Test Log Event Ċ import Ġorg . simple . rm g . Room Metadata Generator Ċ Ċ repositories Ġ{ ĊĠ Ġmaven ( url Ġ= Ġ" https :// jit pack . io ") Ċ } Ċ Ċ plugins Ġ{ ĊĠ Ġid (" com . android . application ") ĊĠ Ġkotlin (" android ") ĊĠ Ġkotlin (" k apt ") ĊĠ Ġid (" kotlin - parcel ize ") ĊĠ Ġid (" io . sentry . android . gradle ") ĊĠ Ġid (" com . google . firebase . firebase - perf ") ĊĠ Ġid (" plugins . git . install - hooks ") Ċ } Ċ Ċ sentry Ġ{ ĊĠ Ġauto Upload . set ( false ) Ċ } Ċ Ċ k apt Ġ{ ĊĠ Ġarguments Ġ{ ĊĠĠĠ Ġarg (" room . schema Location ", Ġ"$ project Dir / schemas ") ĊĠĠĠ Ġarg (" room . incremental ", Ġfalse ) ĊĠĠĠ Ġarg (" room . expand Projection ", Ġfalse ) ĊĠ Ġ} Ċ } Ċ Ċ tasks . with Type < Test > Ġ{ ĊĠ Ġtest Logging Ġ{ ĊĠĠĠ Ġ// Ġset Ġoptions Ġfor Ġlog Ġlevel ĠL IF EC Y CLE ĊĠĠĠ Ġevents Ġ= Ġset Of ( ĊĠĠĠĠĠĠĠ ĠTest Log Event . PAS SED , ĊĠĠĠĠĠĠĠ ĠTest Log Event . SKIP PED , ĊĠĠĠĠĠĠĠ ĠTest Log Event . FAILED , ĊĠĠĠĠĠĠĠ ĠTest Log Event . STANDARD _ OUT ĊĠĠĠ Ġ) ĊĠĠĠ Ġshow Exceptions Ġ= Ġtrue ĊĠĠĠ Ġexception Format Ġ= ĠTest Exception Format . FULL ĊĠĠĠ Ġshow Cause s Ġ= Ġtrue ĊĠĠĠ Ġshow Stack Tr aces Ġ= Ġtrue ĊĊĠĠĠ Ġ// Ġset Ġoptions Ġfor Ġlog Ġlevel ĠDEBUG Ġand ĠINFO ĊĠĠĠ Ġdebug Ġ{ ĊĠĠĠĠĠ Ġevents Ġ= Ġset Of ( ĊĠĠĠĠĠĠĠĠĠ ĠTest Log Event . STARTED , ĊĠĠĠĠĠĠĠĠĠ ĠTest Log Event . PAS SED , ĊĠĠĠĠĠĠĠĠĠ ĠTest Log Event . SKIP PED , ĊĠĠĠĠĠĠĠĠĠ ĠTest Log Event . FAILED , ĊĠĠĠĠĠĠĠĠĠ ĠTest Log Event . STANDARD _ OUT , ĊĠĠĠĠĠĠĠĠĠ ĠTest Log Event . STANDARD _ ERROR ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġinfo . events Ġ= Ġdebug . events ĊĊĠĠĠ Ġadd Test Listener ( object Ġ: ĠTest Listener Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun Ġbefore Suite ( descriptor : ĠTest Descriptor ?) Ġ{} ĊĠĠĠĠĠ Ġoverride Ġfun Ġafter Suite ( descriptor : ĠTest Descriptor ?, Ġresult : ĠTest Result ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( descriptor ?. parent Ġ!= Ġnull Ġ&& Ġresult Ġ!= Ġnull ) Ġ{ Ġ// Ġwill Ġmatch Ġthe Ġout erm ost Ġsuite ĊĠĠĠĠĠĠĠĠĠ Ġval Ġoutput Ġ= Ġ" Results : Ġ${ result . result Type } Ġ(${ result . test Count } Ġtests , Ġ${ result . successful Test Count } Ġsuc cesses , Ġ${ result . failed Test Count } Ġfailures , Ġ${ result . skipped Test Count } Ġskipped )" ĊĠĠĠĠĠĠĠĠĠ Ġval Ġstart Item Ġ= Ġ"| Ġ Ġ" ĊĠĠĠĠĠĠĠĠĠ Ġval Ġend Item Ġ= Ġ" Ġ Ġ| " ĊĠĠĠĠĠĠĠĠĠ Ġval Ġrepeat Length Ġ= Ġstart Item . length Ġ+ Ġoutput . length Ġ+ Ġend Item . length ĊĠĠĠĠĠĠĠĠĠ Ġprintln ("\ n " Ġ+ Ġ(" - ". repeat ( repeat Length )) Ġ+ Ġ"\ n " Ġ+ Ġstart Item Ġ+ Ġoutput Ġ+ Ġend Item Ġ+ Ġ"\ n " Ġ+ Ġ(" - ". repeat ( repeat Length ))) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġbefore Test ( descriptor : ĠTest Descriptor ?) Ġ{} ĊĠĠĠĠĠ Ġoverride Ġfun Ġafter Test ( descriptor : ĠTest Descriptor ?, Ġresult : ĠTest Result ?) Ġ{} ĊĠĠĠ Ġ}) ĊĠ Ġ} Ċ } Ċ Ċ android Ġ{ ĊĠ Ġval Ġandroid N dk Version : ĠString Ġby Ġproject ĊĠ Ġval Ġcompile Sdk Version : ĠInt Ġby Ġroot Project . extra ĊĠ Ġval Ġmin Sdk Version : ĠInt Ġby Ġroot Project . extra ĊĠ Ġval Ġtarget Sdk Version : ĠInt Ġby Ġroot Project . extra ĊĊĠ Ġcompile Sdk Ġ= Ġcompile Sdk Version ĊĠ Ġ// ĠN eeded Ġto Ġswitch ĠN DK Ġversions Ġon Ġthe ĠCI Ġserver Ġsince Ġthey Ġhave Ġdifferent ĊĠ Ġ// ĠN DK Ġversions Ġon ĠmacOS Ġand ĠLinux Ġenvironments . ĠGradle Ġplugin Ġ 3 . 6 + Ġrequires ĊĠ Ġ// Ġus Ġto Ġpin Ġan ĠN DK Ġversion Ġif Ġwe Ġpackage Ġnative Ġlibs . ĊĠ Ġ// Ġhttps :// developer . android . com / studio / releases / gradle - plugin # default - nd k - version ĊĠ Ġ// ĊĠ Ġ// ĠCurrently , Ġthis Ġis Ġonly Ġused Ġfor Ġassemb ling Ġthe ĠA PK Ġwhere Ġthe Ġbuild Ġprocess ĊĠ Ġ// Ġstri ps Ġdebug Ġsymbols Ġfrom Ġthe ĠA PK . ĊĠ Ġn dk Version Ġ= Ġandroid N dk Version ĊĊĠ Ġdefault Config Ġ{ ĊĠĠĠ Ġapplication Id Ġ= Ġ" org . simple . clin ic " ĊĠĠĠ Ġmin Sdk Ġ= Ġmin Sdk Version ĊĠĠĠ Ġtarget Sdk Ġ= Ġtarget Sdk Version ĊĠĠĠ Ġversion Code Ġ= Ġ 1 ĊĠĠĠ Ġversion Name Ġ= Ġ" 0 . 1 " ĊĠĠĠ Ġmulti Dex Enabled Ġ= Ġtrue ĊĊĠĠĠ Ġtest Instrumentation Runner Ġ= Ġ" org . simple . clin ic . Android Test JUnit Runner " ĊĊĠĠĠ Ġval Ġdefault Pro guard File : ĠString Ġby Ġproject ĊĠĠĠ Ġpro guard Files ( ĊĠĠĠĠĠĠĠ ĠgetDefault Pro guard File ( default Pro guard File ), ĊĠĠĠĠĠĠĠ Ġ" pro guard - rules . pro " ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġvector Draw ables . use Support Library Ġ= Ġtrue ĊĊĠĠĠ Ġval Ġs entry D sn : ĠString Ġby Ġproject ĊĠĠĠ Ġval Ġs entry Environment : ĠString Ġby Ġproject ĊĠĠĠ Ġval Ġmix panel Token : ĠString Ġby Ġproject ĊĠĠĠ Ġval Ġmanifest Endpoint : ĠString Ġby Ġproject ĊĠĠĠ Ġval Ġdisable Screenshot : ĠString Ġby Ġproject ĊĠĠĠ Ġval Ġallow Root ed Device : ĠString Ġby Ġproject ĊĊĠĠĠ Ġadd Manifest Place holders ( map Of ( ĊĠĠĠĠĠĠĠ Ġ" sentry D sn " Ġto Ġs entry D sn , ĊĠĠĠĠĠĠĠ Ġ" sentry Environment " Ġto Ġs entry Environment ĊĠĠĠ Ġ)) ĊĊĠĠĠ Ġbuild Config Field (" String ", Ġ" MI XP AN EL _ TOKEN ", Ġ"\" $ mix panel Token \" ") ĊĠĠĠ Ġbuild Config Field (" String ", Ġ" MAN IFEST _ ENDPOINT ", Ġ"\" $ manifest Endpoint \" ") ĊĠĠĠ Ġbuild Config Field (" boolean ", Ġ" DISABLE _ SCREEN SHOT ", Ġdisable Screenshot ) ĊĠĠĠ Ġbuild Config Field (" boolean ", Ġ" ALLOW _ ROOT ED _ DEVICE ", Ġallow Root ed Device ) ĊĠ Ġ} ĊĊĠ Ġbuild Types Ġ{ ĊĠĠĠ Ġget ByName (" debug ") Ġ{ ĊĠĠĠĠĠ Ġapplication Id Suffix Ġ= Ġ". debug " ĊĠĠĠĠĠ Ġis Min ify Enabled Ġ= Ġfalse ĊĠĠĠĠĠ Ġis Shrink Resources Ġ= Ġfalse ĊĠĠĠĠĠ Ġconfigure < Firebase Perf Extension > Ġ{ Ġset Instrumentation Enabled ( false ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġrun Pro guard : ĠString Ġby Ġproject ĊĠĠĠ Ġget ByName (" release ") Ġ{ ĊĠĠĠĠĠ Ġis Debug gable Ġ= Ġfalse ĊĠĠĠĠĠ Ġis Min ify Enabled Ġ= Ġrun Pro guard . to Boolean () ĊĠĠĠĠĠ Ġis Shrink Resources Ġ= Ġrun Pro guard . to Boolean () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġbuild Features Ġ{ ĊĠĠĠ Ġview Binding Ġ= Ġtrue ĊĠ Ġ} ĊĊĠ Ġflavor Dimensions . add (" track ") ĊĊĠ Ġproduct Fl avors Ġ{ ĊĠĠĠ Ġcreate (" qa ") Ġ{ ĊĠĠĠĠĠ Ġdimension Ġ= Ġ" track " ĊĠĠĠĠĠ Ġapplication Id Suffix Ġ= Ġ". qa " ĊĠĠĠĠĠ Ġversion Name Suffix Ġ= Ġ"- qa " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcreate (" staging ") Ġ{ ĊĠĠĠĠĠ Ġdimension Ġ= Ġ" track " ĊĠĠĠĠĠ Ġapplication Id Suffix Ġ= Ġ". staging " ĊĠĠĠĠĠ Ġversion Name Suffix Ġ= Ġ"- demo " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcreate (" sandbox ") Ġ{ ĊĠĠĠĠĠ Ġdimension Ġ= Ġ" track " ĊĠĠĠĠĠ Ġapplication Id Suffix Ġ= Ġ". sandbox " ĊĠĠĠĠĠ Ġversion Name Suffix Ġ= Ġ"- sandbox " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcreate (" security ") Ġ{ ĊĠĠĠĠĠ Ġdimension Ġ= Ġ" track " ĊĠĠĠĠĠ Ġapplication Id Suffix Ġ= Ġ". security " ĊĠĠĠĠĠ Ġversion Name Suffix Ġ= Ġ"- security " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcreate (" production ") Ġ{ ĊĠĠĠĠĠ Ġdimension Ġ= Ġ" track " ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġandroid Components Ġ{ ĊĠĠĠ Ġval Ġfiltered Variants Ġ= Ġset Of ( ĊĠĠĠĠĠĠĠ Ġ" qa Release ", ĊĠĠĠĠĠĠĠ Ġ" staging Debug ", ĊĠĠĠĠĠĠĠ Ġ" sandbox Debug ", ĊĠĠĠĠĠĠĠ Ġ" production Debug ", ĊĠĠĠĠĠĠĠ Ġ" security Debug " ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġbefore Variants Ġ{ Ġvariant Ġ-> ĊĠĠĠĠĠ Ġvariant . enabled Ġ= Ġvariant . name Ġ! in Ġfiltered Variants ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġlint Ġ{ ĊĠĠĠ Ġis Warnings As Errors Ġ= Ġtrue ĊĠĠĠ Ġis Abort OnError Ġ= Ġtrue ĊĠĠĠ Ġis Check Release Build s Ġ= Ġfalse ĊĠĠĠ Ġis Check Dependencies Ġ= Ġtrue ĊĠ Ġ} ĊĊĠ Ġcompile Options Ġ{ ĊĠĠĠ Ġis Core Library Des ug aring Enabled Ġ= Ġtrue ĊĠ Ġ} ĊĊĠ Ġkotlin Options Ġ{ ĊĠĠĠ Ġj vm Target Ġ= Ġ" 1 . 8 " ĊĠĠĠ Ġfree Compiler Args Ġ= Ġfree Compiler Args Ġ+ ĠlistOf ("- X opt - in = kotlin x . coroutines . Experimental Cor outines Api ") ĊĠ Ġ} ĊĊĠ Ġsource Sets Ġ{ ĊĠĠĠ Ġval Ġshared Test Dir Ġ= Ġ" src / shared Test / java " ĊĠĠĠ Ġget ByName (" test ") Ġ{ ĊĠĠĠĠĠ Ġjava . src Dirs ( shared Test Dir ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġget ByName (" android Test ") Ġ{ ĊĠĠĠĠĠ Ġassets . src Dirs ( files ("$ project Dir / schemas ")) ĊĠĠĠĠĠ Ġjava . src Dirs ( shared Test Dir ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġget ByName (" main ") Ġ{ ĊĠĠĠĠĠ Ġassets . src Dirs ("${ project . build Dir }/ generated / assets / room _ dao _ metadata /") ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġpackaging Options Ġ{ ĊĠĠĠ Ġ// ĠDeprecated ĠAB Is . ĠSee Ġhttps :// developer . android . com / nd k / guides / ab is ĊĠĠĠ Ġj ni Lib s . exclude s . add (" lib / m ips / lib sqlite 3 x . so ") ĊĠĠĠ Ġj ni Lib s . exclude s . add (" lib / m ips 6 4 / lib sqlite 3 x . so ") ĊĠĠĠ Ġj ni Lib s . exclude s . add (" lib / ar me abi / lib sqlite 3 x . so ") ĊĠ Ġ} ĊĊĠ Ġbundle Ġ{ ĊĠĠĠ Ġlanguage Ġ{ ĊĠĠĠĠĠ Ġ// ĠSpecifies Ġthat Ġthe Ġapp Ġbundle Ġshould Ġnot Ġsupport Ġconfiguration ĠA PK s Ġfor Ġlanguage Ġresources . ĊĠĠĠĠĠ Ġ// ĠThese Ġresources Ġare Ġinstead Ġpackaged Ġwith Ġeach Ġbase Ġand Ġdynamic Ġfeature ĠA PK . ĊĠĠĠĠĠ Ġ// ĠWe Ġare Ġdoing Ġthis Ġsince Ġwe Ġsupport Ġswitching Ġthe Ġlanguage Ġwithin Ġthe Ġapp Ġand Ġwe Ġwant Ġall ĊĠĠĠĠĠ Ġ// Ġtranslations Ġto Ġbe Ġdelivered Ġto Ġall Ġdevices . ĊĠĠĠĠĠ Ġenable Split Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ// ĠWe Ġdon " t Ġob fusc ate Ġ( only Ġmin ify ) Ġusing Ġpro guard . ĠGradle Ġplugin Ġ 3 . 2 . 0 Ġ( and Ġgreater ?) Ġgenerates ĊĠ Ġ// Ġan Ġempty Ġmappings . txt Ġfile . ĠThis Ġcaused Ġan Ġissue Ġwhere Ġthe ĠCI Ġdeploy Ġto Ġplay Ġstore Ġtask Ġtries ĊĠ Ġ// Ġto Ġupload Ġthe Ġempty Ġmapping Ġfile , Ġwhich Ġcauses Ġthe ĠPlay ĠStore Ġapi Ġto Ġcompl ain . ĊĠ Ġval Ġdelete Pro guard Mappings Ġ= Ġtasks . create < Delete >(" delete Pro guard Mappings ") Ġ{ ĊĠĠĠ Ġdelete ( file Tree ( build Dir ). matching Ġ{ ĊĠĠĠĠĠ Ġinclude (" outputs / mapping /** / mapping . txt ") ĊĠĠĠ Ġ}) ĊĠ Ġ} ĊĊĠ Ġafter Evaluate Ġ{ ĊĠĠĠ Ġval Ġassemble Release Tasks Ġ= Ġset Of ( ĊĠĠĠĠĠĠĠ Ġ" assemble Staging Release ", ĊĠĠĠĠĠĠĠ Ġ" assemble Sandbox Release ", ĊĠĠĠĠĠĠĠ Ġ" assemble Production Release ", ĊĠĠĠĠĠĠĠ Ġ" assemble Security Release " ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġassemble Release Tasks . forEach Ġ{ Ġbuild Type Ġ-> ĊĠĠĠĠĠ Ġtasks . find ByName ( build Type )?. final ized By ( delete Pro guard Mappings ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġk apt Tasks Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠ Ġ" k apt Qa Debug Kotlin " Ġto Ġ" qa Debug ", ĊĠĠĠĠĠĠĠ Ġ" k apt Sandbox Release Kotlin " Ġto Ġ" sandbox Release ", ĊĠĠĠĠĠĠĠ Ġ" k apt Staging Release Kotlin " Ġto Ġ" staging Release ", ĊĠĠĠĠĠĠĠ Ġ" k apt Security Release Kotlin " Ġto Ġ" security Release ", ĊĠĠĠĠĠĠĠ Ġ" k apt Production Release Kotlin " Ġto Ġ" production Release " ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġk apt Tasks . forEach Ġ{ Ġ( build Type , Ġsource SetName ) Ġ-> ĊĠĠĠĠĠ Ġval Ġtask Qualifier Ġ= Ġbuild Type ĊĠĠĠĠĠĠĠĠĠ Ġ. replace (" k apt ", Ġ"") ĊĠĠĠĠĠĠĠĠĠ Ġ. replace (" Kotlin ", Ġ"") ĊĊĠĠĠĠĠ Ġval Ġtask Name Ġ= Ġ" transform ${ task Qualifier } Generated Room Dao " ĊĠĠĠĠĠ Ġval Ġtransform Room Dao Task Ġ= Ġtasks . create < Transform Generated Room Dao Task >( task Name ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsource Set . set ( source SetName ) ĊĠĠĠĠĠĠĠ Ġreporter ClassName . set (" org . simple . clin ic . storage . monitoring . Sql Performance Reporter ") ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġtasks . find ByName ( build Type )?. final ized By ( transform Room Dao Task ) ĊĠĠĠĠĠ Ġtasks . named (" compile ${ task Qualifier } Java With J av ac "). configure Ġ{ ĊĠĠĠĠĠĠĠ Ġdepends On ( transform Room Dao Task ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ Ċ dependencies Ġ{ ĊĠ Ġ/** ĊĠĠ Ġ* ĠDebug Ġdependencies ĊĠĠ Ġ*/ ĊĠ Ġdebug Implementation ( libs . faker ) ĊĠ Ġdebug Implementation ( libs . bundles . flip per ) ĊĠ Ġdebug Implementation ( libs . leak can ary ) ĊĠ Ġdebug Implementation ( libs . so loader ) ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠPro d Ġdependencies ĊĠĠ Ġ*/ ĊĠ Ġimplementation ( libs . android x . annotation . annotation ) ĊĠ Ġimplementation ( libs . android x . annotation . experimental ) ĊĠ Ġimplementation ( libs . android x . appcompat ) ĊĠ Ġimplementation ( libs . android x . card view ) ĊĠ Ġimplementation ( libs . android x . constraint layout ) ĊĠ Ġimplementation ( libs . android x . core . k tx ) ĊĠ Ġimplementation ( libs . android x . fragment ) ĊĠ Ġimplementation ( libs . android x . preference ) ĊĠ Ġimplementation ( libs . android x . recyclerview ) ĊĠ Ġimplementation ( libs . android x . view pager 2 ) ĊĊĠ Ġimplementation ( libs . bundles . android x . camera ) ĊĊĠ Ġimplementation ( libs . bundles . android x . paging ) ĊĊĠ Ġimplementation ( libs . bundles . android x . room ) ĊĠ Ġk apt ( libs . android x . room . compiler ) ĊĊĠ Ġimplementation ( libs . bundles . android x . work ) ĊĊĠ Ġimplementation ( libs . bundles . mos hi ) ĊĠ Ġk apt ( libs . mos hi . codegen ) ĊĊĠ Ġimplementation ( libs . bundles . okhttp ) ĊĊĠ Ġimplementation ( libs . bundles . ret rofit ) ĊĊĠ Ġimplementation ( libs . bundles . rx . binding ) ĊĊĠ Ġimplementation ( libs . d agger . d agger ) ĊĠ Ġk apt ( libs . d agger . compiler ) ĊĊĠ Ġimplementation ( libs . edit text . masked ) ĊĠ Ġimplementation ( libs . edit text . pin entry ) ĊĊĠ Ġimplementation ( libs . firebase . config ) ĊĠ Ġimplementation ( libs . firebase . performance . perf ) ĊĊĠ Ġimplementation ( libs . item anim ators ) ĊĊĠ Ġimplementation ( libs . it ext 7 ) ĊĊĠ Ġimplementation ( libs . j bcrypt ) ĊĊĠ Ġimplementation ( libs . kotlin . coroutines ) ĊĠ Ġimplementation ( libs . kotlin . stdlib ) ĊĊĠ Ġimplementation ( libs . log back . classic ) ĊĊĠ Ġimplementation ( libs . lott ie ) ĊĊĠ Ġimplementation ( libs . material ) ĊĊĠ Ġimplementation ( libs . mix panel . android ) ĊĊĠ Ġimplementation ( libs . okhttp . interceptor . logging ) ĊĊĠ Ġimplementation ( libs . open Csv ) Ġ{ ĊĠĠĠ Ġexclude ( module Ġ= Ġ" commons - logging ") ĊĠ Ġ} ĊĊĠ Ġimplementation ( libs . play . core ) ĊĠ Ġimplementation ( libs . play . services . auth ) ĊĠ Ġimplementation ( libs . play . services . location ) ĊĠ Ġimplementation ( libs . play . services . ml kit . barcode ) ĊĊĠ Ġimplementation ( libs . root beer ) ĊĊĠ Ġimplementation ( libs . rx . android ) ĊĠ Ġimplementation ( libs . rx . java ) ĊĠ Ġimplementation ( libs . rx . kotlin ) ĊĠ Ġimplementation ( libs . rx . preferences ) ĊĊĠ Ġimplementation ( libs . sentry . android ) Ġ{ ĊĠĠĠ Ġexclude ( group Ġ= Ġ" com . fasterxml . jackson . core ", Ġmodule Ġ= Ġ" jackson - core ") ĊĠ Ġ} ĊĊĠ Ġimplementation ( libs . signature pad ) ĊĊĠ Ġimplementation ( libs . sqlite . android ) ĊĊĠ Ġimplementation ( libs . th reet en . extra ) ĊĊĠ Ġimplementation ( libs . trace ur ) ĊĊĠ Ġimplementation ( libs . uuid . generator ) ĊĊĠ Ġimplementation ( libs . view pump ) ĊĊĠ Ġimplementation ( libs . zx ing ) ĊĊĠ Ġimplementation ( projects . mob ius Base ) ĊĠ Ġimplementation ( projects . simple Platform ) ĊĠ Ġimplementation ( projects . simple Visual s ) ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠUnit Ġtest Ġdependencies ĊĠĠ Ġ*/ ĊĠ Ġtest Implementation ( projects . mob ius Migration ) ĊĊĠ Ġtest Implementation ( libs . android x . paging . common ) ĊĊĠ Ġtest Runtime Only ( libs . asm ) Ġ{ ĊĠĠĠ Ġbecause (" not Ġmandatory , Ġbut ĠTr uth Ġrecomm ends Ġadding Ġthis Ġdependency Ġfor Ġbetter Ġerror Ġreporting ") ĊĠ Ġ} ĊĊĠ Ġtest Implementation ( libs . faker ) ĊĊĠ Ġtest Implementation ( libs . junit ) ĊĠ Ġtest Implementation ( libs . junit Params ) ĊĊĠ Ġtest Implementation ( libs . mob ius . test ) ĊĊĠ Ġtest Implementation ( libs . mockito . kotlin ) ĊĊĠ Ġtest Implementation ( libs . qu ar ant ine ) ĊĊĠ Ġtest Implementation ( libs . truth ) ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠAndroid Ġtest Ġdependencies ĊĠĠ Ġ*/ ĊĠ Ġandroid Test Implementation ( libs . android x . annotation . annotation ) ĊĠ Ġandroid Test Implementation ( libs . android x . arch Core Testing ) Ġ{ ĊĠĠĠ Ġ// ĠThis Ġdependency Ġtransit ively Ġpull s Ġin Ġa Ġnewer Ġversion Ġof ĠMockito Ġthan ĠMockito - Kotlin Ġdoes . ĊĠĠĠ Ġ// ĠThis Ġresults Ġin Ġthe Ġimport Ġstatements Ġin Ġthe Ġunit Ġtests Ġbreaking Ġfor Ġmock ito Ġmethods Ġbecause ĊĠĠĠ Ġ// Ġthe ĠIDE Ġuses Ġthe Ġversion Ġof ĠMockito Ġthat Ġis Ġpresent Ġin Ġthe Ġclasspath Ġfrom Ġthe Ġandroid Test ĊĠĠĠ Ġ// Ġsource set Ġdependency , Ġwhich Ġraises Ġan Ġinspection Ġerror Ġin Ġthe ĠIDE . ĠWe Ġcan Ġexplicitly Ġexclude ĊĠĠĠ Ġ// Ġit Ġfrom Ġthis Ġdependency Ġbecause Ġit Ġis Ġalso Ġpulled Ġin Ġvia Ġmock ito - kotlin . ĊĠĠĠ Ġexclude ( group Ġ= Ġ" org . mockito ", Ġmodule Ġ= Ġ" mockito - core ") ĊĠ Ġ} ĊĊĠ Ġandroid Test Implementation ( libs . bundles . android x . test ) ĊĊĠ Ġandroid Test Runtime Only ( libs . asm ) Ġ{ ĊĠĠĠ Ġbecause (" not Ġmandatory , Ġbut ĠTr uth Ġrecomm ends Ġadding Ġthis Ġdependency Ġfor Ġbetter Ġerror Ġreporting ") ĊĠ Ġ} ĊĊĠ Ġandroid Test Implementation ( libs . faker ) ĊĊĠ Ġandroid Test Implementation ( libs . qu ar ant ine ) Ġ{ ĊĠĠĠ Ġexclude ( group Ġ= Ġ" com . fasterxml . jackson . core ", Ġmodule Ġ= Ġ" jackson - core ") ĊĠ Ġ} ĊĊĠ Ġandroid Test Implementation ( libs . android x . room . testing ) ĊĊĠ Ġandroid Test Implementation ( libs . truth ) ĊĊĠ Ġk apt Android Test ( libs . d agger . compiler ) ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠMisc ĊĠĠ Ġ*/ ĊĠ Ġcore Library Des ug aring ( libs . android . des ug aring ) ĊĊĠ Ġlint Checks ( projects . lint ) ĊĊĠ Ġruntime Only ( libs . jackson . core ) Ċ } Ċ Ċ // ĠThis Ġmust Ġalways Ġbe Ġpresent Ġat Ġthe Ġbottom Ġof Ġthis Ġfile , Ġas Ġper : Ċ // Ġhttps :// console . firebase . google . com / u / 2 / project / simple - org / settings / general / Ċ apply ( plugin Ġ= Ġ" com . google . gms . google - services ") Ċ Ċ abstract Ġclass ĠTransform Generated Room Dao Task Ġ: ĠDefault Task () Ġ{ ĊĊĠ Ġ@ get : Input ĊĠ Ġabstract Ġval Ġsource Set : ĠProperty < String > ĊĊĠ Ġ@ get : Input ĊĠ Ġabstract Ġval Ġreporter ClassName : ĠProperty < String > ĊĊĠ Ġ@ Task Action ĊĠ Ġfun Ġrun () Ġ{ ĊĠĠĠ Ġval Ġr mg Ġ= ĠRoom Metadata Generator () ĊĊĠĠĠ Ġr mg . run ( project . project Dir . absolute Path , Ġsource Set . get (), Ġreporter ClassName . get ()) ĊĠ Ġ} Ċ } Ċ