import Ġcom . android . build . gradle . api . Application Variant Ċ import Ġcom . android . build . gradle . internal . api . Base Variant Output Impl Ċ import Ġorg . jetbrains . kotlin . kon an . properties . Properties Ċ import Ġcom . android . build . gradle . api . Base Variant Output Ċ import Ġorg . jetbrains . kotlin . k apt 3 . base . K apt . k apt Ċ Ċ plugins Ġ{ ĊĠĠĠ Ġid (" com . android . application ") ĊĠĠĠ Ġid (" android x . navigation . safe args ") ĊĠĠĠ Ġkotlin (" android ") ĊĠĠĠ Ġkotlin (" k apt ") ĊĠĠĠ Ġid (" kotlin - android - extensions ") ĊĠĠĠ Ġid (" kotlin - android ") ĊĠĠĠ Ġid (" com . google . gms . google - services ") Ċ } ĊĊ Ċ android Ġ{ ĊĠĠĠ Ġcompile Sdk Version ( Config . Sdk Versions . compile ) ĊĊĠĠĠ Ġdefault Config Ġ{ ĊĠĠĠĠĠĠĠ Ġapplication Id Ġ= Ġ" com . tail or fit . android . tail or fit " ĊĠĠĠĠĠĠĠ Ġmin Sdk Version ( Config . Sdk Versions . min ) ĊĠĠĠĠĠĠĠ Ġtarget Sdk Version ( Config . Sdk Versions . target ) ĊĠĠĠĠĠĠĠ Ġversion Code Ġ= ĠConfig . Publish Version . code ĊĠĠĠĠĠĠĠ Ġversion Name Ġ= ĠConfig . Publish Version . name ĊĠĠĠĠĠĠĠ Ġtest Instrumentation Runner Ġ= Ġ" android . support . test . runner . Android JUnit Runner " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdata Binding Ġ{ ĊĠĠĠĠĠĠĠ Ġis Enabled Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġkotlin Options Ġ{ ĊĠĠĠĠĠĠĠ Ġj vm Target Ġ= ĠJava Version . VERSION _ 1 _ 8 . toString () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġcompile Options Ġ{ ĊĠĠĠĠĠĠĠ Ġsource Compatibility Ġ= ĠJava Version . VERSION _ 1 _ 8 ĊĠĠĠĠĠĠĠ Ġtarget Compatibility Ġ= ĠJava Version . VERSION _ 1 _ 8 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġandroid Extensions Ġ{ ĊĠĠĠĠĠĠĠ Ġis Experimental Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsigning Configs Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġkeystore Properties Path Ġ= Ġ" keystore . properties " ĊĠĠĠĠĠĠĠ Ġif Ġ( root Project . file ( keystore Properties Path ). exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkeystore Properties Ġ= ĠProperties () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkeystore Properties . load ( File ( keystore Properties Path ). inputStream ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate (" config ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore File Ġ= Ġroot Project . file ( keystore Properties . getProperty (" store File ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore Password Ġ= Ġkeystore Properties . getProperty (" store Password ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Alias Ġ= Ġkeystore Properties . getProperty (" key Alias ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Password Ġ= Ġkeystore Properties . getProperty (" key Password ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġbuild Types Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġget ByName (" release ") Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġis Min ify Enabled Ġ= Ġtrue Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġis Shrink Resources Ġ= Ġtrue Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġpro guard Files ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetDefault Pro guard File (" pro guard - android - optimize . txt "), Ġ" pro guard - rules . pro " Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġversion Name Suffix Ġ= Ġ"- release " Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġsigning Config Ġ= Ġsigning Configs . get ByName (" config ") Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġget ByName (" debug ") Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġversion Name Suffix Ġ= Ġ"- debug " Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġsigning Config Ġ= Ġsigning Configs . get ByName (" config ") Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġflavor Dimensions (" implementation ") ĊĊĠĠĠ Ġproduct Fl avors Ġ{ ĊĠĠĠĠĠĠĠ Ġcreate (" staging ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Config Field (" String ", Ġ" API _ BASE _ URL ", Ġ"\" https :// t aylor fit . herokuapp . com / \" ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Config Field (" String ", Ġ" O AUTH _ CLIENT _ ID ", Ġ"\" API \" ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Config Field (" String ", Ġ" O AUTH _ CLIENT _ SECRET ", Ġ"\" API \" ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Config Field (" String ", Ġ" O AUTH _ GRANT _ TYPE ", Ġ"\" API \" ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Dimension (" implementation ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġversion Name Suffix Ġ= Ġ"- staging " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcreate (" production ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Config Field (" String ", Ġ" API _ BASE _ URL ", Ġ"\" https :// t aylor fit . herokuapp . com / \" ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Config Field (" String ", Ġ" O AUTH _ CLIENT _ ID ", Ġ"\" API - creds \" ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Config Field (" String ", Ġ" O AUTH _ CLIENT _ SECRET ", Ġ"\" API - creds \" ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Config Field (" String ", Ġ" O AUTH _ GRANT _ TYPE ", Ġ"\" API - creds \" ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Dimension (" implementation ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġversion Name Suffix Ġ= Ġ"- production " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġapplication Variants . all ( object Ġ: ĠAction < Application Variant > Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġexecute ( variant : ĠApplication Variant ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvariant . outputs . map Ġ{ Ġit Ġas ĠBase Variant Output Impl Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġoutput Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" The Ġvariant Ġis : Ġ${ variant . version Name }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutput . output FileName Ġ= Ġ" t aylor Fit -${ variant . version Name }. apk " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) Ċ } Ċ Ċ dependencies Ġ{ ĊĠĠĠ Ġimplementation ( file Tree ( map Of (" dir " Ġto Ġ" libs ", Ġ" include " Ġto ĠlistOf (" *. jar ")) )) ĊĠĠĠ Ġimplementation (" android x . legacy : legacy - support - v 4 : 1 . 0 . 0 ") ĊĠĠĠ Ġimplementation (" android x . appcompat : appcompat : 1 . 1 . 0 ") ĊĠĠĠ Ġimplementation (" android x . constraint layout : constraint layout : 1 . 1 . 3 ") ĊĊĠĠĠ Ġ// Tests ĊĠĠĠ Ġtest Implementation ( Config . Lib s . Test . j Unit ) ĊĠĠĠ Ġtest Implementation ( Config . Lib s . Test . mockito ) ĊĠĠĠ Ġandroid Test Implementation ( Config . Lib s . Test . android X TestRunner ) ĊĠĠĠ Ġandroid Test Implementation ( Config . Lib s . Test . espress o Core ) ĊĊĠĠĠ Ġ// Kotlin ĊĠĠĠ Ġimplementation ( Config . Lib s . Kotlin . kotlin Jvm ) ĊĠĠĠ Ġimplementation ( Config . Lib s . Kotlin . coroutines Core ) ĊĠĠĠ Ġimplementation ( Config . Lib s . Kotlin . coroutines Android ) ĊĊĠĠĠ Ġ// ĠAndroid X ĊĠĠĠ Ġimplementation ( Config . Lib s . Android X . constraint Layout ) ĊĠĠĠ Ġimplementation ( Config . Lib s . Android X . browser ) ĊĠĠĠ Ġimplementation ( Config . Lib s . Android X . core ) ĊĠĠĠ Ġimplementation ( Config . Lib s . Android X . life Cycle ViewModel ) ĊĠĠĠ Ġimplementation ( Config . Lib s . Android X . life Cycle Ext ) ĊĠĠĠ Ġimplementation ( Config . Lib s . Android X . navigation Fragment ) ĊĠĠĠ Ġimplementation ( Config . Lib s . Android X . navigation UI ) ĊĠĠĠ Ġimplementation ( Config . Lib s . Android X . re cyclerView ) ĊĠĠĠ Ġimplementation ( Config . Lib s . Android X . legacy Support Lib ) ĊĠĠĠ Ġimplementation ( Config . Lib s . Android X . view Pager 2 ) ĊĠĠĠ Ġimplementation ( Config . Lib s . Android X . life Cycle Reactive ) ĊĠĠĠ Ġimplementation ( Config . Lib s . Android X . room ) ĊĠĠĠ Ġk apt ( Config . Lib s . Android X . room Compiler ) ĊĊĠĠĠ Ġ// work Ġmanager ĊĠĠĠ Ġimplementation ( Config . Lib s . Android X . work Manager ) ĊĊĠĠĠ Ġ// DI Ġwith ĠD agger ĊĠĠĠ Ġk apt ( Config . Lib s . DI . d agger Compiler ) ĊĠĠĠ Ġimplementation ( Config . Lib s . DI . d agger ) ĊĠĠĠ Ġcompile Only ( Config . Lib s . DI . glass Fish Annotation ) ĊĊĠĠĠ Ġ// Network ĊĠĠĠ Ġimplementation ( Config . Lib s . Network . ret rofit ) ĊĠĠĠ Ġimplementation ( Config . Lib s . Network . ret rofit Gson Converter ) ĊĠĠĠ Ġimplementation ( Config . Lib s . Network . okhttp Logging Interceptor ) ĊĠĠĠ Ġimplementation ( Config . Lib s . Network . ret rofit Mock ) ĊĊĠĠĠ Ġ// Misc ĊĠĠĠ Ġimplementation ( Config . Lib s . Misc . material Design ) ĊĠĠĠ Ġimplementation ( Config . Lib s . Misc . material Dialog s ) ĊĠĠĠ Ġimplementation ( Config . Lib s . Misc . tim ber ) ĊĠĠĠ Ġimplementation ( Config . Lib s . Misc . country Code Picker ) ĊĠĠĠ Ġimplementation ( Config . Lib s . Misc . co il ) ĊĠĠĠ Ġimplementation ( Config . Lib s . Misc . google Play Services ) ĊĠĠĠ Ġimplementation ( Config . Lib s . Misc . firebase Storage ) ĊĠĠĠ Ġimplementation ( Config . Lib s . Misc . pal lete ) ĊĠĠĠ Ġimplementation ( Config . Lib s . Misc . lott ie ) ĊĠĠĠ Ġimplementation ( Config . Lib s . Misc . currency EditText ) ĊĊĊĠĠĠ Ġ// Rx ĊĠĠĠ Ġimplementation ( Config . Lib s . Reactive . rx Java ) ĊĠĠĠ Ġimplementation ( Config . Lib s . Reactive . rx Android ) ĊĠĠĠ Ġimplementation ( Config . Lib s . Reactive . rx Kotlin ) ĊĠĠĠ Ġimplementation ( Config . Lib s . Reactive . rx Ret rofit Adapter ) Ċ } Ċ Ċ apply ( from Ġ= Ġ"../ spot less . gradle ") Ċ