import Ġjava . util .* Ċ Ċ plugins Ġ{ ĊĠĠĠ Ġandroid Git Version () ĊĠĠĠ Ġandroid App () ĊĠĠĠ Ġdagger () ĊĠĠĠ Ġkotlin Android () ĊĠĠĠ Ġkotlin K apt () ĊĠĠĠ Ġkotlin Extension () ĊĠĠĠ Ġgoogle Service () ĊĠĠĠ Ġfirebase Crash ly t ics () Ċ } Ċ Ċ val Ġapk Name Ġ= Ġhash Map Of ( ĊĠĠĠ Ġ" local Debug " Ġto Ġ" ats y - cast - debug - local . apk ", ĊĠĠĠ Ġ" prod Debug " Ġto Ġ" ats y - cast - debug . apk ", ĊĠĠĠ Ġ" local Release " Ġto Ġ" ats y - cast - local . apk ", ĊĠĠĠ Ġ" prod Release " Ġto Ġ" ats y - cast . apk ", ĊĠĠĠ Ġ" local Home " Ġto Ġ" ats y - cast - home - local . apk ", ĊĠĠĠ Ġ" prod Home " Ġto Ġ" ats y - cast - home . apk " Ċ ) Ċ Ċ val Ġrelease Properties Ġ= ĠProperties () Ċ release Properties . load ( file ("${ rootDir }/ local . properties "). inputStream ()) Ċ val ĠDEBUG _ ALIAS : ĠString Ġ= Ġrelease Properties . getProperty (" DEBUG _ ALIAS ", Ġ"") Ċ val ĠDEBUG _ ALIAS _ PASSWORD : ĠString Ġ= Ġrelease Properties . getProperty (" DEBUG _ ALIAS _ PASSWORD ", Ġ"") Ċ val ĠDEBUG _ KEY STORE _ PASSWORD : ĠString Ġ= Ġrelease Properties . getProperty (" DEBUG _ KEY STORE _ PASSWORD ", Ġ"") Ċ val ĠDEBUG _ KEY STORE _ NAME : ĠString Ġ= Ġrelease Properties . getProperty (" DEBUG _ KEY STORE _ NAME ", Ġ"") Ċ Ċ val ĠRELEASE _ ALIAS : ĠString Ġ= Ġrelease Properties . getProperty (" RELEASE _ ALIAS ", Ġ"") Ċ val ĠRELEASE _ ALIAS _ PASSWORD : ĠString Ġ= Ġrelease Properties . getProperty (" RELEASE _ ALIAS _ PASSWORD ", Ġ"") Ċ val ĠRELEASE _ KEY STORE _ PASSWORD : ĠString Ġ= Ġrelease Properties . getProperty (" RELEASE _ KEY STORE _ PASSWORD ", Ġ"") Ċ val ĠRELEASE _ KEY STORE _ NAME : ĠString Ġ= Ġrelease Properties . getProperty (" RELEASE _ KEY STORE _ NAME ", Ġ"") Ċ Ċ val ĠHOME _ UPDATE _ URL : ĠString Ġ= Ġrelease Properties . getProperty (" HOME _ UPDATE _ URL ", Ġ"") Ċ val ĠRELEASE _ UPDATE _ URL : ĠString Ġ= Ġrelease Properties . getProperty (" RELEASE _ UPDATE _ URL ", Ġ"") Ċ Ċ android Ġ{ ĊĠĠĠ Ġcompile Sdk Version ( Versions . compile Sdk Version ) ĊĠĠĠ Ġbuild Tools Version ( Versions . build Tools Version ) ĊĊĠĠĠ Ġdefault Config Ġ{ ĊĊĠĠĠĠĠĠĠ Ġapplication Id Ġ= Ġ" com . ky aw hut . ats y cast " ĊĊĠĠĠĠĠĠĠ Ġmin Sdk Version ( Versions . tv Min Sdk Version ) ĊĠĠĠĠĠĠĠ Ġtarget Sdk Version ( Versions . tv Target Sdk Version ) ĊĊĠĠĠĠĠĠĠ Ġversion Code Ġ= Ġandroid Git Version . code () ĊĠĠĠĠĠĠĠ Ġversion Name Ġ= Ġandroid Git Version . name () ĊĊĠĠĠĠĠĠĠ Ġmulti Dex Enabled Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ Ġvector Draw ables Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuse Support Library Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġflavor Dimensions (" env ") ĊĠĠĠ Ġproduct Fl avors Ġ{ ĊĠĠĠĠĠĠĠ Ġcreate (" local ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdimension Ġ= Ġ" env " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcreate (" prod ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdimension Ġ= Ġ" env " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsigning Configs Ġ{ ĊĊĠĠĠĠĠĠĠ Ġget ByName (" debug ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstore File Ġ= ĠFile ( rootDir , ĠDEBUG _ KEY STORE _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstore Password Ġ= ĠDEBUG _ KEY STORE _ PASSWORD ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Alias Ġ= ĠDEBUG _ ALIAS ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Password Ġ= ĠDEBUG _ ALIAS _ PASSWORD ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġregister (" release ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstore File Ġ= ĠFile ( rootDir , ĠRELEASE _ KEY STORE _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstore Password Ġ= ĠRELEASE _ KEY STORE _ PASSWORD ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Alias Ġ= ĠRELEASE _ ALIAS ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Password Ġ= ĠRELEASE _ ALIAS _ PASSWORD ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġbuild Types Ġ{ ĊĊĠĠĠĠĠĠĠ Ġget ByName (" debug ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdebug gable ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġj ni Debug gable ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrenders cript Debug gable ( true ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmin ify Enabled ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Shrink Resources Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Id Suffix Ġ= Ġ". debug " ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġsigning Config Ġ= Ġsigning Configs . get ByName (" debug ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Config String (" UPDATE _ URL ", Ġ"") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpro guard Files ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetDefault Pro guard File (" pro guard - android - optimize . txt "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" pro guard - rules . pro " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġget ByName (" release ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdebug gable ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġj ni Debug gable ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrenders cript Debug gable ( false ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmin ify Enabled ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Shrink Resources Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Id Suffix Ġ= Ġ"" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġsigning Config Ġ= Ġsigning Configs . get ByName (" release ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Config String (" UPDATE _ URL ", ĠRELEASE _ UPDATE _ URL ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpro guard Files ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetDefault Pro guard File (" pro guard - android - optimize . txt "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" pro guard - rules . pro " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcreate (" home ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit With ( get ByName (" release ")) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Id Suffix Ġ= Ġ". home " ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Config String (" UPDATE _ URL ", ĠHOME _ UPDATE _ URL ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpro guard Files ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetDefault Pro guard File (" pro guard - android - optimize . txt "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" pro guard - rules . pro " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġbuild Features Ġ{ ĊĠĠĠĠĠĠĠ Ġdata Binding Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġview Binding Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompile Options Ġ{ ĊĠĠĠĠĠĠĠ Ġsource Compatibility ( Java Version . VERSION _ 1 _ 8 ) ĊĠĠĠĠĠĠĠ Ġtarget Compatibility ( Java Version . VERSION _ 1 _ 8 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġkotlin Options Ġ{ ĊĠĠĠĠĠĠĠ Ġj vm Target Ġ= Ġ" 1 . 8 " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġandroid . application Variants . all Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvariant Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġvariant . outputs . map Ġ{ Ġit Ġas Ġcom . android . build . gradle . internal . api . Base Variant Output Impl Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġoutput Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuild Output Path Ġ= Ġ"../../ release /${ variant . version Name }/ " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutput . output FileName Ġ= ĠString . format ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"% s % s ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Output Path , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapk Name [ variant . flavor Name Ġ+ Ġvariant . build Type . name . capitalize ()] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ dependencies Ġ{ ĊĠĠĠ Ġimplementation ( file Tree ( map Of (" dir " Ġto Ġ" libs ", Ġ" include " Ġto ĠlistOf (" *. jar ")) )) ĊĊĠĠĠ Ġimplementation ( project (": share ")) ĊĠĠĠ Ġimplementation ( project (": free 2 air ")) ĊĠĠĠ Ġimplementation ( project (": ms ub pc ")) ĊĠĠĠ Ġimplementation ( project (": msys ")) ĊĠĠĠ Ġimplementation ( project (": z cm ")) ĊĠĠĠ Ġimplementation ( project (": dou jin ")) ĊĠĠĠ Ġimplementation ( project (": ets 2 mm ")) ĊĠĠĠ Ġimplementation ( project (": 2 d ")) ĊĠĠĠ Ġimplementation ( project (": ep or ner ")) ĊĠĠĠ Ġimplementation ( project (": gs movies ")) ĊĠĠĠ Ġimplementation ( project (": tik tok ")) ĊĠĠĠ Ġimplementation ( project (": gs - mm ")) ĊĊĠĠĠ Ġtest Implementation ( Lib s . junit ) ĊĠĠĠ Ġandroid Test Implementation ( Lib s . test J unit ) ĊĠĠĠ Ġandroid Test Implementation ( Lib s . espress o ) ĊĊĠĠĠ Ġimplementation ( Lib s . kotlin Lib ) ĊĠĠĠ Ġimplementation ( Lib s . core K tx ) ĊĠĠĠ Ġimplementation ( Lib s . constraint Layout ) ĊĠĠĠ Ġimplementation ( Lib s . vector Drawable ) ĊĠĠĠ Ġimplementation ( Lib s . lean back Preference ) ĊĊĠĠĠ Ġ/* firebase */ ĊĠĠĠ Ġimplementation ( platform ( Lib s . firebase B om )) ĊĠĠĠ Ġimplementation ( Lib s . firebase Analytics ) ĊĠĠĠ Ġimplementation ( Lib s . firebase Crash ly t ics ) ĊĊĠĠĠ Ġ// Ġdependency Ġinjection ĊĠĠĠ Ġimplementation ( Lib s . h ilt Android ) ĊĠĠĠ Ġk apt ( Lib s . h ilt Android Compiler ) ĊĊĠĠĠ Ġ// Ġretrofit ĊĠĠĠ Ġimplementation ( Lib s . ret rofit ) ĊĊĠĠĠ Ġ// ĠRoom ĊĠĠĠ Ġimplementation ( Lib s . room K tx ) ĊĠĠĠ Ġimplementation ( Lib s . room Runtime ) ĊĠĠĠ Ġk apt ( Lib s . room Compiler ) ĊĠĠĠ Ġ// ĠRx Java Ġsupport Ġfor ĠRoom ĊĠĠĠ Ġimplementation ( Lib s . room Rx Java ) ĊĊĠĠĠ Ġimplementation ( Lib s . gson ) ĊĊĠĠĠ Ġimplementation ( Lib s . lott ie ) ĊĠĠĠ Ġimplementation ( Lib s . easy Permission ) ĊĊĠĠĠ Ġ// Memory Ġleak Ġdetection ĊĠĠĠ Ġdebug Implementation ( Lib s . leak Can ary ) ĊĠĠĠ Ġrelease Implementation ( Lib s . leak Can ary No OP ) ĊĠĠĠ Ġ" home Implementation "( Lib s . leak Can ary No OP ) Ċ } Ċ